Клуб API Карт

Проверка точек на попадание в область полигона

Пост в архиве.

Добрый день!

Подскажите, пожалуйста, как можно проверить нахождение точек (включенных в коллекцию) в определенной области (Poligon) и при попадании в нее удалять их из основной коллекции и добавлять в новую.

Нашел пример с попаданием точек в перетаскиваемую область, а вот как сделать чтобы без всяческих монипуляций с полигонами выполнялась проверка сделать не могу.

Отвечайте, пожалуйста, с примерами кода, ибо уровень знаний JS не так высок.

Заранее спасибо!

6 комментариев

 

Спасибо за ссылку. Немного страдает реализация. Почему то не работает, причем даже ошибок не показывает... наверное что то не так сделал. Вот часть кода:

var clientsBase = new ymaps.GeoObjectCollection();

myMultiGeocoder.geocode([ ... ])

.then(

    function (res) {

        clientsBase.add(res.geoObjects);

    },

    function (err) {

        alert(err);

    }

);

 

var objs = new ymaps.GeoObjectCollection();

objs

.add(objs[0] = new ymaps.Polygon([[[53.17, ...

 

 

С коллекциями все ок они работают как надо. А вот дальше не могу разобраться:

 

clientsBase.each(function (point) {

for (var i=0; i < 9; i++) {

if(objs[i].geometry.contains(point.geometry.getCoordinates())) {

console.log('1'+point.geometry.getCoordinates());

}

else {

console.log('2'+point.geometry.getCoordinates());

}

}

 });

 

 

objs

.add(objs[0] = new ymaps.Polygon([[[53.17, ...

так лучше не делать

не надо создавать индексы в инстансах классов АПИ.

Работайте через задокументированный интерфейс

Это временный вариант, ок.

 

 а вот как сделать чтобы без всяческих монипуляций с полигонами выполнялась проверка сделать не могу.

 

 

 вот все что нужно:

 

// Проверяем попадание в область геометрии геообъекта всех точек из коллекцииmyCollection.each(function (point) {    console.log(myPolygon.geometry.contains(point.geometry.getCoordinates()));});

 

 

Спасибо за точный ответ.