как преобразовать широту, долготу (строку) в координаты - PullRequest
0 голосов
/ 25 марта 2019

У меня есть таблица (Address) с 3 полями (id, широта, долгота) и другая таблица (Polygons) с 2 полями (id, координаты (type = mdsys.sdo_geometry)).мой вопрос, как я могу связать координаты, чтобы узнать, находится ли адрес внутри области многоугольника

Адрес

id ---------- 1   
latitude ---- 36.13948149   
longitude --- -86.84178303

Полигоны

id ---------- 15
MDSYS.SDO_GEOMETRY(2003,1041002,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),MDSYS.SDO_ORDINATE_ARRAY(13650333.621154,5324021.16148257,13650233.7612594,5324171.58351056,13650028.4381112))

1 Ответ

0 голосов
/ 26 марта 2019

(исправил мой ответ, чтобы более точно соответствовать вашему вопросу)

Простой SELECT сделает то, что вы хотите:

select p.id, ...
from polygons p, address a
where a.id = 1
and sdo_contains (p.coordinates, sdo_geometry(2001,4326,sdo_point_type(a.longitude,a.latitude,null),null,null)) = 'TRUE';

Это вернет все полигоны из вашей таблицы, которые содержат вашивыбранная точка адреса.Обратите внимание, что нет необходимости преобразовывать координаты GPS в координаты многоугольника.Это делается автоматически.

...