Qt編寫地圖綜合應用之如何繪制覆蓋物折線
這篇文章給大家分享的是有關Qt編寫地圖綜合應用之如何繪制覆蓋物折線的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
一、前言
折線圖目前應用最廣的也是用來繪制各種軌跡,折線圖其實就是后面動態軌跡圖、飛機航線圖的前身,公用的一個方法addPolyline,折線圖可以設置顏色、粗細、透明度等屬性,如果開啟了懸浮繪圖工具欄,也可以直接單擊工具欄中的折線圖繪制工具,直接動態繪制。
二、功能特點
同時支持在線地圖和離線地圖兩種模式。
同時支持webkit內核、webengine內核、miniblink內核、IE內核。
支持設置多個標注點,信息包括名稱、地址、經緯度。
可設置地圖是否可單擊、拖動、鼠標滾輪縮放。
可設置協議版本、秘鑰、主題樣式、中心坐標、中心城市、地理編碼位置等。
可設置地圖縮放比例和級別,縮略圖、比例尺、路況信息等控件的可見。
支持地圖交互,比如鼠標按下獲取對應位置的經緯度。
支持查詢路線,可設置起點位置、終點位置、路線模式、路線方式、路線方案(最少時間、最少換乘、最少步行、不乘地鐵、最短距離、避開高速)。
可顯示點線面工具,可直接在地圖上劃線、點、矩形、圓形等。
可設置行政區劃,指定某個城市區域繪制圖層,在線地圖自動輸出行政區劃邊界點集合到js文件給離線地圖使用。
可靜態或者動態添加多個覆蓋物。支持點、折線、多邊形、矩形、圓形、弧線、點聚合等。
提供函數接口處理經緯度解析成地址和地址解析成經緯度坐標。
提供的demo直接可以單獨選點執行對應的處理比如路線查詢。
可以拿到路線查詢到的點坐標信息集合,比如用于機器人坐標導航等。
封裝了豐富的函數比如刪除指定點和所有點,刪除指定覆蓋物和所有覆蓋物等。
標注點彈框信息可以自定義內容,標準html格式。
標注點單擊事件可選 0-不處理 1-自己彈框 2-發送信號。
標注點可設置動畫效果 0-不處理 1-跳動 2-墜落
標注點可設置本地圖片文件等。
函數接口友好和統一,使用簡單方便,就一個類。
支持js動態交互添加點、刪除點、清空點、重置點,不需要刷新頁面。
支持任意Qt版本、任意系統、任意編譯器。
三、效果圖
四、相關代碼?
void?MapBaiDu::addPolyline(QStringList?&list) { ????//動態添加折線 ????list?<<?QString("??function?addPolyline(points,?color,?weight,?opacity)?{"); ????list?<<?QString("????var?pts?=?getPoints(points);"); ????list?<<?QString("????var?property?=?getProperty(color,?weight,?opacity);"); ????list?<<?QString("????var?polyline?=?new?%1.Polyline(pts,?property);").arg(mapFlag); ????list?<<?QString("????map.addOverlay(polyline);"); ????list?<<?QString("??}"); } void?frmMapBaiDu::on_btnDrawRoute_clicked() { ????if?(routeDatas.count()?==?0)?{ ????????QUIHelper::showMessageBoxError("請先單擊查詢路線獲取路線的坐標點集合!"); ????????return; ????} ????//清空之前的軌跡點 ????runJs("deleteOverlay('Polyline')"); ????//將收到的路徑點集合分線段繪制 ????foreach?(QStringList?data,?routeDatas)?{ ????????QString?points?=?data.join("|"); ????????QString?js?=?QString("addPolyline('%1',?'#ff0000')").arg(points); ????????runJs(js); ????} }
感謝各位的閱讀!關于“Qt編寫地圖綜合應用之如何繪制覆蓋物折線”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:niceseo99@gmail.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。
評論