2016-03-19 17 views
0

ニューヨーク市の住所と郵便番号10027と中国北京の距離をmapdist()関数を使用して計算しようとしましたが、NAを返します。それはどのように動作するか知っていますか?mapdist()を使用して北京とニューヨークの距離を計算する

> mapdist(as.numeric(geocode("10027")),as.numeric(geocode("beijing,china"))) 
             from 
1 500 Riverside Dr, New York, NY 10027, USA 
                   to 
1 Bei Jing Shi Ren Min Zheng Fu, Dongcheng Qu, Beijing Shi, China 
    km miles minutes hours 
1 NA NA  NA NA ` 
+0

運転、歩行、サイクリングの距離が最短の地理的距離ではなく**、したがって海洋を横切ることはできません。 – alistaire

+0

ありがとうございます。今私は理由を知っている。 – zhichi

答えて

1

Rのヘルプオプションを見ると、何が起こっているかの良い例が得られます。

#import ggmap 

    library(ggmap) 

#get set of longitudinal and latitudinal coordinates 

    (wh <- as.numeric(geocode("the white house, dc"))) 
    (lm <- as.numeric(geocode("lincoln memorial washington dc"))) 

また、歩行、自転車または運転のモードを設定する必要があります。 Alistaireが言及したよう

mapdist(wh, lm, mode = "walking") 

、地理的な距離のために、あなたは地球の球形の形状に応じた距離を計算する必要があります。地球は完全に円形ではありませんが、合理的に正確な数式があります。

http://www.r-bloggers.com/great-circle-distance-calculations-in-r/

gcd.hf <- function(long1, lat1, long2, lat2) { 
    R <- 6371 # Earth mean radius [km] 
    delta.long <- (long2 - long1) 
    delta.lat <- (lat2 - lat1) 
    a <- sin(delta.lat/2)^2 + cos(lat1) * cos(lat2) * sin(delta.long/2)^2 
    c <- 2 * asin(min(1,sqrt(a))) 
    d = R * c 
    return(d) # Distance in km 
} 

をこのあなたは地理的な距離を求めている場合、私はリンクを読んだ:

次は、私はこのウェブサイトから直接取った式です。

+0

'mapdist'は' mapdist( 'white house'、 'lincoln memorial') 'に本当に満足しています。ジオコードする必要はありません。 – alistaire

+0

彼らが提供するドキュメントはかなり古くていいかもしれません。 – InfiniteFlashChess

+0

ありがとうございました。しかし、私はノルウェーの場所である "chalmersの技術大学"のようないくつかの場所では、機能は動作しませんでした。 – zhichi

関連する問題