如何将纬度,经度(字符串)转换为坐标

问题描述 投票:0回答:1

我有一个表(地址)有3个字段(id,纬度,经度)和其他表(多边形)有2个字段(id,coordinates(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))
oracle coordinates spatial oracle-spatial
1个回答
0
投票

(更正了我的答案以更贴近您的问题)

一个简单的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坐标转换为多边形的坐标。这是自动完成的。

© www.soinside.com 2019 - 2024. All rights reserved.