How to change the value of QML Coordinate element at runtime?
Hi,
I am developing an application which requirs to display different contents on QML Map element. I asked one question yesterday how to add/remove map objects at runtime, and it is not yet solved. I tried to do a workaround, and now I have got another problem.
Is it possible to set the center of qml map or map object at runtime? The center of qml map and map object is a qml coordinate element.
Using the following qml:
- Map {
- id: map
- plugin : Plugin {
- name : "nokia"
- }
- anchors.fill: parent
- size.width: parent.width
- size.height: parent.height
- zoomLevel: t_data.zoomLevel
- center: Coordinate {latitude: 46.5; longitude: 6.6}//t_data.mapCenter
- onZoomLevelChanged: {
- console.log("Zoom changed")
- }
- MapCircle {
- id: circle1
- center: Coordinate {latitude: t_lati; longitude: t_lon} // {latitude: 46.5; longitude: 6.6}
- radius: t_data.radius
- color: "yellow"
- }
- }
The mapCircle can not be displayed if I set the value of latitude & longtitude from C++. However, map.zoomLevel, and mapcircle.radius can get the value from C++.
Did I do something wrong? How to control the value of QML Coordinate element from C++? I have checked the source code of QDeclarativeCoordinate and it has the latitude and longtitude as its properties, I don’t understand why I can’t expose data to it from C++?
Thank you very much!
Regards,
Juan
EDIT: added @ tag by vcsala
4 replies
Hi!
First of all the QML bindings for location stuff are currently (Qt Mobility 1.1.1) in a very sorry state. I’ve heard it should get better with QtM 1.2. I’m currently working around this by doing most map related things using C++.
For your particular problem, I remember a snipped I used before moving to C++. Something like this worked for me:
- function setPosition(lat, lon) {
- var coord = Qt.createQmlObject('import QtMobility.location 1.1; Coordinate{latitude:' + lat + ';longitude:' + lon + ';}', container, "coord");
- map.center = coord;
- }
This basically creates a new Coordinate object and sets it as center.
Out of curiosity, are t_lati and t_lon defined anywhere? Without more information it’s a) hard to help out and b) hard to check if this is fixed or needs fixing for the next release.
I don’t have any trouble modifying the center coordinate of circles from the QML side with the code in the master branch of git.
You must log in to post a reply. Not a member yet? Register here!



