如何在自己的服务器上进行反向地理编码?

7

我们正在获取大量数据,尝试在我们的数据库上构建一个系统,可以将纬度-经度信息转换为城市和国家。我们不想使用任何谷歌API。我们想要设置自己的服务器来完成此操作。

3个回答

5

看一下Nominatim。它是一个流行的OpenStreetMap服务,能够回答地理编码和反向地理编码查询。你也可以设置自己的Nominatim实例。如果你想使用公共实例,那么请确保遵守OSM的Nominatim使用政策,因为服务器运行在捐赠的资源上。或者您可以使用另一个公共实例,例如由MapQuest提供的Nominatim实例


4
如果您打算在服务器上自行操作,我建议您使用一个包含城市的纬度/经度区域质心的免费数据库。将数据集导入到您自己的数据库中。
然后,您可以在您的点和区域质心之间进行距离检查(查询),以寻找最接近该点的城市质心。只需记住出于性能考虑:
1. 将城市的纬度/经度存储为地理空间 POINT() 数据类型(而不是十进制数!) 2. 为具有 POINT() 值的城市中心的字段创建地理空间索引。
如果您使用 MySQL,则 stackoverflow 上有很多关于如何执行此操作的答案(只需搜索):
以下是一些免费数据集:
MaxMind:http://www.maxmind.com/en/worldcities Geonames.Org:http://www.geonames.org/export/

我是这个开源数据项目的联合创始人,名为OpenGeoCode.Org:http://www.opengeocode.org/download.php#cities


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接