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