Соединение пространственных точек с направленными линиями с помощью пакета PlotGoogleMaps в R

Я пытался сделать несколько динамических графиков Google Map из R, используя PlotGoogleMaps пакет. У меня нет проблем при построении пространственных точек на картах Google с помощью этого пакета.

Я хочу соединить несколько пар пространственных точек, нанесенных линиями. Я не мог найти способ сделать это в R с пакетом. Похоже, у Google Maps есть функция для этого в API: google.maps.Polyline,

Может ли кто-нибудь помочь с тем, как это можно сделать в R? Я ссылался на ссылки типа Как заставить изображение iconMarker работать для plotGoogleMaps R? чтобы убедиться, что мой основной сюжет работает нормально. Как я могу присоединиться к ним, чтобы показать путь?

Я запустил код ниже

library(plotGoogleMaps)
vessels = data.frame(id = c(1:10)
                     , lat = c(22.0959, 22.5684, 21.9189, 21.8409, 22.4663, 22.7434, 22.1658, 24.5691, 22.4787, 22.3039)
                     , lon = c(114.021, 114.252, 113.210, 113.128, 113.894, 114.613, 113.803, 119.730, 113.910, 114.147))
group1 = vessels[1:5,]
group2 = vessels[6:10,]

coordinates(group1) = ~ lon + lat
proj4string(group1) = CRS("+proj=longlat +datum=WGS84")
group1 <- SpatialPointsDataFrame( group1 , data = data.frame( ID = row.names( group1 ) ))

coordinates(group2) = ~ lon + lat
proj4string(group2) = CRS("+proj=longlat +datum=WGS84")
group2 <- SpatialPointsDataFrame( group2 , data = data.frame( ID = row.names( group1 ) ))
m <- plotGoogleMaps(group1, legend = FALSE, layerName = "Vessels 1"
                    , add =T,
                    iconMarker=rep('http://maps.google.com/mapfiles/kml/shapes/placemark_circle.png',nrow(group1) ), 
                    mapTypeId='ROADMAP', filename = "out.htm")

m <- plotGoogleMaps(group2,legend = FALSE, layerName = "Vessels 2"
                    , previousMap = m , add = F
                    , iconMarker = rep('http://maps.google.com/mapfiles/kml/shapes/placemark_circle.png',nrow(group2) )
                    , filename = "out.htm")

Работает нормально. Но я не знаю, как соединить нанесенные точки, чтобы сделать путь между выбранной парой точек на карте.

1 ответ

Решение

Это не дает прямого ответа на ваш вопрос, но я публикую его как потенциальную альтернативу.

Я построил googleway пакет, который включает в себя виджет Google Maps.

Для использования Google Maps необходим ключ API Карт Google

library(googleway)

vessels = data.frame(id = c(1:10)
                    , lat = c(22.0959, 22.5684, 21.9189, 21.8409, 22.4663, 22.7434, 22.1658, 24.5691, 22.4787, 22.3039)
                    , lon = c(114.021, 114.252, 113.210, 113.128, 113.894, 114.613, 113.803, 119.730, 113.910, 114.147))

vessels$group <- c(rep(1, 5), rep(2, 5))

## a google maps api key
map_key <- "your_api_key"

google_map(key = map_key, data = vessels) %>%
    add_circles(radius = 1000) %>%
    add_polylines(lat = 'lat', lon = 'lon', id = 'group', 
                   mouse_over_group = 'group')

Другие вопросы по тегам