@nurzhannogerbek

Как проверить вхождение метки в полигоны?

Есть коллекция (GeoObjectCollection) в которой хранятся полигоны (Polygon). Пытаюсь проверить вхождение метки (Placemark) в полигон. Как это правильно сделать в моем конкретном случаи?

В документации нашел метод each, который должен был перебирать все элементы коллекции. Ниже стоящий код не работает. Что я делаю не так?

self.polygonCollection.each(function (polygon) {
    if(polygon.contains(res.geometry.getCoordinates())) {
        console.log("Метка входит в полигон.")
    }
});
  • Вопрос задан
  • 285 просмотров
Решения вопроса 1
@nurzhannogerbek Автор вопроса
Проблему нашел. Правильный код выглядит следующим образом:

self.polygonCollection.each(function(polygon) {
    if (polygon.geometry.contains(res.geometry.getCoordinates())) {
        console.log("Метка входит в полигон.")
    }
 });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
virtual_hack2root
@virtual_hack2root
.NET Core, JS, DevOps
Попробуйте отказаться от jQuery и перейти к forEach:

self.polygonCollection.forEach(function(polygon, i, arr) {
  if(polygon.contains(res.geometry.getCoordinates())) {
        console.log("Метка входит в полигон.")
    }
});


В jQuery:

$.each(self.polygonCollection, function (key, polygon) {
    if(polygon.contains(res.geometry.getCoordinates())) {
        console.log("Метка входит в полигон.")
    }
});


А еще лучше совсем отказаться от таких общеупотребительных названий переменных, как polygon, используйте нечто более компактное либо уникальное
Ответ написан
Ваш ответ на вопрос

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

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