【问题标题】:Determining the distance between two ZIP codes (alternatives to mapdist)确定两个邮政编码之间的距离(mapdist 的替代方案)
【发布时间】:2013-06-26 01:29:04
【问题描述】:

我想计算大约之间的距离。 100,000 个不同的邮政编码。我知道ggmap 包中的mapdist 函数

mapdist 完美运行:

library(ggmap)
mapdist('Washington', 'New York', mode = 'driving')

#         from       to      m      km    miles seconds  minutes    hours
# 1 Washington New York 366284 366.284 227.6089   13997 233.2833 3.888056


mapdist('20001', '10001', mode = 'driving')

#    from    to      m      km    miles seconds minutes    hours
# 1 20001 10001 363119 363.119 225.6421   13713  228.55 3.809167

但是,mapdist 依赖于 Google Geocoding API,该 API 受到每天 2,500 个地理位置请求的查询限制的限制。

您是否知道任何替代 r 代码可以使用具有更高请求限制的其他服务(例如诺基亚地图或 Bing)来计算两点之间的距离?

【问题讨论】:

  • 作为替代方案,您可以使用Imap 包中的gdist 来计算Great-circle distance,但我认为您需要获取纬度/经度坐标...
  • @agstudy 好点。我相信rdist 包中还有一个Haversine 公式。这样做的好处是您只需要每个点进行一次地理编码查找,而不是每对点进行一次地理编码查找。这无关紧要(如果您只想从不同的点对进行观察)或可能很重要(如果您的所有路线都从同一点开始)

标签: r google-maps-api-3 geospatial spatial ggmap


【解决方案1】:

taRifx.geo::georoute(仅在我推出另一个更新之前可用here,届时它将通过install.packages 提供)可以使用必应地图(我相信它支持每天 25k)并且可以返回距离。

georoute( c("3817 Spruce St, Philadelphia, PA 19104", 
            "9000 Rockville Pike, Bethesda, Maryland 20892"), 
             verbose=TRUE, returntype="time", 
             service="bing" )

您必须获得一个 Bing Maps API 密钥并将其设置在您的 R 全局选项中(理想的位置是在 .Rprofile),但该密钥是免费的:

options(BingMapsKey="whateverBingGivesYouForYourKey")

【讨论】:

  • +1!好东西。每天 25k 对 Bing 来说确实是个好点。
  • 您也可以使用taRifx.geo::geocode 使用必应进行地理编码。
  • 地理编码是查找(纬度/经度)的过程吗?抱歉,我不知道地理术语...
  • 是的。将地址转换为纬度/经度对。 ggmaps 的功能在某些方面更完整,但仅限 Google 地图。
【解决方案2】:

这可能很简单,但一个完全免费的选择是使用Census ZCTA geography data 获取每个邮政编码的坐标,然后计算坐标之间的Haversine distances(或一些类似的距离度量)。

【讨论】:

    【解决方案3】:

    如果您启动新的 R 会话并在新会话中运行 library(ggmap),则可以再进行 2500 次查询。

    函数distQueryCheck() 显示剩余的查询数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 2014-08-12
      • 1970-01-01
      相关资源
      最近更新 更多