mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-23 00:02:38 -05:00
408 lines
12 KiB
Plaintext
408 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(), QTextCodec *encoding = 0 );
|
|
%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, QTextCodec *encoding = 0 );
|
|
%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 *
|
|
************************************************************************/
|