gpt4 book ai didi

r - 如何在给定经纬度信息的情况下在 r 中显示谷歌地图方向

转载 作者:行者123 更新时间:2023-12-04 10:54:40 26 4
gpt4 key购买 nike

我有几个地点的纬度和经度信息。这是一个示例:

lat<-c(17.48693,17.49222,17.51965,17.49359,17.49284,17.47077)
long<-c(78.38945,78.39643,78.37835,78.40079,78.40686,78.35874)

我想按某种顺序绘制这些位置(比如上面向量中第一个元素的经纬度组合将是起点,我需要以相同的顺序行进到最后一个位置)在 R 中使用谷歌地图方向。经过一些搜索,我发现有一个谷歌地图 api,我可以从中获取指定位置的谷歌地图屏幕截图,在它之上我们需要绘制线条来连接它们。但我需要的是谷歌地图行车路线来连接位置(不是 ggplot 线)。请帮忙。

最佳答案

我写了包 googleway使用有效的 API key 访问谷歌地图 API。

您可以使用函数 google_directions() 获取路线,包括航点、路线步数、路程、距离、时间等。

例如

library(googleway)

## using a valid Google Maps API key
key <- "your_api_key"

## Using the first and last coordinates as the origin/destination
origin <- c(17.48693, 78.38945)
destination <- c(17.47077, 78.35874)

## and the coordinates in between as waypoints
waypoints <- list(via = c(17.49222, 78.39643),
via = c(17.51965, 78.37835),
via = c(17.49359, 78.40079),
via = c(17.49284, 78.40686))
## use 'stop' in place of 'via' for stopovers

## get the directions from Google Maps API
res <- google_directions(origin = origin,
destination = destination,
waypoints = waypoints,
key = key) ## include simplify = F to return data as JSON

结果是从谷歌地图接收到的所有数据

## see the structure
# str(res)

您在 Google map 上看到的线包含在

res$routes$overview_polyline$points
# [1] "slviBqmm}MSLiA{B^wAj@sB}Ac@...

这是一条编码折线。

要从中获取纬度/经度,请使用函数 decode_pl()

df_polyline <- decode_pl(res$routes$overview_polyline$points)
head(df_polyline)
# lat lon
# 1 17.48698 78.38953
# 2 17.48708 78.38946
# 3 17.48745 78.39008
# 4 17.48729 78.39052
# 5 17.48707 78.39110
# 6 17.48754 78.39128

当然你可以随心所欲地绘制

library(leaflet)

leaflet() %>%
addTiles() %>%
addPolylines(data = df_polyline, lat = ~lat, lng = ~lon)

enter image description here


编辑 2017-07-21

googleway 2.0 开始,您可以在 Google map 中绘制折线,既可以像以前一样使用解码坐标,也可以直接使用折线

google_map(key = key) %>%
add_polylines(data = data.frame(polyline = res$routes$overview_polyline$points),
polyline = "polyline")

enter image description here

关于r - 如何在给定经纬度信息的情况下在 r 中显示谷歌地图方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33416328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com