У меня есть SpatialPointsDataFrame (RoadPoints), состоящий из почти 8000 точек вдоль одного шоссе с информацией о дороге и рейтингом, основанным на безопасности. Я пытаюсь соединить эти точки, чтобы сформировать отрезки длиной 90-100 м, сохраняя данные и рейтинг безопасности.
Сводка 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.
На самом деле я не знаю другого способа соединить эти точки.
Любые предложения, пожалуйста?