Actualmente estoy creando una aplicación de navegación utilizando Mapbox GL API para QML. Tengo un comportamiento deseado para agregar capas de Mapbox en la parte superior del mapa dinámicamente cuando el usuario lo desee. Las capas son archivos GeoJson.
Estoy usando QtLocation 5.15 y QtQuick 2.0 en mis archivos.
var sourceQml =" import QtQuick 2.0; \ import QtLocation 5.15; \ MapParameter { \ type: 'source'; \ property var name: '%1'; \ property var sourceType: '%2'; \ property var data: '%3'; \ }" var layerQml ="import QtQuick 2.0; \ import QtLocation 5.15; \ MapParameter { \ type: 'layer'; \ property var name: '%1'; \ property var layerType: '%2';\ property var source: '%3'; \ }" var paintingQml = "import QtQuick 2.0; \ import QtLocation 5.15; \ MapParameter { \ type: 'paint'; \ property var layer: '%1'; \ property var lineColor: '%2';\ property var lineWidth: %3; \ }" // Adding properties sourceQml = sourceQml.arg(sourceName).arg(sourceType).arg(data) layerQml = layerQml.arg(name).arg(layerType).arg(sourceName) paintingQml = paintingQml.arg(name).arg("blue").arg(4) var sourceObject = Qt.createQmlObject(sourceQml, map) var layerObject = Qt.createQmlObject(layerQml, map) var paintingObject = Qt.createQmlObject(paintingQml, map) map.addMapParameter(sourceObject) map.addMapParameter(layerObject) map.addMapParameter(paintingObject) Agregar MapParameters utilizando el método anterior funciona bien (por ejemplo, las capas aparecen en el mapa). SIN EMBARGO, me gustaría permitir que el usuario elimine estas capas (MapParameters). Cuando se desea la acción, llamo al siguiente método para borrar todos los MapParameters del mapa: map.clearMapParameters()
Las capas siguen siendo completamente visibles en el mapa. Para verificar, comparé manualmente la longitud de la lista en el objeto Map, ya que vi que los parámetros del mapa se almacenaron en una lista como una propiedad del objeto Map . Los parámetros se están borrando en la lista mapParameters.
¿Cómo es posible? Me encantaría tener una idea de por qué mis capas siguen apareciendo incluso si eliminé todos los MapParameters de la lista.