【问题标题】:How can I do Reverse Geocoding on my own Server?如何在自己的服务器上进行反向地理编码?
【发布时间】:2014-01-29 11:54:04
【问题描述】:

我们正在获取大量数据,并正在尝试在我们的数据库上构建一个系统,该系统可以将经纬度信息转换为城市和国家/地区。我们不想使用任何 google Api。我们想设置我们自己的服务器来执行此操作。

【问题讨论】:

    标签: geocoding reverse-geocoding


    【解决方案1】:

    看看Nominatim。它是 OpenStreetMap 的一项流行服务,能够回答地理编码和反向地理编码查询。也可以set up your own Nominatim instance。如果您想使用公共实例,请确保遵守 OSM 的Nominatim usage policy,因为服务器在捐赠的资源上运行。或者,您可以使用另一个公共实例,例如 Nominatim instance provided by MapQuest

    【讨论】:

      【解决方案2】:

      如果您打算在服务器上自己动手,我推荐的最简单方法是使用免费的城市数据库,其中包括城市区域质心的纬度/经度。将数据集导入您自己的数据库。

      然后,您可以在您的点和区域质心之间进行距离检查(查询),以寻找该点最接近的城市质心。出于性能目的,请记住:

      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

      【讨论】:

        【解决方案3】:

        您应该设置自己的 Nominatim 服务器,您可以在此处找到分步说明 http://nominatim.org/release-docs/latest/admin/Installation/

        https://gist.github.com/malkitsingh/737ea34abec5b079a84dd39e3b0dc2d2

        但为此,您需要强大的服务器和大量空间。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-02
          • 2012-09-23
          • 1970-01-01
          • 1970-01-01
          • 2020-08-30
          • 1970-01-01
          • 2021-01-26
          相关资源
          最近更新 更多