分组GPS坐标以在Oracle中创建群集/ CLLI代码

时间:2016-07-29 02:33:13

标签: oracle gps

您好我有GPS坐标的地址列表,我需要将其分组到大约600个地址的组中以创建分组ID。分组应该几乎是方形多边形。

这些是我所拥有的规格:

计划:Oracle

记录:522,000

我的数据包含以下列:

GEO_ID (Primary Key)
MUN_NAME (VarChar)(City Name)
LONUM (Int)(House number)
DISTANCE (int)
FCODE (int)
FCODE_DES (VarChar)(Dwelling Type)
LATITUDE (Int)
LFNAME (Street string)
LONGITUDE (Int)
OBJECTID (Int)
WARD_NAME (VarChar)
X (Int)
Y (Int)

根据我对系统限制的计算,下面所需的组字段说明需要创建多少个集群才能超过我们系统的600集群限制。

 City              addresses  Max Clusters  Required Clusters
 York               32277        600        53
 East York          23957        600        39
 Former Toronto     156563       600        260
 Etobicoke          72721        600        121
 North York         113542       600        189
 Scrborough         123016       600        205

理想情况下,我想在oracle中执行所有这些操作,并且能够运行此查询以创建新分组,或者在现有分组中添加地址,如果它们出现在数据中。

我完全迷失了如何做到这一点,我通过几个关于K的帖子阅读,但无法弄清楚如何创建分组。

这是我到目前为止的代码: Select LONGITUDE, LATITUDE, lat_diff, long_diff, (power(lat_diff,2)+power(long_diff,2)) From ( Select LONGITUDE, LATITUDE, COALESCE( Latitude - lag(Latitude, 1 , Null) over (order by Latitude), Latitude)as lat_diff, Round(COALESCE( Longitude - lag(LONGITUDE, 1 , Null) over (order by LONGITUDE), LONGITUDE),20) as long_diff, Latitude || '-' || Lead( Latitude, 1,0) over (order by Latitude) as prev_Latitude From RPT.GTA_ADDRESS_DATA ORDER BY LATITUDE asc )

谢谢!

0 个答案:

没有答案