在 R 中将 csv 转换为 geojson 格式时如何添加多个经纬度

How to add multiple lat longs when converting to csv to gejson format in R

我有一个特定区域的 lat/longs。如何在 CSV 文件中插入对应于单个区域的多个 lat/lons?我现在只是在我的 CSV 文件中使用随机数。我已附上屏幕截图以显示我的 CSV 文件。我不想要单一的纬度和经度,而是多个对应于一个区域。我必须稍后在地图框上绘制它们

这是我用来将我的 csv 文件转换为 geojson 文件的代码

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

geojson 文件在创建时给出坐标。如果您在我从 csv 文件转换的 geojson 输出文件中看到红色突出显示的区域,我想要的是几何应该是多边形或多边形,它应该包括 100 个坐标而不是单个坐标。如何将这 100 多个坐标提供给 csv 文件?如果有人无法理解我,我会更清楚。让我知道。请忽略我糟糕的英语。

Added 我的 csv 文件。

试试这个:

使用 sf-package 允许将组(例如状态)的点组合为 MULTIPOINTPOLYGON。在您的文件中,有些州只有一个点,所以我可以将其转换为 MULTIPOINT

然后将 sf-class 保存为 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