Estoy tratando de crear un mapa de un área pequeña. En este mapa tengo 2 botones, uno es para acercar y el otro para alejar. Creé 2 botones y 1 cargador, luego los conecté para que funcione. Mi código para botones y cargador:
Cargador.qml
Loader { id: mapLoader source: "map.qml" function reload () { source = "" source = "map.qml" console.log("Map Updated") } }Botones.qml
// This button zooms in 1 unit // get_Zoomlevel() works on C++; therefore, it isn'T affected from qml reloads. Button { ... onClicked: { map.setZoomLevel(map.get_ZoomLevel() + 1) mapLoader.reload() } ... }Después de todo, funciona como se esperaba, puedo acercar y alejar fácilmente. Sin embargo, dado que el cargador carga todos los componentes del mapa desde cero, se necesita un poco más de tiempo para una experiencia de usuario normal y fluida. Por lo tanto, estoy buscando una mejor forma de cargar o cualquier otro consejo. Gracias por adelantado.
He encontrado la respuesta y quiero compartirla para el futuro. Pensé que la propiedad zoomLevel de QML Map era solo para leer, pero noté que también puedo escribir; por lo tanto, cuando me di cuenta, simplemente se vuelve fácil.
Creé una variable,
property int zoomLv = 15 // default zoom levely cada vez que me acercaba o alejaba con los botones, simplemente editaba esta variable en lugar de volver a cargar el elemento del mapa completo.
onClicked: { zoomLv += 1 }