2017-12-19 5 views
0

Ich stehe auf dem Weg mapReady funktioniert in QML.QT/QML Wie funktioniert mapReady auf einer Karte?

Nach dem doc http://doc.qt.io/qt-5/qml-qtlocation-map.html#mapReady-prop, ist es ratsam, das Signal für diese Eigenschaft anstelle von Component.onCompleted emittiert zu verwenden

Aus diesem einfachen main.qml Code

import QtQuick 2.0 
import QtQuick.Window 2.0 
import QtLocation 5.6 
import QtPositioning 5.6 

Window { 
    width: 512 
    height: 512 
    visible: true 

    Item{ 
     anchors.fill: parent 
     objectName: "bboxObj" 

     Map { 
      anchors.fill: parent 
      id: map 
      plugin: Plugin{name: "osm"} 
      zoomLevel: (maximumZoomLevel - minimumZoomLevel)/2 
      center: QtPositioning.coordinate(59.91, 10.75) // Oslo 
     } 

     Component.onCompleted:{ 
      console.log("mapReady : " + map.mapReady) 
      console.log("visibleRegion : " + map.visibleRegion.boundingGeoRectangle()) 
     } 

    } 

} 

Die Ergebnisse ist:

qml: mapReady : false 
qml: visibleRegion : QGeoRectangle({nan, nan}, {nan, nan}) 

Wie diese onMapReady verwenden visibleRegion aufrufen, nachdem die Karte fertig ist?

ich dies versucht haben, ohne Erfolg:

Map.onMapReadyChanged: { 
    console.log("mapReady : " + map.mapReady) 
    console.log("visibleRegion : " + map.visibleRegion.boundingGeoRectangle()) 
    console.log("visibleRegion.isValid : " + map.visibleRegion.isValid) 
    console.log("visibleRegion.isEmpty : " + map.visibleRegion.isEmpty) 
} 

Antwort

0

Sie verwenden Map.onMapReadyChanged nicht, sondern nur innerhalb der Karte Element

+0

Dank Paul onMapReadyChanged, es ist jetzt wirklich besser! – kontiki

Verwandte Themen