Я ищу решение для нахождения LAT, точка LNG содержится внутри любого многоугольника в моей таблице MySQL.
По некоторым причинам, которые выходят за рамки моих знаний SQL, мои запросы с использованием ST_Intersects
возвращают«Функция не найдена».Поэтому я остановился на этом месте:
SELECT `area_title` FROM `service_areas` WHERE MBRIntersects(`area_poly`, GEOMFROMTEXT('POINT(40.775032, -73.970778)'));
Моя таблица для тестирования довольно проста и хранит
1. area_poly GEOMETRY
магазинов POLYGON((-71.740723 41.360319,-71.685791 42.106374,-71.71875 42.407235,-71.905518 42.771211,-72.070312 43.036776,-72.432861 43.157109,-72.718506 43.397065,-73.190918 43.55651,-73.619385 43.580391,-74.32251 43.572432,-75.201416 43.277205,-75.717773 43.004647,-75.926514 42.795401,-76.135254 42.528796,-76.256103 42.138968,-76.289062 41.869561,-76.234131 41.442726,-76.190185 40.955011,-75.992432 40.472024,-75.849609 40.153687,-75.629883 39.783213,-75.311279 39.529467,-74.94873 39.368279,-74.520264 39.257778,-74.256592 39.478606,-71.5979 40.971604,-71.740723 41.360319))
И
2. area_title VARCHAR(20)
store service area 1
Я пытаюсь передать точку как POINT(40.775032, -73.970778)
, как показано выше.
Ожидаемый результат будет возвращать любые area_title
, в которых точка находится внутри ее многоугольника;Тем не менее, мой запрос возвращает 0 Rows
.
Я знаю, что есть тонна вопросов / ответов на слабину и в Интернете, но я не нашел решения, пробующего большинство методов.Из-за недостатка знаний SQL я не уверен, правильно ли я храню Poly или не использую правильную функцию для его поиска.
Любая помощь, даже указывающая в правильном направлении, приветствуется.