在 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 允许将组(例如状态)的点组合为 MULTIPOINT
或 POLYGON
。在您的文件中,有些州只有一个点,所以我可以将其转换为 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
我有一个特定区域的 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 允许将组(例如状态)的点组合为 MULTIPOINT
或 POLYGON
。在您的文件中,有些州只有一个点,所以我可以将其转换为 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