I need to tell whether geometries from a shapefile are inside other geometries or not.
For example, I want to test if there are trees (represented as points in
trees.shp) inside the urban areas (reprensented as polygons in
What's the easiest way to proceed?
I loop over the points, and within this loop, I have a nested loop over the polygons.
Then, I test if my point geometry is inside the polygon with the
Within(Geometry geo) method from OGR.
It's very long, not optimized at all.
What should I do to fasten the computation?
def PointsInPolygons(self, pointsLayer, polysLayer): nbInside = 0 total = pointsLayer.GetFeatureCount() for i in range(total): pointFeat = pointsLayer.GetFeature(i) pointGeo = pointFeat.GetGeometryRef() for j in range(polysLayer.GetFeatureCount()): polyFeat = polysLayer.GetFeature(j) polyGeo = polyFeat.GetGeometryRef() if pointGeo.Within(polyGeo): nbInside+=1 break