我有lat/longs个特定区域。如何在CSV文件中插入与单个区域对应的多个经/纬度?我现在在CSV文件中使用随机数。我已附上截图以显示我的CSV文件。我不希望有一个纬度和经度,而是要多个对应一个区域。我稍后必须在地图框上绘制它们
这是我用于将csv文件转换为geojson文件的代码
library(geojsonio)
library(rgdal)
file_to_geojson(input = "FINAL DATA ENTRY.csv",method ="web" )
我的csv文件 geojson文件在创建后会给出这样的坐标。如果在我从csv文件转换后的geojson输出文件中看到红色突出显示的区域,则我想要的几何形状应该是多边形或多多边形,并且它应该包含100个坐标而不是单个坐标。如何将这100多个坐标提供给csv文件?如果有人不了解我,我会更加清楚。让我知道。请忽略我的英语不好。
Added我的csv文件。
答案 0 :(得分:1)
尝试一下:
使用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