web-dev-qa-db-ja.com

2つの郵便番号間の距離の決定(mapdistの代替)

約間の距離を計算したい。 100,000の異なる郵便番号。 mapdistパッケージのggmap関数について知っています

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はGoogleGeocoding APIに依存しており、1日あたりクエリ制限は2,500ジオロケーションリクエスト 1の対象となります。

リクエスト制限が高い別のサービス(Nokia MapsやBingなど)を使用して2点間の距離を計算するための代替rコードを知っていますか?

15
majom

taRifx.geo::georoute(のみ利用可能 ここ 別の更新をプッシュするまで、その時点でinstall.packages経由で利用可能になります)Bing Mapsを使用できます(1日あたり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")
14
Ari B. Friedman

これは些細なことかもしれませんが、完全に無料のオプションの1つは、 国勢調査ZCTA地理データ を使用して各郵便番号の座標を取得し、 Haversine distances (または同様のもの)を計算することです。座標間の距離メトリック)。

1
shreyasgm

新しいRセッションを開始し、新しいセッションでlibrary(ggmap)を実行すると、さらに2500のクエリを実行できます。

関数distQueryCheck()は、残りのクエリの数を示します。

0
Hao