GeoJsonData QML Type
Un modèle permettant de représenter, de charger et d'enregistrer des documents GeoJSON. En savoir plus...
| Import Statement: | import QtLocation 6.12 |
| Since: | QtLocation 6.7 |
- Liste de tous les membres, y compris les membres hérités
- GeoJsonData fait partie du plugin QML Maps.
Propriétés
Méthodes
- bool addItem(Item item)
- void clear()
- bool open()
- bool openUrl(Url url)
- bool save()
- bool saveAs(Url url)
- void setModelToMapContents(MapView mapItemView)
Description détaillée
Le type GeoJsonData lit et écrit des documents au format GeoJson. GeoJsonData dispose de fonctions permettant d'ouvrir et d'enregistrer le modèle à l'URL définie dans la propriété sourceUrl. Le modèle chargé est représenté en interne par QVariant et est lié à la propriété model. Utilisez des délégués pour visualiser les éléments dans une vue.
Pour plus d’informations sur GeoJSON, consultez le site web de GeoJSON.
Objet GeoJSON
L’objet GeoJSON est un objet JSON valide qui représente une géométrie, un élément ou une collection de géométries ou d’éléments.
Un objet GeoJSON doit être de l’un des types suivants :
PointMultiPointLineStringMultiLineStringPolygonMultiPolygonGeometryCollectionFeatureFeatureCollection
Pour définir le type, liez le membre ` type ` à un type GeoJSON. Le membre ` coordinates ` peut être un type de ` QGeoShape ` ou une liste, selon le type GeoJSON. Le type ` Feature ` dispose de membres supplémentaires : ` geometry ` et ` properties `.
Liste des types géométriques et de leurs représentations équivalentes au format « QVariant » :
- Pour un objet «
Point», les paires «coordinates» correspondent à « QGeoCircle ». Par exemple :{ "type": "Point", "coordinates": [11, 60] }Cet objet GeoJSON possède une représentation QVariantMap correspondante :
{ type: "Point" coordinates: QGeoCircle({11.000, 60.000}, -1) } - Pour un objet
LineString,coordinatescorrespond à QGeoPath. Par exemple :{ "type" : "LineString", "coordinates" : [ [13.5, 43], [10.73, 59.92] ] }Cet objet GeoJSON possède une représentation QVariantMap correspondante :
{ type : "LineString" data : QGeoPath([{43.000, 13.500}, {59.920, 10.730}]) } - Pour un objet
Polygon, le membrecoordinatesest associé à QGeoPolygon (des trous sont possibles). Le polygone forme un anneau linéaire, dont la dernière coordonnée est identique à la première, ce qui permet d'ouvrir et de fermer l’anneau. Le membrebboxest facultatif et sert à définir l’étendue de la zone, ce qui est utile pour les limites concaves. Pour plus d’informations sur les coordonnées de polygone acceptées, consultez la section consacrée au type « Polygon » dans la spécification GeoJSON. Par exemple :{ "type": "Polygon", "coordinates": [ [ [17.13, 51.11], [30.54, 50.42], [26.70, 58.36], [17.13, 51.11] ] ], "bbox": [50, -50, 10, -10] }Cet objet GeoJSON possède une représentation correspondante au format « QVariantMap » :
{ type : "Polygon" coordinates : QGeoPolygon([{51.110, 17.130}, {50.420,30.540}, {58.360, 26.700}, {51.110, 17.130}]) }
Pour les types « MultiPoint », « MultiLineString » et « MultiPolygon », une paire « coordinates » est associée à une « QVariantList ». L’élément de la liste est un « QVariantMap » contenant une géométrie.
- Pour un objet de type «
MultiPoint»,coordinatess’associe à une liste de coordonnées de type Point. Par exemple :{ "type": "MultiPoint", "coordinates": [ [11, 60], [5.5, 60.3], [5.7, 58.90] ] }Cet objet GeoJSON possède une représentation correspondante de type « QVariantMap » :
{ type : "MultiPoint" coordinates : [ { type : "Point" coordinates : QGeoCircle({60.000, 11.000}, -1) }, { type : "Point" coordinates : QGeoCircle({60.300, 5.500}, -1) }, { type : "Point" coordinates : QGeoCircle({58.900, 5.700}, -1) } ] } - Pour un objet «
MultiLineString», les paires «coordinates» sont associées à une liste de coordonnées de type « LineString ». L'objet GeoJSON suivant construit deux lignes non parallèles :{ "type" : "MultiLineString", "coordinates" : [ [[13.5, 43], [10.73, 59.92]], [[9.15, 45], [-3.15, 58.90]] ] }Cet objet GeoJSON possède une représentation QVariantMap correspondante :
{ type : "MultiLineString" coordinates : [ { type : "LineString" coordinates : QGeoPath([{45.000, 9.150}, {58.900, -3.150}]) }, { type : "LineString" coordinates : QGeoPath([{43.000, 13.500}, {59.920, 10.730}]) } ] } - Pour un type «
MultiPolygon», les paires «coordinates» sont associées à une liste de coordonnées de type « Polygon ». Le polygone est un anneau linéaire; le type «Polygon» fournit davantage d’informations sur les formats acceptés. L’objet GeoJSON suivant contient une liste de deux triangles :{ "type" : "MultiPolygon", "coordinates" : [ [ [[17.13, 51.11], [30.54, 50.42], [26.74, 58.36], [17.13, 51.11] ]], [ [[19.84, 41.33], [30.45, 49.26], [17.07, 50.10], [19.84, 41.33] ]] ] }Cet objet GeoJSON possède une représentation « QVariantMap » correspondante :
{ type : "MultiPolygon" coordinates : [ { type : "Polygon" coordinates : QGeoPolygon([{51.110, 17.130}, {50.420,30.540}, {58.360, 26.740}]) }, { type : "Polygon" coordinates : QGeoPolygon([{41.330, 19.840}, {49.260,30.450}, {50.100, 17.070}]) } ] }
Le type ` GeometryCollection ` est une composition d’autres types de géométrie. La valeur du membre ` geometries ` est une ` QVariantList ` contenant des `QVariantMaps` de divers types, y compris d’autres types de `GeometryCollection`.
Par exemple, le type ` GeometryCollection ` suivant contient plusieurs autres géométries :
{
"type" : "GeometryCollection",
"geometries" : [
{
"type" : "MultiPoint",
"coordinates" : [
[11,60], [5.5,60.3], [5.7,58.90]
]
},
{
"type" : "MultiLineString",
"coordinates": [
[[13.5, 43], [10.73, 59.92]],
[[9.15, 45], [-3.15, 58.90]]
]
},
{
"type" : "MultiPolygon",
"coordinates" : [
[
[
[17.13, 51.11],
[30.54, 50.42],
[26.74, 58.36],
[17.13, 51.11]
]
],
[
[
[19.84, 41.33],
[30.45, 49.26],
[17.07, 50.10],
[19.84, 41.33]
]
]
]
}
]
}Cet objet GeoJSON possède une représentation QVariantMap correspondante :
{
type : "GeometryCollection"
coordinates : [
{
type : "MultiPolygon"
coordinates : [
{
type : "Polygon"
coordinates : QGeoPolygon([{41.330, 19.840}, {49.260, 30.450}, {50.100, 17.070}])
},
{
type : "Polygon"
coordinates : QGeoPolygon([{51.110, 17.130}, {50.420, 30.540}, {58.360, 26.740}])
}
]
}
{
type : "MultiLineString"
coordinates : [
{
type : "LineString"
coordinates : QGeoPath([{45.000, 9.150}, {58.900, -3.150}])
},
{
type : "LineString"
coordinates : QGeoPath([{43.000, 13.500}, {59.920, 10.730}])
}
]
}
{
type : "MultiPoint"
coordinates : [
{
type : Point
coordinates : QGeoCircle({58.900, 5.700}, -1)
},
{
type : Point
coordinates : QGeoCircle({60.300, 5.500}, -1)
},
{
type : Point
coordinates : QGeoCircle({60.000, 11.000}, -1)
}
]
}
]
}Le type « Feature » contient des membres supplémentaires « geometry » et « properties ». La seule façon de distinguer un objet « Feature » des autres objets géométriques est de vérifier l’existence d’un nœud « properties » dans l’objet « QVariantMap ».
Par exemple, l’ Feature suivant comporte des membres « geometry » et « properties » :
{
"type": "Feature",
"id": "Poly",
"properties": {
"name": "Poly",
"text": "This is a Feature with a Polygon",
"color": "limegreen"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[17.13, 51.11],
[30.54, 50.42],
[26.70, 58.36],
[17.13, 51.11]
],
[
[23.46, 54.36],
[20.52, 51.91],
[28.25, 51.50],
[26.80, 54.36],
[23.46, 54.36]
]
]
}
}Cet objet GeoJSON possède une représentation « QVariantMap » correspondante :
{
type : "Polygon"
data : QGeoPolygon([{51.110, 17.130}, {50.420,30.540}, {58.360, 26.700}, {51.110, 17.130}])
properties : {text : "This is a Feature with a Polygon"}
}L’ FeatureCollection est une composition d’objets Feature. Le membre features est lié à un objet QVariantList contenant d’autres objets Feature.
Par exemple, l’ FeatureCollection suivante comporte plusieurs Features et géométries :
{
"type" : "FeatureCollection",
"properties" : {
"color" : "crimson"
},
"features" : [
{
"type" : "Feature",
"id" : "Poly",
"properties" : {
"text" : "This is a Feature with a Polygon"
},
"geometry" : {
"type" : "Polygon",
"coordinates" : [
[
[17.13, 51.11],
[30.54, 50.42],
[26.70, 58.36],
[17.13, 51.11]
],
[
[23.46, 54.36],
[20.52, 51.91],
[28.25, 51.50],
[26.80, 54.36],
[23.46, 54.36]
]
]
}
},
{
"type" : "Feature",
"id" : "MultiLine",
"properties" : {
"text" : "This is a Feature with a MultiLineString",
"color" : "deepskyblue"
},
"geometry" : {
"type" : "MultiLineString",
"coordinates" : [
[[13.5, 43], [10.73, 59.92]],
[[9.15, 45], [-3.15, 58.90]]
]
}
}
]
}Cet objet GeoJSON dispose d'une représentation correspondante au format « QVariantMap » :
{
type: "FeatureCollection"
data: [{
type: "MultiLineString"
data: [{
type: "LineString"
data: QGeoPath( [{45.000, 9.150}, {58.900, -3.150}] )
} {
type: "LineString"
data: QGeoPath( [{43.000, 13.500}, {59.920, 10.730}] )
}]
properties: { text: "This is a Feature with a MultiLineString" }
},
{
type: "Polygon"
data: QGeoPolygon( {51.110, 17.130},
{50.420, 30.540},
{58.360, 26.700},
{51.110, 17.130}
)
properties: { text: "This is a Feature with a Polygon" }
}
]
}Exemple GeoJSON
L'exemple « GeoJson Viewer » illustre l'utilisation du type QML GeoJsonData pour charger et visualiser des coordonnées sur une carte.
Documentation des propriétés
model : QVariant [since 6.7]
Une représentation « QVariant » du document GeoJSON. Les délégués QML peuvent afficher le contenu dans des vues.
Cette propriété a été introduite dans Qt 6.7.
sourceUrl : url [since 6.7]
L'URL d'un document GeoJSON. La définition de cette propriété charge le document et lie l'objet au membre ` model `.
Cette propriété a été introduite dans Qt 6.7.
Documentation des méthodes
bool addItem(Item item)
Ajoute l'item à l'objet model.
Renvoie true si l'ajout a réussi, false dans le cas contraire.
void clear()
Supprime tous les éléments associés à l'model.
bool open()
Charge le contenu du fichier disponible à l'adresse sourceUrl.
Renvoie true si l'ouverture a réussi, false dans le cas contraire.
bool openUrl(Url url)
Charge le document GeoJson disponible à l'adresse url et l'associe à l'model. La propriété sourceUrl prend la valeur url si l'ouverture du fichier réussit.
Renvoie true si l'ouverture réussit, false dans le cas contraire.
bool save()
Enregistre le modèle à l'adresse sourceUrl.
Renvoie true si l'enregistrement a réussi, false dans le cas contraire.
bool saveAs(Url url)
Enregistre le fichier « model » à l'adresse url. La propriété « sourceUrl » prend la valeur « url » en cas de réussite.
Renvoie true si l'enregistrement a réussi, false dans le cas contraire.
void setModelToMapContents(MapView mapItemView)
Ajoute tous les éléments de la carte de mapItemView à la liste model de l'objet GeoJsonData. Supprime les éléments de la carte précédemment enregistrés de la liste model.
Renvoie true si la configuration a réussi, false dans le cas contraire.
Voir également addItem.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.