Клуб API Карт

Сижу туплю! Проверить находится ли адрес внутри (или) вне области (полигона)

bel30197
28 августа 2012, 14:27

Строю карту примрено таким скриптом (не весь):

 

 // Как только будет загружен API и готов DOM, выполняем инициализацию
ymaps.ready(init);
function init() {
// Создание экземпляра карты и его привязка к контейнеру с
// заданным id ("map")
var myMap = new ymaps.Map('map', {
// При инициализации карты, обязательно нужно указать
// ее центр и коэффициент масштабирования
center:[55.76, 37.64], // Москва
zoom:10
});
myMap.controls
// Кнопка изменения масштаба
.add('zoomControl')
// Список типов карты
.add('typeSelector')
// Стандартный набор кнопок
.add('mapTools');
        // Создаем полигон МКАД по заданным координатам mkad
        var polygon = new ymaps.Polygon([mkad],{},{fillColor: '#FCFDFF', opacity: 0, interactivityModel: 'default#transparent'});
myMap.geoObjects.add(polygon);
myCollection = new ymaps.GeoObjectCollection();
jQuery('.mapsearch').click(function () {
var id = jQuery(this).attr('id');
var c = jQuery('#jform_' + id + '_city').val();
var s = jQuery('#jform_' + id + '_street').val();
var h = jQuery('#jform_' + id + '_house').val();
var k = jQuery('#jform_' + id + '_korpus').val();
var search_query = c + ', ' + s + ', ' + h + '';
if (id == 'start')
{
jQuery('#maplist').innerText='';
jQuery('#startcoord').val('');
jQuery('#endcoord').val('');
}
jQuery('#' + id + 'coord').val(search_query);
ymaps.geocode(search_query, {results:1}).then(function (res) {
if (id == 'start')
{
jQuery('#maplist').innerText='';
myCollection.removeAll();
}
myCollection = res.geoObjects;
myMap.geoObjects.add(myCollection);
});
return false;
});

 

Начальная и конечная точки прекрасно добавляются на карту, получаю расстояние и прочее. Это все ниже по коду. Но мне нужно определить что конечная точка находится внутри полигона (polygon ) или вне его, что проще.

А с этим вот беда какая-то.

Для API 1.x решение есть в интернете polygon.contains(point). А для 2.0 не дается, ругается.

4 комментария
Подписаться на комментарии к посту

geoObject.geometry.contains(point)

тут вроде все описано http://clubs.ya.ru/mapsapi/replies.xml?item_no=23486

var point = res.geoObjects.get(0);

console.log(myMap.geoObject.geometry.getPixelGeometry().contains(point));

console.log(polygon.geoObject.geometry.getPixelGeometry().contains(point));

прочитал, не работает :(

ругается на  geometry везде

1. getPixelGeometry() не нужен

2. полигон должен быть добавлен на карту

все, разобрался ) не совметсил сперва очевидные вещи, вот ошибки и были.

 

спасибо всем. примеров бы поболее на апи 2.0