Как проверить попадание точки в полигон в яндекс картах

Есть приложение на VueJs. Вставляется компонент карты, при инициализации прослушиваю событие и получаю идентификатор карты. Далее добавляются полигоны:

regions.features.forEach(region => {
  this.mapPolygons.add(
    new ymaps.Polygon(
      region.geometry.coordinates,
      {},
      {
        fillOpacity: 0.3,
        fillColor: region.properties.fill,
        interactivityModel: 'default#transparent',
        strokeWidth: region.properties.strokeWidth,
        strokeColor: region.properties.stroke,
        strokeOpacity: 0.3,
      }
    )
  );
});
// Привязываем полигоны к карте 
this.mapObject.geoObjects.add(this.mapPolygons);

Далее прослушиваю событие onInput у input элемента, получаю введенный адрес, с помощью геокодирования получаю координаты точки. И вот теперь вопрос: как мне проверить попали ли координаты точки в какой-либо полигон? Документацию всю уже излазил, никаких идей. Думал перебирать коллекцию, но там в объектах нет функции contains. Надеюсь более умные люди подскажут что делать.


Ответы (1 шт):

Автор решения: Reni

В самом JS API для этого есть функция geoQuery. Вот тут руководство пользователя.

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

var result = ymaps.geoQuery(objects).addToMap(myMap),
    polygon = new ymaps.Polygon([[[35, 65], [35, 66], [34, 62], [34, 63], [35, 65]]]);
myMap.geoObjects.add(polygon);

var objectsInsidePolygon = result.searchInside(polygon);
→ Ссылка