ich habe eine QML-Datei in ein QWidget geschrieben, das mir eine Karte anzeigt.
Code: Alles auswählen
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow){
ui->setupUi(this);
QQuickView *view = new QQuickView();
QWidget *container = QWidget::createWindowContainer(view, this);
view->setSource(QUrl("karte.qml")); // Fetch this url by right clicking on your resource file.
ui->verticalLayout->addWidget(container);
}
Code: Alles auswählen
//! [Imports]
import QtQuick 2.0
import QtPositioning 5.5
import QtLocation 5.6
//! [Imports]
Rectangle {
y: 0
x: 0
width: parent.width
height: parent.height
//! [Initialize Plugin]
Plugin {
id: myPlugin
name: "osm" // "mapboxgl", "esri", ...
}
//! [Initialize Plugin]
//! [Current Location]
PositionSource {
id: positionSource
property variant lastSearchPosition: locationSchubag
active: true
updateInterval: 120000 // 2 mins
onPositionChanged: {
var currentPosition = positionSource.position.coordinate
map.center = currentPosition
var distance = currentPosition.distanceTo(lastSearchPosition)
if (distance > 500) {
// 500m from last performed pizza search
lastSearchPosition = currentPosition
}
}
}
//! [Current Location]
//! [PlaceSearchModel]
property variant locationCenter: QtPositioning.coordinate( 47.582713, 8.948431)
PlaceSearchModel {
id: searchModel
plugin: myPlugin
searchTerm: "Pizza"
searchArea: QtPositioning.circle(locationCenter)
Component.onCompleted: update()
}
//! [PlaceSearchModel]
//! [Places MapItemView]
Map {
id: map
anchors.fill: parent
plugin: myPlugin;
center: locationCenter
zoomLevel: 12
MapItemView {
model: searchModel
delegate: MapQuickItem {
coordinate: place.location.coordinate
anchorPoint.x: image.width * 0.5
anchorPoint.y: image.height
sourceItem: Column {
Image { id: image; source: "marker.png" }
Text { text: title; font.bold: true }
}
}
}
}
//! [Places MapItemView]
Connections {
target: searchModel
onStatusChanged: {
if (searchModel.status == PlaceSearchModel.Error)
console.log(searchModel.errorString());
}
}
}
Die aktuellen Koordinaten in der QML sind ( 47.582713, 8.948431)
Geht das? Kann ich die property locationCenter verändern und die Kerte neu zentrieren?
Danke,
Thomas