GeoJsonData QML Type
Un modelo para representar, cargar y guardar documentos GeoJSON. Más...
| Import Statement: | import QtLocation 6.11 |
| Since: | QtLocation 6.7 |
- Lista de todos los miembros, incluyendo los heredados
- GeoJsonData es parte de QML Maps Plugin.
Propiedades
Métodos
- bool addItem(Item item)
- void clear()
- bool open()
- bool openUrl(Url url)
- bool save()
- bool saveAs(Url url)
- void setModelToMapContents(MapView mapItemView)
Descripción detallada
El tipo GeoJsonData lee y escribe documentos con formato GeoJson. GeoJsonData tiene funciones para abrir y guardar el modelo en la URL establecida en la propiedad sourceUrl. El modelo cargado se representa internamente mediante QVariant y se vincula a la propiedad model. Utilice delegados para visualizar los elementos en una vista.
Para obtener información sobre GeoJSON, visite el sitio web de GeoJSON.
Objeto GeoJSON
El objeto GeoJSON es un objeto JSON válido que representa una geometría, una característica o una colección de geometrías o características.
Un objeto GeoJSON debe ser uno de estos tipos:
PointMultiPointLineStringMultiLineStringPolygonMultiPolygonGeometryCollectionFeatureFeatureCollection
Para establecer el tipo, vincule el miembro type a un tipo GeoJSON. El miembro coordinates puede ser un tipo de QGeoShape o una lista, dependiendo del tipo GeoJSON. El tipo Feature tiene un miembro adicional geometry y properties.
Una lista de los tipos geométricos y sus representaciones equivalentes QVariant:
- Para un objeto
Point,coordinatesse empareja con QGeoCircle. Por ejemplo:{ "type": "Point", "coordinates": [11, 60] }Este objeto GeoJSON tiene una representación QVariantMap correspondiente:
{ type: "Point" coordinates: QGeoCircle({11.000, 60.000}, -1) } - Para un objeto
LineString,coordinatesse empareja con QGeoPath. Por ejemplo:{ "type" : "LineString", "coordinates" : [ [13.5, 43], [10.73, 59.92] ] }Este objeto GeoJSON tiene su correspondiente representación QVariantMap:
{ type : "LineString" data : QGeoPath([{43.000, 13.500}, {59.920, 10.730}]) } - Para un objeto
Polygon, el miembrocoordinatesse empareja con QGeoPolygon (son posibles los agujeros). El polígono es un anillo lineal, cuya coordenada final es la misma que la primera coordenada, abriendo y cerrando así el anillo. El miembrobboxes un miembro opcional y sirve para establecer el rango del área, útil para límites cóncavos. Para más información sobre las coordenadas de polígono aceptadas, lea sobre el tipo Polígono en la especificación GeoJson. Por ejemplo:{ "type": "Polygon", "coordinates": [ [ [17.13, 51.11], [30.54, 50.42], [26.70, 58.36], [17.13, 51.11] ] ], "bbox": [50, -50, 10, -10] }Este objeto GeoJSON tiene su correspondiente representación en QVariantMap:
{ type : "Polygon" coordinates : QGeoPolygon([{51.110, 17.130}, {50.420,30.540}, {58.360, 26.700}, {51.110, 17.130}]) }
Para los tipos MultiPoint, MultiLineString y MultiPolygon, coordinates se empareja con un QVariantList. El elemento de lista es un QVariantMap que contiene geometría.
- Para un objeto
MultiPoint,coordinatesse empareja con una lista de coordenadas Point. Por ejemplo:{ "type": "MultiPoint", "coordinates": [ [11, 60], [5.5, 60.3], [5.7, 58.90] ] }Este objeto GeoJSON tiene una representación QVariantMap correspondiente:
{ 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) } ] } - Para un objeto
MultiLineString,coordinatesse empareja con una lista de coordenadas LineString. El siguiente objeto GeoJSON construye dos líneas no paralelas:{ "type" : "MultiLineString", "coordinates" : [ [[13.5, 43], [10.73, 59.92]], [[9.15, 45], [-3.15, 58.90]] ] }Este objeto GeoJSON tiene su correspondiente representación QVariantMap:
{ 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}]) } ] } - Para un tipo
MultiPolygon,coordinatesse empareja con una lista de coordenadas de polígono. El polígono es un anillo lineal y el tipoPolygontiene más información sobre los formatos aceptados. El siguiente objeto GeoJSON contiene una lista de dos triángulos:{ "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] ]] ] }Este objeto GeoJSON tiene su correspondiente representación en QVariantMap:
{ 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}]) } ] }
El tipo GeometryCollection es una composición de otros tipos de geometría. El valor del miembro geometries es un QVariantList que contiene QVariantMaps de varios tipos, incluidos otros tipos GeometryCollection.
Por ejemplo, el siguiente tipo GeometryCollection contiene otras geometrías:
{
"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]
]
]
]
}
]
}Este objeto GeoJSON tiene su correspondiente representación QVariantMap:
{
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)
}
]
}
]
}El tipo Feature contiene un miembro adicional geometry y properties. La única forma de distinguir un objeto Feature de otros objetos geométricos es comprobar la existencia de un nodo properties en el objeto QVariantMap.
Por ejemplo, el siguiente Feature tiene una geometría y miembros de propiedades:
{
"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]
]
]
}
}Este objeto GeoJSON tiene una representación QVariantMap correspondiente:
{
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"}
}FeatureCollection es una composición de objetos Feature. El miembro features se vincula a un objeto QVariantList que contiene otros objetos Feature.
Por ejemplo, el siguiente FeatureCollection tiene varias características y geometrías:
{
"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]]
]
}
}
]
}Este objeto GeoJSON tiene su correspondiente representación en 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" }
}
]
}Ejemplo GeoJson
El ejemplo GeoJson Viewer demuestra el uso del tipo GeoJsonData QML para cargar y visualizar coordenadas en un mapa.
Documentación de propiedades
model : QVariant [since 6.7]
Una representación QVariant del documento GeoJSON. Los delegados QML pueden mostrar el contenido en vistas.
Esta propiedad se introdujo en Qt 6.7.
sourceUrl : url [since 6.7]
La URL de un documento GeoJSON. Al establecer esta propiedad se carga el documento y se vincula el objeto al miembro model.
Esta propiedad se introdujo en Qt 6.7.
Documentación del método
bool addItem(Item item)
Añade item al objeto model.
Devuelve true si la adición se realiza correctamente, false en caso contrario.
void clear()
Elimina todos los elementos vinculados a model.
bool open()
Carga el contenido del archivo en sourceUrl.
Devuelve true si la apertura se realiza correctamente, false en caso contrario.
bool openUrl(Url url)
Carga el documento GeoJson en url y lo vincula a model. La propiedad sourceUrl se establece en url si la apertura del archivo se realiza correctamente.
Devuelve true si la apertura se realiza correctamente, false en caso contrario.
bool save()
Guarda el modelo en sourceUrl.
Devuelve true si se ha guardado correctamente, false en caso contrario.
bool saveAs(Url url)
Guarda el model en url. La propiedad sourceUrl se establece en url si se ha guardado correctamente.
Devuelve true si se guarda correctamente, false en caso contrario.
void setModelToMapContents(MapView mapItemView)
Añade todos los elementos de mapa de mapItemView al model del objeto GeoJsonData. Elimina los elementos de mapa previamente almacenados en model.
Devuelve true si la configuración se realiza correctamente, false en caso contrario.
Véase también 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.