Red de conocimientos turísticos - Conocimientos sobre calendario chino - Crear un proveedor de datos personalizado para QGis

Crear un proveedor de datos personalizado para QGis

Para implementar las funciones básicas de DataProvider, necesita heredar 4 clases principales:

createProvider() se utiliza para crear una instancia de proveedor de datos. Cuando implementa esta función, puede crear un objeto de programa de proveedor de datos personalizado. y devolverlo

decodeUri() se utiliza para analizar la cadena uri y devolver los datos analizados en una estructura de mapa. QGis proporciona la clase QgsDataSourceUri y, en algunos casos, puede usar la clase QgsDataSourceUri directamente para analizar y generar cadenas de uri sin analizar la cadena usted mismo. Consulte la uri de postgresprovider: dbname='sdetest' host=127.0.0.1 port=5432 user='sde' contraseña='123' table="sde"." testlayer" (forma). Si no utiliza la clase QgsDataSourceUri, también puede personalizar el formato de cadena y analizarlo usted mismo.

Del mismo modo, la implementación de encodeUri puede generar cadenas de uri con la ayuda de la clase QgsDataSourceUri.

QgsTestProvider sobrecarga la función virtual pura de QgsVectorDataProvider:

Sobrecarga la función virtual pura de QgsDataProvider:

featureSource() devuelve un objeto QgsTestFeatureSource personalizado, QgsTestFeatureSource Heredado de QgsAbstractFeatureSource

getFeatures() devuelve un iterador para atravesar funciones, lo que también requiere la creación de una nueva clase QgsTestFeatureIterator, que hereda de QgsAbstractFeatureIteratorFromSourcelt; QgsTestFeatureSourcegt;

wkbType() devuelve el tipo de función, que es la enumeración de tipo en QgsWkbTypes:. h. Si define una variable privada en su proveedor personalizado para contener el tipo, puede devolver el valor de esa variable.

Devuelve el número de elementos.

campos() devuelve campos de atributos. QGis proporciona una clase QgsFields para almacenar campos de atributos. Puede definir un objeto de esta clase como una variable miembro en el proveedor, y luego campos () devolverá directamente el objeto.

QgsFields proporciona una función de adición para agregar campos de atributos. Los datos específicos los proporciona el. Guardar objeto QgsField.

crs() devuelve el sistema de referencia de coordenadas

extend() devuelve la extensión de la capa y devuelve los datos leídos como un objeto QgsRectangle, donde los datos se almacenan en la variable miembro mExtensión.

isValid() devuelve si la capa es válida.

Simplemente devuelva la variable miembro personalizada

nombre() devuelve la palabra clave del proveedor

descripción() devuelve la descripción del proveedor

getFeatures() devuelve QgsFeatureIterator objeto, al que se puede acceder a través del constructor QgsFeatureIterator (QgsAbstractFeatureIterator *iter SIP_TRANSFER) para crear un iterador válido, y los parámetros reales del constructor se pasan como un FeatureIterator personalizado.

rewind() restablece el iterador al valor inicial. En QgsTestFeatureIterator, define la variable miembro mIterator para recorrer las características: QgsFeaturegt;:. es miembro de la clase principal QgsAbstractFeatureIterator, que debe establecerse en verdadero cuando se cierra el iterador.

close() se utiliza para cerrar el iterador y se puede llamar directamente en la función. IteratorClosed() de QgsAbstractFeatureIteratorFromSource

Consulte QgsAbstractFeatureIteratorFromSource::iteratorClosed() también es una llamada directa a la función iteratorClosed() de QgsAbstractFeatureSource

fetchFeature() obtiene la siguiente característica, y la implementación interna también se itera a través de mIterator, y las características obtenidas se asignarán a la característica de parámetro formal.

type="text/javascript" src="../css/tongji.js">