Клуб API Карт

Вывод областей на карту

Евгений
9 августа 2016, 09:34

Не могу понять, почему нет Москвы, другие регионы есть?

ymaps.ready(function () {
map = new ymaps.Map('reviewsmap', {
	zoom: 6,
	center: [37.6214,55.7847],
	controls: ["fullscreenControl"]
	},{}
);
var zoomControl = new ymaps.control.ZoomControl({
	options: {
		position: {right: 10,top: 230}
			}
		});
		map.controls.add(zoomControl);			
		map.behaviors.disable(['scrollZoom']);
	//Загружаем области
jQuery.getJSON("file/region.json", function(data)
	{
    var url = "http://nominatim.openstreetmap.org/search";
    jQuery.each(data, function(index, value) {
    	var tmp = value.split("|");
    	var zInd = tmp[0];
    	var regionname = tmp[1];
    	$.getJSON(url, {q: regionname, format: "json", polygon_geojson: 1, limit:2 })
    		.then(function (data) {
    			$.each(data, function(ix, place) {
    				if ("administrative" == place.type) {
    					var obl = new ymaps.Polygon(place.geojson.coordinates);
    					obl.options.set('fillColor', 'rgba(255, 0, 0, 0.4)');
    					obl.options.set('strokeColor', '#F8DA19');
    					obl.options.set('zIndex', zInd);
    					obl.properties.set('hintContent', regionname+"111");
    					obl.events.add('mouseenter', function () {obl.options.set('fillColor', 'rgba(255, 0, 0, 0.6)');});		
    					obl.events.add('mouseleave', function () {obl.options.set('fillColor', 'rgba(255, 0, 0, 0.4)');});
    					map.geoObjects.add(obl);
    				} 
    			});
    		}, 	function (err) {console.log(err);});	
		});
	});
});

json файл 

[
"1000|Москва",
"1000|Московская область",
"1000|Ярославская область",
"2000|Конаковский район",
"1000|Саратовская область"
]

5 комментариев
Подписаться на комментарии к посту
Вопрос вроде как к nominatim, а не Яндекс.Картам?
Попробуйте наш модуль регионов - https://tech.yandex.ru/maps/jsbox/2.1/regions
Вопрос я думаю по адресу, то есть яндекс.картам. модуль регионов от яндекса может вывести район, а не область целиком? как? А по основному вопросу - nominatim отдает положенные коры полигона, только яндекс не выводит полученные данные, в частности Москву.
Евгений,
Думаю/не думаю – посмотрите в дебаггере, что отдает nominatim для Москвы


АПИ не поддерживает мультигеометрии в GeoJSON, как формально и сам GeoJSON
http://jsfiddle.net/u8v63s0o/3/
Благодарю. Ваш вариант тоже дееспособен. Ввело в заблуждение то, что так работало до поры (Ярославская область в частности), потом перестало. Проблема была решена "отсечением лишних" полигонов - 


var coordinates = place.geojson.type == "MultiPolygon" ? place.geojson.coordinates[0] : place.geojson.coordinates;
var obl = new ymaps.Polygon(coordinates);