Мне нужно быстро определить, пересекаются ли пространственный многоугольник и пространственная линия. В настоящее время я преобразовываю polgon в пространственную линию и используя gIntersection()
. Может ли кто-нибудь предложить потенциально более быстрый метод? Возможно, используя растры вместо пространственной линии или что-то еще. Мне нужно делать это много тысяч раз.Есть ли более быстрая альтернатива «gIntersection»?
# .shp file to Spatial Line
polygon1 <- readShapeSpatial("C:.../SALandmass.shp")
polygon1filled <- SpatialPolygons(list(Polygons(list([email protected][[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))
Я бы предложил перенести этот вопрос [gis.stackexchange] (http://gis.stackexchange.com/questions/tagged/r), обеспечивая более контекст и коды. –
как определяются ваши пространственные линии? в каком измерении вы рассуждаете и что вы пытались сделать до сих пор? –
Я никогда не слышал о 'gIntersect()'. Возможно, вы спрашиваете о 'gIntersects()'? Как вы его используете? –