2

空間ポリゴンと空間ラインが交差するかどうかを迅速に判断する必要があります。現在、ポリゴンを空間線に変換して使用してgIntersection()います。より迅速な方法を提案できる人はいますか? おそらく、空間線などの代わりにラスターを使用しています。これを何千回も行う必要があります。

# .shp file to Spatial Line
polygon1 <- readShapeSpatial("C:.../SALandmass.shp")
polygon1filled <- SpatialPolygons(list(Polygons(list(polygon1@polygons[[1]]@Polygons[[1]]),ID=1)))
SL <- as(polygon1filled, "SpatialLines")


# Test if line between two coordinates cross the shape
Pt1 = list(x = c(CurrentLong, MapCoordsm$x[i]), y = c(CurrentLat, MapCoordsm$y[i]))
SpatialLine1 = SpatialLines(list(Lines(Line(cbind(Pt1$x,Pt1$y)), "L1")))
cross <- length(gIntersection(SpatialLine1, SL))
4

2 に答える 2

2

WheregIntersectionは交差するジオメトリをgIntersects返し、2 つのジオメトリが交差するかどうかを示す論理値を返します。

于 2015-08-26T13:37:45.790 に答える