Построение шейп-файла линии на ggmap с использованием fortify () или broom :: tidy () для получения полигоноподобного вывода - PullRequest
0 голосов
/ 05 февраля 2019

Я строю шейп-файл в googlemap, используя функции ggmap и broom::tidy, чтобы укрепить его (преобразовать в фрейм данных), но по какой-то причине шейп-файл линии отображается на карте Google в виде многоугольника.Я понятия не имею, что вызывает это.Шейп-файл можно загрузить здесь

Ниже мой код:

library(rgdal)
library(rgeos)
library(ggplot2)
library(ggmap)
library(broom)
Route_shape <- readOGR(dsn = "Kaputa-Mporokoso.shp")
  crs(Route_shape) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0" 
    myMap <- get_map(location=Route_shape@bbox,
                       source="google", maptype="roadmap", crop=FALSE,colour = class)
      # Reformat shape for mapping purposes
      Route_shape_df <- broom::tidy(Route_shape)
      # Final map figure
      p <- ggmap(myMap) +
        geom_line(data = Route_shape_df, aes(x = long, y = lat, group=group),
                  colour = "red") 
p

Я получаю следующий вывод enter image description here

1 Ответ

0 голосов
/ 05 февраля 2019

Мне удалось это исправить - надеюсь, это поможет кому-то, кто борется с импортом шейп-файлов линий, поскольку я не видел его в других местах на SO.

Замените geom_line() на geom_path()

Route_shape <- readOGR(dsn = "Kaputa-Mporokoso.shp")
  crs(Route_shape) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0" 
    myMap <- get_map(location=Route_shape@bbox,
                       source="google", maptype="roadmap", crop=FALSE,colour = class)
      # Reformat shape for mapping purposes
      Route_shape_df <- broom::tidy(Route_shape)
      # Final map figure
      p <- ggmap(myMap) +
        geom_path(data = Route_shape_df, aes(x = long, y = lat, group=group),
                  colour = "red") 
p

enter image description here

...