Skip to content

Commit

Permalink
map
Browse files Browse the repository at this point in the history
  • Loading branch information
ic005k committed Feb 19, 2025
1 parent 676be85 commit 7d6dc36
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 10 deletions.
25 changes: 20 additions & 5 deletions src/Steps/Steps.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -789,6 +789,18 @@ void Steps::appendTrack(double lat, double lon) {
Q_ARG(QVariant, lon));
}

void Steps::updateTrackData(double lat, double lon) {
QQuickItem* root = mw_one->ui->qwMap->rootObject();
QMetaObject::invokeMethod((QObject*)root, "updateTrackData",
Q_ARG(QVariant, lat), Q_ARG(QVariant, lon));
}

void Steps::updateMapTrackUi(double lat, double lon) {
QQuickItem* root = mw_one->ui->qwMap->rootObject();
QMetaObject::invokeMethod((QObject*)root, "updateMapTrackUi",
Q_ARG(QVariant, lat), Q_ARG(QVariant, lon));
}

void Steps::clearTrack() {
QQuickItem* root = mw_one->ui->qwMap->rootObject();
QMetaObject::invokeMethod((QObject*)root, "clearTrack");
Expand Down Expand Up @@ -850,15 +862,17 @@ void Steps::updateGpsTrack() {
#endif

clearTrack();
double lat;
double lon;
int count = Reg.value("/count", 0).toInt();
for (int i = 0; i < count; i++) {
double lat =
Reg.value("/" + QString::number(i + 1) + "/lat", 0).toDouble();
double lon =
Reg.value("/" + QString::number(i + 1) + "/lon", 0).toDouble();
appendTrack(lat, lon);
lat = Reg.value("/" + QString::number(i + 1) + "/lat", 0).toDouble();
lon = Reg.value("/" + QString::number(i + 1) + "/lon", 0).toDouble();
updateTrackData(lat, lon);
}
isGpsMapTrackFile = true;
lastLat = lat;
lastLon = lon;

} else {
isGpsMapTrackFile = false;
Expand All @@ -868,6 +882,7 @@ void Steps::updateGpsTrack() {

void Steps::updateGpsMapUi() {
if (isGpsMapTrackFile) {
updateMapTrackUi(lastLat, lastLon);
mw_one->ui->lblGpsDateTime->setText(strGpsMapDateTime);
mw_one->ui->qwMap->rootContext()->setContextProperty("strDistance",
strGpsMapDistnce);
Expand Down
3 changes: 3 additions & 0 deletions src/Steps/Steps.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ class Steps : public QDialog {
void appendTrack(double lat, double lon);
void updateGpsMapUi();
void updateGpsTrack();
void updateTrackData(double lat, double lon);
void updateMapTrackUi(double lat, double lon);
public slots:
void clearAllGpsList();
void getGpsTrack();
Expand Down Expand Up @@ -130,6 +132,7 @@ class Steps : public QDialog {
double mySpeed;
QString strGpsMapDateTime, strGpsMapDistnce, strGpsMapSpeed, strGpsList;
bool isGpsMapTrackFile;
double lastLat, lastLon;
signals:
void distanceChanged(double distance);
void timeChanged();
Expand Down
25 changes: 20 additions & 5 deletions src/qmlsrc/map.qml
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,30 @@ Rectangle {

var newCoordinate = QtPositioning.coordinate(lat, lon)

//polyline.path.push([newCoordinate])
let pathArray = polyline.path
//方法1
//let pathArray = polyline.path
//pathArray.push(newCoordinate) // 添加新的点
//polyline.path = pathArray

pathArray.push(newCoordinate) // 添加新的点
polyline.path = pathArray
//方法2(推荐)
polyline.addCoordinate(QtPositioning.coordinate(lat, lon))

map.center = newCoordinate
}

function updateTrackData(lat, lon) {
gpsx = lat
gpsy = lon

polyline.addCoordinate(QtPositioning.coordinate(lat, lon))
}

function updateMapTrackUi(lastLat, lastLon) {

map.center = QtPositioning.coordinate(lastLat, lastLon)
console.log("update track...")
}

function clearTrack() {
polyline.path = []
}
Expand Down Expand Up @@ -82,7 +97,7 @@ Rectangle {
map.center = coord

// 添加新坐标到轨迹
trajectory.addCoordinate(coord)
polyline.addCoordinate(coord)
}
}
}
Expand Down

0 comments on commit 7d6dc36

Please sign in to comment.