优化地理位置搜索

时间:2016-08-03 16:49:23

标签: sql geolocation

我是新手,如果有人可以为谷歌提供链接或关键字,我会很高兴 我将拥有数万个具有地理数据值的事件,如点,线和多边形,并且需要快速命中测试算法,该算法将找到与给定近似值重叠给定点/线/多边形的所有位置。同时我需要通过variuos属性过滤这些事件,因此查询应该过滤地理数据和自定义字段。例如,我想知道距离特定地点N公里处的城市,河流或山区。需要数据持久存储在SQL服务器中,但可以考虑不同的方式。这类任务的常用方法是什么?

1 个答案:

答案 0 :(得分:0)

SQL方式似乎很常见,而且使用起来并不那么难。

保存数据后,您可以使用以下功能提取相对距离的兴趣点:

SELECT tblcity.city, tblcity.latitude, tblcity.longitude, 
truncate((degrees(acos( sin(radians(tblcity.latitude)) 
* sin(radians(45.266708)) 
+ cos(radians(tblcity.latitude)) 
* cos(radians(45.266708)) 
* cos(radians(-73.616257 - tblcity.longitude) ) ) ) 
* 69.09*1.6),1) as distance 
FROM tblcity HAVING distance < 10 ORDER BY distance desc 

取自https://stackoverflow.com/a/2695446/6660122

编辑:由于您已经了解SQL并且需要SQL可以提供的额外功能,我绝对会这样做!