In my application, I am using QtLocation
to display a map. Since there is only QML API to render the map, here is my QML file:
import QtQuick 2.0
import QtPositioning 5.5
import QtLocation 5.5
Item{
anchors.fill: parent
Plugin{
id: osmplugin
name: "osm"
}
Map {
anchors.fill: parent
id: map
plugin: osmplugin;
zoomLevel: (maximumZoomLevel - minimumZoomLevel)/2
center {
// The Qt Company in Oslo
latitude: 59.9485
longitude: 10.7686
}
}
function bbox(){
return map.visibleRegion;
}
}
In the C++ code, I need to know the currently visible region in the map widget, QML Map
has the property visibleRegion http://doc.qt.io/qt-5/qml-qtlocation-map.html#visibleRegion-prop
But I don't understand how to get it from C++ code, since QGeoShape
is abstract;
I tried this:
QQuickItem* map = mMap->rootObject();
QGeoRectangle rect;
bool ok = QMetaObject::invokeMethod( map, "bbox", Qt::DirectConnection, Q_RETURN_ARG( QGeoRectangle, rect ) );
if ( !ok )
qDebug() << " Shit happens!";
qDebug() << rect.isValid();
But it did not help. Please tell me how do I get visible rectangle from QML Map
.