@SergeyFeschukov

API Яндекс.Карты — YMapsML и вхождение адреса в полигон?

Подключаю Яндекс.Карты, вставляю созданные объекты с помощью YMapsML, затем пытаюсь определить входит ли адрес в созданный полигон. Но на любой адрес выдаёт, что адрес не входит в зону.

/* Инициализация Яндекс.Карты и подключение YMapsML */
var ymap, mymap, polygon;
function YMinit (lat, long) {
	ymap = new YMaps.Map($('#YMaps'));
	ymap.setCenter(new YMaps.GeoPoint(76.56738030, 60.94011121), 2);
	mymap = new YMaps.YMapsML('https://maps.yandex.ru/export/usermaps/***********/');
	ymap.addOverlay(mymap);
	YMaps.Events.observe(mymap, mymap.Events.Load, function() {
			var obj = this.filter(function (obj) {
				return obj.name == 'В черте города';
			});
			polygon = obj[0];
		});
}
YMaps.load(YMinit);

/* Попытка определения адреса */
var addr = 'Мира, 23';
var geocoder = new YMaps.Geocoder(addr + ', Нижневартовск');
YMaps.Events.observe(geocoder, geocoder.Events.Load, function(geocoder) {
	if ( geocoder.length() ) {
		var point = geocoder.get(0).getGeoPoint();
		if ( !polygon.contains(point) ) {
			console.log('К сожалению, адрес не входит в зону доставки!');
			return false;
		} else
			console.log('Всё в порядке');
	} else {
		console.log('К сожалению, адрес не входит в зону доставки!');
		return false;
	}
});


Если взять координаты из файла YMapsML и создать полигон внутри скрипта (по аналогии со статьей из гиктаймса), то определение адреса проходит успешно.

Что я делаю не так? Сравнивал объекты polygon, полученные разным методом, вроде ничем толком не отличаются.
  • Вопрос задан
  • 1249 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы