欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt編寫地圖實(shí)現(xiàn)動態(tài)點(diǎn)位標(biāo)注的示例代碼

 更新時間:2022年02月10日 16:27:38   作者:feiyangqingyun  
動態(tài)點(diǎn)位標(biāo)注是定制的一個功能模塊,提供直接地圖上選點(diǎn)設(shè)置標(biāo)記點(diǎn),點(diǎn)位信息用結(jié)構(gòu)體存儲,其中包括了經(jīng)度、緯度、速度、時間等信息。本文將介紹實(shí)現(xiàn)這一功能的示例代碼,需要的可以參考一下

一、前言

動態(tài)點(diǎn)位標(biāo)注是定制的一個功能模塊,提供直接地圖上選點(diǎn)設(shè)置標(biāo)記點(diǎn),點(diǎn)位信息用結(jié)構(gòu)體存儲,其中包括了經(jīng)度、緯度、速度、時間等信息,單擊對應(yīng)的標(biāo)注點(diǎn)可以顯示詳細(xì)的彈框信息,彈框信息采用自定義的html格式顯示,而不是地圖自帶的格式,這樣顯示更方便,比如可控不同行不同顏色或者加粗。標(biāo)注點(diǎn)可選是否標(biāo)記,標(biāo)記的話就是一個設(shè)備圖標(biāo)顯示,不標(biāo)記的就普通的顯示,一般在明顯的拐彎的地方建議設(shè)置標(biāo)記。

近期在動態(tài)點(diǎn)位標(biāo)注功能中還增加了新增點(diǎn)以后立即移動到地圖中心,相當(dāng)于把新增的點(diǎn)作為地圖中心點(diǎn),這樣可以保證每次都能看到新增的點(diǎn)位置,不然還要自己去移動拉動地圖才能看到,其實(shí)后面的路書功能也可以增加類似的處理,軌跡點(diǎn)在移動的時候自動切換最近的點(diǎn)為中心點(diǎn)。

二、功能特點(diǎn)

定時器排隊(duì)下載省市輪廓圖點(diǎn)坐標(biāo)集合存儲到JS文件。

支持一個行政區(qū)域多個不規(guī)則區(qū)域下載。

自動計算行政區(qū)域的下載輪廓數(shù)量。

可精確選擇省份、市區(qū)、縣城,也可直接輸入行政區(qū)域的名稱。

可以設(shè)置下載間隔、隨時開始下載和停止下載。

提供編輯邊界功能,可以直接在地圖上編輯好不規(guī)則區(qū)域的點(diǎn)集合,然后獲取邊界點(diǎn)集合數(shù)據(jù),這個可以用來自己繪制區(qū)域拿到數(shù)據(jù),比如某個鄉(xiāng)鎮(zhèn)甚至某個小區(qū)的行政區(qū)域數(shù)據(jù),很牛逼。

三、體驗(yàn)地址

體驗(yàn)地址:https://pan.baidu.com/s/15ZKAlptW-rDcNq8zlzdYLg  提取碼:uyes 文件名:bin_map.zip

國內(nèi)站點(diǎn):https://gitee.com/feiyangqingyun

國際站點(diǎn):https://github.com/feiyangqingyun

四、效果圖

五、相關(guān)代碼

void frmMapMarker::append(const MarkerInfo &markerInfo)
{
    //先刪除上一次添加的線條,不然會重疊不好看
    runJs("deleteOverlay('Polyline')");

    //取出詳細(xì)數(shù)據(jù),添加到坐標(biāo)集合中進(jìn)行繪制線條
    QString point = markerInfo.lng + "," + markerInfo.lat;
    points << point;
    QString js = QString("addPolyline('%1')").arg(points.join("|"));
    runJs(js);

    //如果isMark則還需要添加對應(yīng)的點(diǎn)
    if (markerInfo.isMark) {
        //標(biāo)注點(diǎn)名稱 為空則不顯示
        QString name = "";
        //標(biāo)注點(diǎn)地址 為空則不顯示
        QString addr = "";
        //標(biāo)注點(diǎn)彈框信息html格式標(biāo)題 為空則采用默認(rèn)的格式
        QString title = "";
        //title = "<div style=\"color:#CE5521;font-size:25px;\">標(biāo)題: 測試設(shè)備</div>";

        //標(biāo)注點(diǎn)彈框信息html格式內(nèi)容 為空則采用默認(rèn)的格式
        QString tips = "";
        QStringList list;
        list << QString("<div style=\"color:#CE5521;font-size:15px;\">經(jīng)度: %1</div>").arg(markerInfo.lng);
        list << QString("<div style=\"color:#CE5521;font-size:15px;\">緯度: %1</div>").arg(markerInfo.lat);
        list << QString("<div style=\"color:#CE5521;font-size:15px;\">速度: %1 kv/h</div>").arg(markerInfo.speed);
        list << QString("<div style=\"color:#CE5521;font-size:15px;\">時間: [%1]</div>").arg(markerInfo.time);
        tips = list.join("");

        //標(biāo)注點(diǎn)彈框信息最小寬度
        int width = 150;
        //單擊以后觸發(fā)什么動作 0-不處理 1-自己彈框 2-發(fā)送信號
        int action = 1;
        //動畫效果 0-不處理 1-跳動 2-墜落
        int animation = 0;

        //動態(tài)圖 http://lbsyun.baidu.com/jsdemo/img/fox.gif
        //靜態(tài)圖 http://api.map.baidu.com/img/markers.png 需要指定iconindex
        //本地圖 m0.png ./m0.png m1.png 圖標(biāo)必須放在config文件夾下 大小默認(rèn)53*52
        //為空則采用默認(rèn)圖標(biāo)
        QString iconfile = "http://api.map.baidu.com/img/markers.png";
        QString js = QString("addMarker('%1', '%2', '%3', '%4', %5, '%6', %7, %8, '%9')")
                     .arg(name).arg(addr).arg(title).arg(tips).arg(width)
                     .arg(point).arg(action).arg(animation).arg(iconfile);
        runJs(js);

        //移動中心點(diǎn)到當(dāng)前點(diǎn),不需要可以注釋掉
        js = QString("setCenter('%1')").arg(point);
        runJs(js);
    }

    int count = ui->tableWidget->rowCount() + 1;
    ui->tableWidget->setRowCount(count);

    QTableWidgetItem *itemLng = new QTableWidgetItem;
    QTableWidgetItem *itemLat = new QTableWidgetItem;
    QTableWidgetItem *itemMark = new QTableWidgetItem;
    QTableWidgetItem *itemSpeed = new QTableWidgetItem;
    QTableWidgetItem *itemTime = new QTableWidgetItem;

    itemLng->setText(markerInfo.lng);
    itemLat->setText(markerInfo.lat);
    itemMark->setText(markerInfo.isMark ? "是" : "否");
    itemSpeed->setText(QString::number(markerInfo.speed));
    itemTime->setText(markerInfo.time);

    ui->tableWidget->setItem(count - 1, 0, itemLng);
    ui->tableWidget->setItem(count - 1, 1, itemLat);
    ui->tableWidget->setItem(count - 1, 2, itemMark);
    ui->tableWidget->setItem(count - 1, 3, itemSpeed);
    ui->tableWidget->setItem(count - 1, 4, itemTime);
}

void frmMapMarker::clear()
{
    points.clear();
    ui->tableWidget->setRowCount(0);
    runJs("deleteOverlay('')");
}

void frmMapMarker::on_btnAdd_clicked()
{
    MarkerInfo markerInfo;
    markerInfo.lng = ui->txtLng->text().trimmed();
    markerInfo.lat = ui->txtLat->text().trimmed();
    markerInfo.isMark = (ui->cboxMark->currentIndex() == 0);
    markerInfo.speed = ui->txtSpeed->text().trimmed().toInt();
    markerInfo.time = ui->txtTime->text().trimmed();
    append(markerInfo);
}

以上就是Qt編寫地圖實(shí)現(xiàn)動態(tài)點(diǎn)位標(biāo)注的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Qt動態(tài)點(diǎn)位標(biāo)注的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 在while中使用cin>>a?為條件及注意事項(xiàng)說明

    在while中使用cin>>a?為條件及注意事項(xiàng)說明

    這篇文章主要介紹了在while中使用cin>>a?為條件及注意事項(xiàng)說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 詳解用C語言實(shí)現(xiàn)三子棋游戲流程

    詳解用C語言實(shí)現(xiàn)三子棋游戲流程

    三子棋是一種民間傳統(tǒng)游戲,又叫九宮棋、圈圈叉叉、一條龍、井字棋等。將正方形對角線連起來,相對兩邊依次擺上三個雙方棋子,只要將自己的三個棋子走成一條線,對方就算輸了
    2021-11-11
  • C語言變長數(shù)組 struct中char data[0]的用法詳解

    C語言變長數(shù)組 struct中char data[0]的用法詳解

    下面小編就為大家?guī)硪黄狢語言變長數(shù)組 struct中char data[0]的用法詳解。小編覺得挺不錯的現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • 一文弄懂C語言EOF

    一文弄懂C語言EOF

    在 C語言中,EOF 是一個宏定義,EOF 常常用于文件的輸入輸出中,當(dāng)讀取到文件結(jié)束時,會返回 EOF,本文就詳細(xì)的介紹一下具體使用方法,感興趣的可以一起來了解一下
    2023-05-05
  • C++實(shí)現(xiàn)的打字母游戲示例

    C++實(shí)現(xiàn)的打字母游戲示例

    這篇文章主要介紹了C++實(shí)現(xiàn)的打字母游戲,涉及C++字體操作、時間及鍵盤響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • C++實(shí)現(xiàn)迷宮游戲

    C++實(shí)現(xiàn)迷宮游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)迷宮游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++ OpenCV繪制簡易直方圖DrawHistImg

    C++ OpenCV繪制簡易直方圖DrawHistImg

    本文主要介紹了一個能繪制簡易直方圖的簡單函數(shù)DrawHistImg,可以幫助大家快速掌握繪制的原理,可以根據(jù)自己的創(chuàng)意對其進(jìn)行改善和補(bǔ)充。需要的朋友可以參考一下
    2021-12-12
  • 淺析C語言中的內(nèi)存布局

    淺析C語言中的內(nèi)存布局

    以下是對C語言中的內(nèi)存布局進(jìn)行了詳細(xì)的分析介紹。需要的朋友可以過來參考下
    2013-08-08
  • C++/JAVA/C#子類調(diào)用父類函數(shù)情況總結(jié)

    C++/JAVA/C#子類調(diào)用父類函數(shù)情況總結(jié)

    今天小編就為大家分享一篇關(guān)于C++/JAVA/C#子類調(diào)用父類函數(shù)情況總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • C/C++并查集的查詢與合并實(shí)現(xiàn)原理

    C/C++并查集的查詢與合并實(shí)現(xiàn)原理

    這篇文章主要介紹了C/C++并查集的查詢與合并,并查集是一種用來管理元素分組情況的數(shù)據(jù)結(jié)構(gòu)。并查集可以高效地進(jìn)行如下操作
    2023-02-02

最新評論