У меня есть таблица слияния, заполненная адресами, а не координатами lat/lng. Google выполнил геокодирование для меня, поэтому у меня нет доступа к геокодированным данным. Эта таблица слияния является одним слоем на моей карте и показывает маркеры для каждого адреса.Поиск маркеров из таблицы слияния в полигоне
Я использую DrawingManager, чтобы позволить пользователю рисовать многоугольник. Как только полигон завершен (т. Е. В обратном вызове многоугольника), я хотел бы иметь возможность определить, какой из маркеров из таблицы слияния находится внутри многоугольника.
Если бы у меня был доступ к координатам, я мог бы сделать это с помощью ST_INTERSECTS, но у меня нет доступа к нему. И поскольку он уже геокодирован Google, я не вижу причины делать дополнительные запросы, используя API геокодирования, чтобы получить координаты.
Итак, есть ли способ определить, какие маркеры из таблицы слияния находятся внутри полигона?
Спасибо за разъяснение на 'ST_INTERSECTS'. В соответствии с [этим ответом] (http://stackoverflow.com/questions/6522484/google-maps-v3-check-if-point-exists-in-polygon) существует способ найти точку в полигоне с использованием луча Кастинг. Поэтому я думаю, что нет возможности использовать API геокодирования напрямую для меня, чтобы делать то, что я хочу, правильно? –
Геокодирование API только геокодирует адреса, не более того. Если вы хотите достичь этого, используя Javascript-API, используйте [google.maps.geometry.poly.containsLocation()] (https://developers.google.com/maps/documentation/javascript/reference?hl=ru&csw=1 #poly) –
Если вы не ожидаете большого количества точечных результатов, вы можете создать прямоугольник, который охватывает ограничивающий прямоугольник многоугольника, использовать его с помощью st_intersects, а затем отфильтровывать ложные срабатывания, используя точку в полигоне на клиенте (как указано в комментарии выше) – jlivni