: Yapmak çalışıyorum ne döngü bir nokta shape içinden ve düşen her noktayı seçmek içine bir poligon.
Aşağıdaki kod, bir kitapta bulduğum bir uzamsal sorgu örneğinden esinlenmiştir:
mitte_path = r"D:\PythonTesting\SelectByLocation\mitte.shp"
punkte_path = r"D:\PythonTesting\SelectByLocation\punkte.shp"
polygon = QgsVectorLayer(mitte_path, 'Mitte', 'ogr')
points = QgsVectorLayer(punkte_path, 'Berlin Punkte', 'ogr')
QgsMapLayerRegistry.instance().addMapLayer(polygon)
QgsMapLayerRegistry.instance().addMapLayer(points)
polyFeatures = polygon.getFeatures()
pointsCount = 0
for poly_feat in polyFeatures:
polyGeom = poly_feat.geometry()
pointFeatures = points.getFeatures(QgsFeatureRequest().setFilterRect(polyGeom.boundingBox()))
for point_feat in pointFeatures:
points.select(point_feat.id())
pointsCount += 1
print 'Total:',pointsCount
Bu çalışır ve veri kümeleri seçer, ancak sorun sınırlayıcı kutu ile seçer , bu yüzden Açıkçası ilgilenmiyorum noktaları döndürerek:
Qgis: selectbylocation kullanmadan yalnızca çokgen içindeki noktaları döndürmeye nasıl gidebilirim ?
İçinde () ve intersects () yöntemlerini kullanarak denedim , ama onları işe almak değildi, ben yukarıdaki koda başvurdu. Ama belki de anahtar onlar.