【问题标题】:Geocoding libraries [closed]地理编码库[关闭]
【发布时间】:2010-09-27 06:24:21
【问题描述】:

我正在使用 python,我需要将“布卢明顿,印第安纳州”等位置映射到 GPS 坐标,以便测量它们之间的距离。 您推荐哪些地理编码库/API?也欢迎使用其他语言的解决方案。

【问题讨论】:

  • 我们这些不使用 Python 但仍对地理编码感兴趣的人会很高兴看到更广泛的答案。

标签: python api rest geocoding


【解决方案1】:

您可以查看GeoLite City。它是免费的 (GPL),但他们说这不是最准确的。

在 25 英里半径范围内,美国在国家一级超过 99.5%,在城市一级超过 79%

这仍然可能适合您,具体取决于您的需要。

【讨论】:

    【解决方案2】:

    Google Maps API supports geocoding 和 Python Cookbook 有一个简单的 example 可以从 Python 访问它(尽管配方不直接使用 API,只是简单的 maps.google.com 网址)。

    【讨论】:

      【解决方案3】:

      Google 和 Microsoft 都有很容易接入的 API。有一些限制,但它们非常慷慨。您可能还想查看http://geocoder.us/。我不知道有任何好的免费地理编码服务(我已经花时间寻找!)

      【讨论】:

        【解决方案4】:

        Geopy 可让您从多种地理编码器(包括 Google、Yahoo、Virtual Earth)中进行选择。

        【讨论】:

          【解决方案5】:

          您可以使用像谷歌地图这样的网络 API 来查找坐标。那么如果你只需要计算距离(直线),there is a formula 你可以申请得到相当准确的结果。

          【讨论】:

            【解决方案6】:

            USC WebGIS Geocoder (https://webgis.usc.edu) 是免费的。它具有您可以从脚本调用的 API,或者您可以上传和处理数据库(mdb、csv 等)。准确度级别取决于您的地址在哪里。例如,在洛杉矶县可以使用包裹质心,而在该国其他地区只有 TIGER/Lines 可用。参考数据源的覆盖图目前不可用,但正在开发中。一旦完成更多开发,底层工具计划在未来开源。

            【讨论】:

              【解决方案7】:

              前几天我遇到了http://www.geonames.org/。您实际上可以下载邮政​​编码的所有数据,包括纬度/经度等,甚至用于商业用途,以节省连接到外部资源的时间。我认为你可以对城市名称做同样的事情(邮政编码数据已经有与之关联的 subrub 名称)。

              一些关于“乌鸦飞翔”距离的数学计算 - 可以在herehere (.NET example) 中找到直接从点到点的距离。

              【讨论】:

                【解决方案8】:

                您可以更好地查看 Geopy 模块。它非常值得使用,因为它包含 Google 地图、雅虎地图地理编码器,您可以使用它们来实现地理编码。

                【讨论】:

                  【解决方案9】:

                  Google 的网络服务非常易于使用。只需将查询放在 URL 中即可。为了让它更容易/更懒惰,我将无耻地宣传pygeocoder,这是一个用于谷歌地理编码的 Python 包装器。然后你可以做类似的事情

                  print Geocoder.geocode("Montreal, Canada")[0].coordinates
                  

                  得到一个带坐标的元组。你也可以做类似的事情

                  Geocoder.geocode("sushi, San Francisco").count
                  

                  Geocoder.geocode("sushi, San Francisco")[0].postal_code
                  

                  【讨论】:

                  • Xster,当对包含变音符号(“éèôœö”)的地址进行地理编码并且不返回任何结果时,您的库似乎已损坏。我想这是因为它对它们进行了 urlencode,而 Google 按原样接受这些字符。
                  猜你喜欢
                  • 2010-10-31
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-03-15
                  • 1970-01-01
                  • 1970-01-01
                  • 2023-03-19
                  • 1970-01-01
                  相关资源
                  最近更新 更多