R 在地图上围绕lat/long绘制时间半径

R 在地图上围绕lat/long绘制时间半径,r,google-maps,travel-time,R,Google Maps,Travel Time,我正在使用R中的gmapsdestance包。我有我的API密钥,我熟悉包中的函数 然而,我想反方向解决一个问题。我想输入一个lat/long,并绘制一个包含所有点的区域,这些点可以在3小时或更短的时间内到达,而不仅仅是查找lat/long之间的时间,距离,以及状态。然后我想在谷歌地图上画这个。 首先,最好使用Marimar,FL:25.9840,-80.2821 有人遇到过这种类型的问题吗?正如评论中所建议的,您可以注册一个类似(我在本例中使用的)的服务,并使用他们的API获取给定起点的可能目

我正在使用R中的
gmapsdestance
包。我有我的API密钥,我熟悉包中的函数

然而,我想反方向解决一个问题。我想输入一个lat/long,并绘制一个包含所有点的区域,这些点可以在3小时或更短的时间内到达,而不仅仅是查找lat/long之间的
时间
距离
,以及
状态
。然后我想在谷歌地图上画这个。 首先,最好使用Marimar,FL:25.9840,-80.2821


有人遇到过这种类型的问题吗?

正如评论中所建议的,您可以注册一个类似(我在本例中使用的)的服务,并使用他们的API获取给定起点的可能目的地

然后,您可以使用谷歌地图(在我的谷歌软件包中)将其绘制在地图上


appId如果您想在传单中渲染并使用免费的等时线服务,这是一个非常好的选择。不过,开车2小时是有限制的

devtools::install_github("tarakc02/rmapzen")
library(rmapzen)
Sys.setenv(MAPZEN_KEY = "") # get for free at https://mapzen.com/

marimar <- mz_geocode("Marimar, FL")
isos <- mz_isochrone(
  marimar,
  costing_model = mz_costing$auto(),
  contours = mz_contours(c(60 * 2))  # 2 hours 
)

library(leaflet)
leaflet(as_sp(isos)) %>%
  addProviderTiles("CartoDB.DarkMatter") %>%
  addPolygons(color = ~paste0("#", color), weight = 1)
devtools::安装github(“tarakc02/rmapzen”)
图书馆(rmapzen)
Sys.setenv(MAPZEN_KEY=“”)#免费获取https://mapzen.com/
马里马%
addPolygons(颜色=~paste0(“#”,颜色),权重=1)

恐怕谷歌地图API不提供时间驱动的多边形,您可以考虑其他解决方案。例如,或者你的答案很接近于回答我的问题,但我需要找到你在一定时间内到达某一点的地点(而不是定义起点,我想给出目的地)。如果你能看一下,我将不胜感激。干杯。@Masoud-你在追踪构成轮廓的
res
中的每一对lon/lat吗?我需要找到你可以在一小时内到达目的地的点。因此,它不同于
res
,因为您知道传输时间是不可逆的。撇开这一点不谈,我不需要知道每一点,只要我能以合理的分辨率绘制轮廓。@Masoud我现在不确定我知道有什么解决方案,特别是如果你想要精确的驾驶时间,因为这需要多次API调用(使用谷歌或旅行时间)是的,这正是我试图避免的,因为这在计算上很昂贵,但似乎是唯一的解决方案。谢谢。mapzen api目前似乎已停止使用(至少新用户无法使用);2018年12月12日
devtools::install_github("tarakc02/rmapzen")
library(rmapzen)
Sys.setenv(MAPZEN_KEY = "") # get for free at https://mapzen.com/

marimar <- mz_geocode("Marimar, FL")
isos <- mz_isochrone(
  marimar,
  costing_model = mz_costing$auto(),
  contours = mz_contours(c(60 * 2))  # 2 hours 
)

library(leaflet)
leaflet(as_sp(isos)) %>%
  addProviderTiles("CartoDB.DarkMatter") %>%
  addPolygons(color = ~paste0("#", color), weight = 1)