<div dir="ltr"><div>Hi everyone,</div><div><br></div><div>I have to overlap points and lines, with the aim to get a data frame or similar with the results of the intersection. For example:</div><div>Points Overlap</div><div>p1          Line1</div><div>p1          Line2</div><div>p2          Line1</div><div>p4          Line1</div><div><br></div><div>I have two dataset (lixo and boats) with location points and other attributes. </div><div>I created spatial points data frame (sightings-"lixo") with the lixo dataset and spatial lines data frame (transect boats-"line") </div><div>with the boat dataset. I used the function rgeos:gInstersect and I buffer the lines, to get the intersections I expect.</div><div>But the gIntersect only says If the intersection is happening,  true or false. I saw the function gUnion, </div><div>but it seems to get the area of the intersection, and not to extract information from the attributes of the objects.</div><div>I though that may be I can use the function over with the line.buffer because they are spatialpolygon. </div><div>However, I can't because my original database (11 spatial points) has different row number than the final polygon (1 feature).</div><div><br></div><div>I think, I'm complicating the process. Is it possible to extract the attributes between this kind of spatial objects? </div><div><br></div><div>Thanks in advance,</div><div><br></div><div>Marta</div><div><br></div><div><br></div><div><br></div><div>#script</div><div>##############</div><div>lixo <- read.table(paste0(path_data,"lixo4pontosDT.csv"), header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)<br>sp::coordinates(lixo) <- ~Long1+Lat<br>sp::proj4string(lixo) <-CRS("+proj=longlat +datum=WGS84 +no_defs")<br>lixo<-sp::spTransform(lixo, CRS("+proj=laea +lat_0=30 +lon_0=-30 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defs"))<br>raster::plot(lixo,add=TRUE)<br>str(lixo)<br>lixo<br>lixo<br>int <- gIntersects(line,lixo, byid = TRUE) # find which poinTs intersect #Error: is.logical(byid) is not TRUE<br>class(int) # it's outputed a matrix<br>plot(gBuffer(line,width=0.002))<br>plot(int)<br>plot(lixo,add=TRUE)<br>line.buf<-gBuffer(line,width=0.002)<br>line.buf<br>#intersects works<br>int.buf <- gIntersects(line.buf,lixo, byid = TRUE) # find which poinTs intersect <br>int.buf<br>Pnt_union <- gUnion(line.buf,lixo)<br>Pnt_union<- rgeos::gUnion(line.buf, lixo)</div><div><br></div><div>Pnt_union<br>plot(int.buf)<br>plot(line)<br>plot(line.buf,col='blue',add=TRUE);<br>plot(line,add=TRUE)<br>plot(Sptsdf,add=TRUE,pch=16,axes=TRUE) <br>title(paste("Intersects:",gIntersects(line.buf,Sptsdf), "\nDisjoint:",gDisjoint(line,Sptsdf)))<br>library(rgeos)<br>#############<br>lixo#SpatialPointsDataFrame<br>line.buf#SpatialPolygons<br>str(line.buf)<br>pos<br>poldf = SpatialPolygonsDataFrame(line.buf, pos)#not make senses line.buf (1 feature), pos( 11 features)<br>join <- over(lixo, line.buf)<br>join<br># Integrate this vegetation data into the SpatialPoints object<br>ptsrand <- SpatialPointsDataFrame(lixo, join)<br>head(ptsrand)</div><div>##################################</div></div>