Google Maps / OSM - 在一个区域(不是一个点)的100英里范围内查找记录

时间:2013-11-13 16:21:04

标签: mysql oracle google-maps distance openstreetmap

我想找到给定区域N英里范围内的所有点。

E.g。该地区是加利福尼亚州:查找距离加利福尼亚州(不是加利福尼亚州中部)50英里范围内的所有点。

使用Google地图时,距离是使用给定位置的“中间”计算的,但我需要使用给定位置的边框计算距离。该位置可以是任何邮政编码,城市或国家。

可以通过在地图上使用加利福尼亚坐标绘制多边形并使用多边形的点计算到位置B的距离来完成吗?

对此有更优雅的解决方案吗?有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解你的要求,但我会尝试不同的解释:

<强> 1。您想要过滤自己的地图点:
这可以通过任何GIS或提供my_points_in_area(bbox)等调用的服务来完成。 Bbox在这里意味着边界框,是2x纬度/经度对,用于描述给定中心点周围的矩形。如果你想要准确并且真的只是在100公里范围内传递什么,你可能需要再次测试到POI的距离,因为矩形还包括更远的点。

<强> 2。您想过滤OSM数据:
您可以使用反向地理编码服务作为Nominatim来获取有关此距离内的兴趣点的信息:http://wiki.openstreetmap.org/wiki/Nominatim

否则使用osmosis将OSM数据导入PostGIS DB。 AFAIK(目前)没有适用于Oracle的数据库工具:http://wiki.openstreetmap.org/wiki/Oracle

如果我错过了您的问题,我很抱歉,但请添加更多详情:)