我有一个SpatialPointsDataFrame(RoadPoints),由沿着一条高速公路的近8000个点组成,其中包含有关道路的信息以及基于安全性的等级。我正在尝试将这些点连接起来以形成90-100 m的线段,仍然保留数据和安全等级。
SpatialPointsDataFrame摘要如下:
Object of class SpatialPointsDataFrame
Coordinates:
min max
X 149.67783 151.19493
Y -37.38887 -33.88437
Is projected: FALSE
proj4string : [+proj=longlat +ellps=GRS80 +no_defs]
Number of points: 8000
Data attributes:
OBJECTID
120482 : 1
120483 : 1
120484 : 1
120485 : 1
120486 : 1
121066 : 1
(Other):8000
Latitude
Min. :-37.39
1st Qu.:-36.22
Median :-35.02
Mean :-35.29
3rd Qu.:-34.43
Max. :-33.87
Longitude
1st Qu.:150.1
Median :150.6
Mean :150.5
3rd Qu.:150.9
Max. :151.2
我尝试了以下方法:
x <- lapply(split(RoadPoints, RoadPoints$OBJECTID), function(x) Lines(list(Line(coordinates(x))), x$OBJECTID[1L]))
lines <- SpatialLines(x)
data <- data.frame(RoadPoints$OBJECTID, RoadPoints$Longitude, RoadPoints$Latitude,
RoadPoints$Vehicle_SR)
colnames(data) <- c("OBJECTID", "Longitude", "Latitude", "Vehicle_SR")
rownames(data) <- data$RoadPoints.OBJECTID
rownames(data)
RoadPoints_Connected <- SpatialLinesDataFrame(lines, data)
当我尝试使用tmap绘制结果时,得到以下结果:
Error in CPL_geos_is_empty(st_geometry(x)) :
Evaluation error: IllegalArgumentException: point array must contain 0 or >1 elements.
我真的不知道有什么其他方法可以连接这些点。 有什么建议吗?