我们正在获取大量数据,并且正在尝试在我们的数据库上构建一个系统,该系统可以将纬度 - 经度信息转换为城市和国家。我们不想使用任何谷歌Api。我们想要设置我们自己的服务器来执行此操作。
答案 0 :(得分:4)
看看Nominatim。它是OpenStreetMap的一种流行服务,能够回答地理编码和反向地理编码查询。也可以set up your own Nominatim instance。如果您想使用公共实例,请确保遵守OSM的Nominatim usage policy,因为服务器运行在捐赠的资源上。或者,您可以使用其他公共实例,例如Nominatim instance provided by MapQuest。
答案 1 :(得分:3)
如果您计划在服务器上自行动手,我建议的最简单方法是使用包含城市区域质心的纬度/经度的城市免费数据库。将数据集导入您自己的数据库。
然后,您可以在您的点与区域质心之间进行距离检查(查询),查找该点最接近的城市质心。请记住性能:
如果您使用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
答案 2 :(得分:0)
您应该设置自己的Nominatim服务器,您可以在此处找到分步说明 http://nominatim.org/release-docs/latest/admin/Installation/
或
https://gist.github.com/malkitsingh/737ea34abec5b079a84dd39e3b0dc2d2
但是为此,您将需要具有大量空间的强大服务器。