Как добавить несколько длинных длин при преобразовании в CSV в формате Gejson в R - PullRequest
0 голосов
/ 27 июня 2019

У меня есть широта / долгота определенной области.Как вставить несколько лат / лонов, соответствующих одной области в файле CSV?Я просто использую случайные числа прямо сейчас в моем файле CSV.Я приложил скриншот, чтобы показать мой файл CSV.Я не хочу одну широту и долготу, но несколько, соответствующих одной области.Я должен построить их позже на поле карты

Этот код я использую для преобразования моего CSV-файла в файл Geojson

library(geojsonio)
library(rgdal)
file_to_geojson(input = "FINAL DATA ENTRY.csv",method ="web" ) 

Мой CSV-файл enter image description here Geojson файл при создании дает координаты, как это.Если вы видите выделенную красным цветом область в моем выходном файле geojson, который я конвертировал из CSV-файла, я хочу, чтобы геометрия была многоугольной или многоугольной, и она должна включать 100 координат, а не одну.Как я могу предоставить эти 100+ координат в CSV-файл?Я буду более ясен, если кто-то не сможет меня понять.Дай мне знать.Игнорируйте мой плохой английский, пожалуйста. enter image description here

Добавлено Мой CSV-файл.

1 Ответ

1 голос
/ 27 июня 2019

Попробуйте это:

Использование пакета sf, который позволяет объединять точки группы (например, состояния) в MULTIPOINT или POLYGON. В вашем файле некоторые состояния имеют только одну точку, поэтому я могу преобразовать ее в MULTIPOINT.

А затем сохраните sf-класс как geojson.


library(geojsonio)
library(sf)
library(tidyverse)

data<- data[,c("State", "lat", "lon")]

sf_data <- st_as_sf(data, coords = c("lon", "lat"))

sf_data  %>%
  group_by(State) %>%
  summarise(geometry = st_combine(geometry)) %>%
  st_cast("POLYGON") -> res_sfdata


geojson_write(res_sfdata, file = "yourpath/res_sfdata.geojson")

Однако вам придется удалить другие столбцы. Потому что у вас есть разная информация в каждой точке, которую вы хотите объединить.

РЕДАКТИРОВАТЬ : Если вы хотите сгруппировать по нескольким столбцам:


data<- data[,c("State", "PC_Name", "lat", "lon")]

sf_data <- st_as_sf(data, coords = c("lon", "lat"))

sf_data  %>%
  group_by(State, PC_Name) %>%
  summarise(geometry = st_combine(geometry)) %>%
  st_cast("POLYGON") %>%
  group_by(State) %>%
  summarise(geometry = st_combine(geometry)) 
  st_cast("MULTIPOLYGON") -> res_sfdata
...