0

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

例如,该区域是加利福尼亚:查找距离加利福尼亚边界 50 英里范围内的所有点(不是加利福尼亚中部)。

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

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

有没有更优雅的解决方案?有任何想法吗?

谢谢!

4

1 回答 1

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

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

于 2013-11-13T17:27:05.743 回答