Нам нужно выяснить быстрый и довольно точный метод для точки в полигоне для значений lat/long и полигонов по картам google. После некоторого исследования - натолкнулся на некоторые сообщения о геометрических расширениях mysql, и это тоже реализовано -
SELECT id, Contains( PolyFromText( 'POLYGON(".$polygonpath.")' ) , PointFromText( concat( \"POINT(\", latitude, \" \", longitude, \")\" ) ) ) AS
CONTAINS
FROM tbl_points
Это, однако, не работало с многоугольниками, состоящими из большого количества точек: (
После еще нескольких исследований - натолкнулся на стандартный алгоритм, называемый алгоритмом Ray-casting, но прежде чем пытаться разработать запрос для этого в MySQL, хотелось бы воспользоваться моими шансами, если кто-то уже прошел через это или столкнулся с полезной ссылкой, которая показывает как реализовать алгоритм в MySQL/SQL-сервере.
Итак, сокращение короткого вопроса:
Может ли кто-нибудь предоставить MySQL/SQL-серверную реализацию алгоритма литья речей?
Дополнительная информация:
- Многоугольники являются вогнутыми, выпуклыми или сложными.
- Ориентация на быстрое выполнение с точностью 100%.