mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-31 00:06:02 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			433 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			433 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/qgsjsonutils.h                                              *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| class QgsJsonExporter
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| Handles exporting :py:class:`QgsFeature` features to GeoJSON features.
 | |
| 
 | |
| Note that geometries will be automatically reprojected to WGS84 to match
 | |
| GeoJSON spec if either the source vector layer or source CRS is set.
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgsjsonutils.h"
 | |
| %End
 | |
|   public:
 | |
| 
 | |
|     QgsJsonExporter( QgsVectorLayer *vectorLayer = 0, int precision = 6 );
 | |
| %Docstring
 | |
| Constructor for QgsJsonExporter.
 | |
| 
 | |
| :param vectorLayer: associated vector layer (required for related
 | |
|                     attribute export)
 | |
| :param precision: maximum number of decimal places to use for geometry
 | |
|                   coordinates, the RFC 7946 GeoJSON specification
 | |
|                   recommends limiting coordinate precision to 6
 | |
| %End
 | |
| 
 | |
|     void setPrecision( int precision );
 | |
| %Docstring
 | |
| Sets the maximum number of decimal places to use in geometry
 | |
| coordinates. The RFC 7946 GeoJSON specification recommends limiting
 | |
| coordinate precision to 6
 | |
| 
 | |
| :param precision: number of decimal places
 | |
| 
 | |
| .. seealso:: :py:func:`precision`
 | |
| %End
 | |
| 
 | |
|     int precision() const;
 | |
| %Docstring
 | |
| Returns the maximum number of decimal places to use in geometry
 | |
| coordinates.
 | |
| 
 | |
| .. seealso:: :py:func:`setPrecision`
 | |
| %End
 | |
| 
 | |
|     void setIncludeGeometry( bool includeGeometry );
 | |
| %Docstring
 | |
| Sets whether to include geometry in the JSON exports.
 | |
| 
 | |
| :param includeGeometry: set to ``False`` to prevent geometry inclusion
 | |
| 
 | |
| .. seealso:: :py:func:`includeGeometry`
 | |
| %End
 | |
| 
 | |
|     bool includeGeometry() const;
 | |
| %Docstring
 | |
| Returns whether geometry will be included in the JSON exports.
 | |
| 
 | |
| .. seealso:: :py:func:`setIncludeGeometry`
 | |
| %End
 | |
| 
 | |
|     void setIncludeAttributes( bool includeAttributes );
 | |
| %Docstring
 | |
| Sets whether to include attributes in the JSON exports.
 | |
| 
 | |
| :param includeAttributes: set to ``False`` to prevent attribute
 | |
|                           inclusion
 | |
| 
 | |
| .. seealso:: :py:func:`includeAttributes`
 | |
| %End
 | |
| 
 | |
|     bool includeAttributes() const;
 | |
| %Docstring
 | |
| Returns whether attributes will be included in the JSON exports.
 | |
| 
 | |
| .. seealso:: :py:func:`setIncludeAttributes`
 | |
| %End
 | |
| 
 | |
|     void setIncludeRelated( bool includeRelated );
 | |
| %Docstring
 | |
| Sets whether to include attributes of features linked via references in
 | |
| the JSON exports.
 | |
| 
 | |
| :param includeRelated: set to ``True`` to include attributes for any
 | |
|                        related child features within the exported
 | |
|                        properties element.
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    associated vector layer must be set with :py:func:`~QgsJsonExporter.setVectorLayer`
 | |
| 
 | |
| .. seealso:: :py:func:`includeRelated`
 | |
| %End
 | |
| 
 | |
|     bool includeRelated() const;
 | |
| %Docstring
 | |
| Returns whether attributes of related (child) features will be included
 | |
| in the JSON exports.
 | |
| 
 | |
| .. seealso:: :py:func:`setIncludeRelated`
 | |
| %End
 | |
| 
 | |
|     void setAttributeDisplayName( bool displayName );
 | |
| %Docstring
 | |
| Sets whether to print original names of attributes or aliases if
 | |
| defined.
 | |
| 
 | |
| .. versionadded:: 3.6
 | |
| %End
 | |
| 
 | |
| 
 | |
|     bool attributeDisplayName() const;
 | |
| %Docstring
 | |
| Returns whether original names of attributes or aliases are printed.
 | |
| 
 | |
| .. versionadded:: 3.6
 | |
| %End
 | |
| 
 | |
|     void setVectorLayer( QgsVectorLayer *vectorLayer );
 | |
| %Docstring
 | |
| Sets the associated vector layer (required for related attribute
 | |
| export). This will automatically update the
 | |
| :py:func:`~QgsJsonExporter.sourceCrs` to match.
 | |
| 
 | |
| :param vectorLayer: vector layer
 | |
| 
 | |
| .. seealso:: :py:func:`vectorLayer`
 | |
| %End
 | |
| 
 | |
|     QgsVectorLayer *vectorLayer() const;
 | |
| %Docstring
 | |
| Returns the associated vector layer, if set.
 | |
| 
 | |
| .. seealso:: :py:func:`setVectorLayer`
 | |
| %End
 | |
| 
 | |
|     void setSourceCrs( const QgsCoordinateReferenceSystem &crs );
 | |
| %Docstring
 | |
| Sets the source CRS for feature geometries. The source CRS must be set
 | |
| if geometries are to be correctly automatically reprojected to WGS 84,
 | |
| to match GeoJSON specifications.
 | |
| 
 | |
| :param crs: source CRS for input feature geometries
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    the source CRS will be overwritten when a vector layer is specified via :py:func:`~QgsJsonExporter.setVectorLayer`
 | |
| 
 | |
| .. seealso:: :py:func:`sourceCrs`
 | |
| %End
 | |
| 
 | |
|     QgsCoordinateReferenceSystem sourceCrs() const;
 | |
| %Docstring
 | |
| Returns the source CRS for feature geometries. The source CRS must be
 | |
| set if geometries are to be correctly automatically reprojected to WGS
 | |
| 84, to match GeoJSON specifications.
 | |
| 
 | |
| .. seealso:: :py:func:`setSourceCrs`
 | |
| %End
 | |
| 
 | |
|     void setTransformGeometries( bool activate );
 | |
| %Docstring
 | |
| Sets whether geometries should be transformed in EPSG 4326 (default
 | |
| behavior) or just keep as it is.
 | |
| 
 | |
| .. versionadded:: 3.12
 | |
| %End
 | |
| 
 | |
|     void setAttributes( const QgsAttributeList &attributes );
 | |
| %Docstring
 | |
| Sets the list of attributes to include in the JSON exports.
 | |
| 
 | |
| :param attributes: list of attribute indexes, or an empty list to
 | |
|                    include all attributes
 | |
| 
 | |
| .. seealso:: :py:func:`attributes`
 | |
| 
 | |
| .. seealso:: :py:func:`setExcludedAttributes`
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    Attributes excluded via :py:func:`~QgsJsonExporter.setExcludedAttributes` take precedence over
 | |
|    attributes specified by this method.
 | |
| %End
 | |
| 
 | |
|     QgsAttributeList attributes() const;
 | |
| %Docstring
 | |
| Returns the list of attributes which will be included in the JSON
 | |
| exports, or an empty list if all attributes will be included.
 | |
| 
 | |
| .. seealso:: :py:func:`setAttributes`
 | |
| 
 | |
| .. seealso:: :py:func:`excludedAttributes`
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    Attributes excluded via :py:func:`~QgsJsonExporter.excludedAttributes` take precedence over
 | |
|    attributes returned by this method.
 | |
| %End
 | |
| 
 | |
|     void setExcludedAttributes( const QgsAttributeList &attributes );
 | |
| %Docstring
 | |
| Sets a list of attributes to specifically exclude from the JSON exports.
 | |
| Excluded attributes take precedence over attributes included via
 | |
| :py:func:`~QgsJsonExporter.setAttributes`.
 | |
| 
 | |
| :param attributes: list of attribute indexes to exclude
 | |
| 
 | |
| .. seealso:: :py:func:`excludedAttributes`
 | |
| 
 | |
| .. seealso:: :py:func:`setAttributes`
 | |
| %End
 | |
| 
 | |
|     QgsAttributeList excludedAttributes() const;
 | |
| %Docstring
 | |
| Returns a list of attributes which will be specifically excluded from
 | |
| the JSON exports. Excluded attributes take precedence over attributes
 | |
| included via :py:func:`~QgsJsonExporter.attributes`.
 | |
| 
 | |
| .. seealso:: :py:func:`setExcludedAttributes`
 | |
| 
 | |
| .. seealso:: :py:func:`attributes`
 | |
| %End
 | |
| 
 | |
|     void setUseFieldFormatters( bool useFieldFormatters );
 | |
| %Docstring
 | |
| Sets whether field formatters (of type KeyValue, List, ValueRelation,
 | |
| ValueMap) are used to export raw values as displayed values. The default
 | |
| is true.
 | |
| 
 | |
| .. versionadded:: 3.40
 | |
| %End
 | |
| 
 | |
|     bool useFieldFormatters() const;
 | |
| %Docstring
 | |
| Returned whether field formatters (of type KeyValue, List,
 | |
| ValueRelation, ValueMap) are used to export raw values as displayed
 | |
| values.
 | |
| 
 | |
| .. versionadded:: 3.40
 | |
| %End
 | |
| 
 | |
|     QString exportFeature( const QgsFeature &feature,
 | |
|                            const QVariantMap &extraProperties = QVariantMap(),
 | |
|                            const QVariant &id = QVariant(),
 | |
|                            int indent = -1 ) const;
 | |
| %Docstring
 | |
| Returns a GeoJSON string representation of a feature.
 | |
| 
 | |
| :param feature: feature to convert
 | |
| :param extraProperties: map of extra attributes to include in feature's
 | |
|                         properties
 | |
| :param id: optional ID to use as GeoJSON feature's ID instead of input
 | |
|            feature's ID. If omitted, feature's ID is used.
 | |
| :param indent: number of indentation spaces for generated JSON (defaults
 | |
|                to none)
 | |
| 
 | |
| :return: GeoJSON string
 | |
| 
 | |
| .. seealso:: :py:func:`exportFeatures`
 | |
| 
 | |
| .. seealso:: :py:func:`exportFeatureToJsonObject`
 | |
| %End
 | |
| 
 | |
| 
 | |
| 
 | |
|     QString exportFeatures( const QgsFeatureList &features, int indent = -1 ) const;
 | |
| %Docstring
 | |
| Returns a GeoJSON string representation of a list of features (feature
 | |
| collection).
 | |
| 
 | |
| :param features: features to convert
 | |
| :param indent: number of indentation spaces for generated JSON (defaults
 | |
|                to none)
 | |
| 
 | |
| :return: GeoJSON string
 | |
| 
 | |
| .. seealso:: :py:func:`exportFeature`
 | |
| %End
 | |
| 
 | |
| 
 | |
|     void setDestinationCrs( const QgsCoordinateReferenceSystem &destinationCrs );
 | |
| %Docstring
 | |
| Set the destination CRS for feature geometry transformation to
 | |
| ``destinationCrs``, this defaults to EPSG:4326 and it is only effective
 | |
| when the automatic geometry transformation is active (it is by default).
 | |
| 
 | |
| .. seealso:: :py:func:`setTransformGeometries`
 | |
| 
 | |
| .. seealso:: :py:func:`setSourceCrs`
 | |
| 
 | |
| .. versionadded:: 3.30
 | |
| %End
 | |
| 
 | |
| };
 | |
| 
 | |
| 
 | |
| class QgsJsonUtils
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| Helper utilities for working with JSON and GeoJSON conversions.
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgsjsonutils.h"
 | |
| %End
 | |
|   public:
 | |
|     static const QMetaObject staticMetaObject;
 | |
| 
 | |
|   public:
 | |
| 
 | |
|     static QgsFeatureList stringToFeatureList( const QString &string, const QgsFields &fields = QgsFields() );
 | |
| %Docstring
 | |
| Attempts to parse a GeoJSON ``string`` to a collection of features. It
 | |
| is possible to specify ``fields`` to parse specific fields, if not
 | |
| provided, no fields will be included. An ``encoding`` can be specified
 | |
| which defaults to UTF-8 if it is `None`.
 | |
| 
 | |
| :return: a list of parsed features, or an empty list if no features
 | |
|          could be parsed
 | |
| 
 | |
| .. seealso:: :py:func:`stringToFields`
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    this function is a wrapper around :py:func:`QgsOgrUtils.stringToFeatureList()`
 | |
| %End
 | |
| 
 | |
|     static QgsFields stringToFields( const QString &string );
 | |
| %Docstring
 | |
| Attempts to retrieve the fields from a GeoJSON ``string`` representing a
 | |
| collection of features. An ``encoding`` can be specified which defaults
 | |
| to UTF-8 if it is `None`.
 | |
| 
 | |
| :return: retrieved fields collection, or an empty list if no fields
 | |
|          could be determined from the string
 | |
| 
 | |
| .. seealso:: :py:func:`stringToFeatureList`
 | |
| 
 | |
| .. note::
 | |
| 
 | |
|    this function is a wrapper around :py:func:`QgsOgrUtils.stringToFields()`
 | |
| %End
 | |
| 
 | |
|     static QString encodeValue( const QVariant &value );
 | |
| %Docstring
 | |
| Encodes a value to a JSON string representation, adding appropriate
 | |
| quotations and escaping where required.
 | |
| 
 | |
| :param value: value to encode
 | |
| 
 | |
| :return: encoded value
 | |
| %End
 | |
| 
 | |
|     static QString exportAttributes( const QgsFeature &feature, QgsVectorLayer *layer = 0,
 | |
|                                      const QVector<QVariant> &attributeWidgetCaches = QVector<QVariant>() );
 | |
| %Docstring
 | |
| Exports all attributes from a :py:class:`QgsFeature` as a JSON map type.
 | |
| 
 | |
| :param feature: feature to export
 | |
| :param layer: optional associated vector layer. If specified, this
 | |
|               allows richer export utilising settings like the layer's
 | |
|               fields widget configuration.
 | |
| :param attributeWidgetCaches: optional widget configuration cache. Can
 | |
|                               be used to speed up exporting the
 | |
|                               attributes for multiple features from the
 | |
|                               same layer.
 | |
| %End
 | |
| 
 | |
| 
 | |
|     static QVariantList parseArray( const QString &json, QMetaType::Type type = QMetaType::Type::UnknownType );
 | |
| %Docstring
 | |
| Parse a simple array (depth=1)
 | |
| 
 | |
| :param json: the JSON to parse
 | |
| :param type: optional variant type of the elements, if specified (and
 | |
|              not Invalid), the array items will be converted to the
 | |
|              type, and discarded if the conversion is not possible.
 | |
| %End
 | |
| 
 | |
|  static QVariantList parseArray( const QString &json, QVariant::Type type ) /Deprecated="Since 3.38. Use the method with a QMetaType.Type argument instead."/;
 | |
| %Docstring
 | |
| Parse a simple array (depth=1)
 | |
| 
 | |
| :param json: the JSON to parse
 | |
| :param type: optional variant type of the elements, if specified (and
 | |
|              not Invalid), the array items will be converted to the
 | |
|              type, and discarded if the conversion is not possible.
 | |
| 
 | |
| .. deprecated:: 3.38
 | |
| 
 | |
|    Use the method with a QMetaType.Type argument instead.
 | |
| %End
 | |
| 
 | |
| 
 | |
|     static QgsGeometry geometryFromGeoJson( const QString &geometry );
 | |
| %Docstring
 | |
| Parses a GeoJSON "geometry" value to a :py:class:`QgsGeometry` object.
 | |
| 
 | |
| Returns a null geometry if the geometry could not be parsed.
 | |
| 
 | |
| .. versionadded:: 3.36
 | |
| %End
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| };
 | |
| 
 | |
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/qgsjsonutils.h                                              *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 |