我正在尝试在ggmap包中使用mapdist函数来计算距离和行走,在很多地方之间的行驶速度。我看过帮助文件了 mapdist可以接受那个坐标,但是找不到如何输入多个坐标?以下代码有效,但如何将另一个坐标放入“g”?或者如何在数据框中放置多个坐标,mapdist可以读取它们? 并且,mapdist可以在中国的位置阅读吗? 感谢您的回复!
g=c(121.754252477584,24.7528993303431)
c=c(121.752751736839,24.7554214120371)
mapdist(g,c,mode=c("driving","walking","bicycling"),output=c("simple"))
答案 0 :(得分:3)
自从被问到这个问题已经有一段时间了,但我想我会在未来的帮助下加上这个。
这个命令是我从Github上的一个脚本中学到的 - 最初由Peter Schmiedeskamp提交 - 它提醒我R可以从Google Maps API中获取驱动时间。我在example on my blog中使用来计算从各种房屋销售到市中心位置的行车时间。
location
是包含每个观察纬度/经度坐标的列,格式为(36.841287,-76.218922)
。 locMall
是我的数据集中的一列,每行都有商城的纬度/长坐标。只是为了澄清:此列中的每个单元格具有完全相同的值,而location
的每个单元格都不同。还有用的东西:模式可以是driving
,walking
或bicycling
。
library(ggmap)
library(plyr)
google_results <- rbind.fill(apply(subset(sample, select=c("location", "locMall")), 1, function(x) mapdist(x[1], x[2], mode="driving")))
现在让我们看一下结果:
head(google_results,4)
from to m km miles sec. minutes
1 (36.901373,-76.219024) (36.848950, -76.288018) 10954 10.954 6.806816 986 16.433333
2 (36.868871,-76.243859) (36.848950, -76.288018) 7279 7.279 4.523171 662 11.033333
3 (36.859805,-76.296122) (36.848950, -76.288018) 2101 2.101 1.305561 301 5.016667
4 (36.938692,-76.264474) (36.848950, -76.288018) 12844 12.844 7.981262 934 15.566667
hours
1 0.27388889
2 0.18388889
3 0.08361111
4 0.25944444