将空间点连接到R

时间:2019-06-13 01:44:54

标签: r spatial tmap

我有一个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.

我真的不知道有什么其他方法可以连接这些点。 有什么建议吗?

0 个答案:

没有答案