Me pueden encontrar cerca de características en una capa con QgsSpatialIndex
: Encontrar la línea más cercana a un punto en QGIS? Usando este método, tenemos que alimentar en todas las funciones existentes y realizar una consulta con un punto para llegar de nuevo a la cercana características.
Sin embargo me pregunto ¿qué es indexado capa vectorial, la opción que se puede activar cuando se crea una nueva capa en memoria. Pensé que se llevaría a cabo la indexación de todas las características y daría un mejor rendimiento durante la consulta. Por lo tanto, debe haber una manera para emitir una cercanos consulta en la capa de sí mismo, sin explícitamente inicializar QgsSpatialIndex
, o de lo contrario ¿por qué debo activar la opción de índice?
Puedo encender índice en Layer Properties > General > Create spatial index
o será activado por defecto, si puedo crear un rasguño temporal de la capa. Me doy cuenta de que mejora la velocidad de procesamiento.
Ahora en mi PyQGIS script, ¿cómo puedo aprovechar el existente índice sin crear un QgsSpatialIndex
clase de consulta de entidades cercanas o haciendo cualquier vecino más cercano análisis?
spIndex = QgsSpatialIndex()
for pointFeatures in pointsLayer.getFeatures():
spIndex.insertFeature(pointFeat)
nearbyPointFeatureIds = spIndex.nearestNeighbor(testPoint, 3)
Mi preocupación es la razón por la que debo crear mi propio índice en la memoria de nuevo en las tres primeras líneas arriba. He perdido que puedo conseguir algo parecido a un QgsVectorLayer.spatialIndex.nearestNeighbor()
de la capa de sí mismo?