您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Qt動(dòng)態(tài)如何添加”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Qt動(dòng)態(tài)如何添加”吧!
在添加設(shè)備點(diǎn)或者區(qū)域形狀的時(shí)候,會(huì)考慮是直接靜態(tài)的方式寫入到網(wǎng)頁(yè)中加載,還是動(dòng)態(tài)js函數(shù)異步加載的方式,這個(gè)需要根據(jù)現(xiàn)場(chǎng)的實(shí)際需求來(lái),如果只需要一次加載的話建議靜態(tài)即可,如果運(yùn)行期間還需要?jiǎng)討B(tài)添加的話就采用動(dòng)態(tài)的js函數(shù)交互的方法,絕大部分場(chǎng)景都是動(dòng)態(tài)添加,畢竟這個(gè)是異步執(zhí)行的,而且比較靈活,靜態(tài)的方式寫入到網(wǎng)頁(yè)中加載開(kāi)起來(lái)比較傻,數(shù)據(jù)都在網(wǎng)頁(yè)中可以看到了,沒(méi)有什么保密性可言,在前面兩篇文章做行政區(qū)劃和點(diǎn)聚合的時(shí)候,也是兩種方法都支持,具體現(xiàn)場(chǎng)怎么方便怎么來(lái)。
動(dòng)態(tài)添加的話,相當(dāng)于要把官網(wǎng)那些demo,都做成js函數(shù)調(diào)用的形式,官網(wǎng)的那些demo主要都是以靜態(tài)寫死的方式作為演示的,為了更直觀更容易理解,如果是Qt程序員或者c++的程序,需要花一丟丟時(shí)間才能學(xué)會(huì)如何將其封裝成js函數(shù)調(diào)用,畢竟在js中沒(méi)有數(shù)據(jù)類型的概念,統(tǒng)一都是var,相當(dāng)于Qt中的QVariant類型,所謂萬(wàn)物皆var,數(shù)組和數(shù)組對(duì)象直接用[]搞定,著實(shí)相當(dāng)方便。
同時(shí)支持在線地圖和離線地圖兩種模式。
同時(shí)支持webkit內(nèi)核、webengine內(nèi)核、IE內(nèi)核。
支持設(shè)置多個(gè)標(biāo)注點(diǎn),信息包括名稱、地址、經(jīng)緯度。
可設(shè)置地圖是否可單擊、拖動(dòng)、鼠標(biāo)滾輪縮放。
可設(shè)置協(xié)議版本、秘鑰、主題樣式、中心坐標(biāo)、中心城市、地理編碼位置等。
可設(shè)置地圖縮放比例和級(jí)別,縮略圖、比例尺、路況信息等控件的可見(jiàn)。
支持地圖交互,比如鼠標(biāo)按下獲取對(duì)應(yīng)位置的經(jīng)緯度。
支持查詢路線,可設(shè)置起點(diǎn)位置、終點(diǎn)位置、路線模式、路線方式、路線方案(最少時(shí)間、最少換乘、最少步行、不乘地鐵、最短距離、避開(kāi)高速)。
可顯示點(diǎn)線面工具,可直接在地圖上劃線、點(diǎn)、矩形、圓形等。
可設(shè)置行政區(qū)劃,指定某個(gè)城市區(qū)域繪制圖層,在線地圖自動(dòng)輸出行政區(qū)劃邊界點(diǎn)集合到j(luò)s文件給離線地圖使用。
可靜態(tài)或者動(dòng)態(tài)添加多個(gè)覆蓋物。支持點(diǎn)、折線、多邊形、矩形、圓形、弧線、點(diǎn)聚合等。
函數(shù)接口友好和統(tǒng)一,使用簡(jiǎn)單方便,就一個(gè)類。
支持js動(dòng)態(tài)交互添加點(diǎn)、刪除點(diǎn)、清空點(diǎn)、重置點(diǎn),不需要刷新頁(yè)面。
支持任意Qt版本、任意系統(tǒng)、任意編譯器。
void MapBaiDu::addPolyline(QStringList &list) { //覆蓋物通用屬性,包括顏色線條粗細(xì)等,可以自行更改 QString property = getOverlayProperty(); //動(dòng)態(tài)添加折線 list << QString(" function addPolyline(points) {"); list << QString(" var pts = getPoints(points);"); list << QString(" var polyline = new BMap.Polyline(pts, %1);").arg(property); list << QString(" map.addOverlay(polyline);"); list << QString(" }"); } void MapBaiDu::addPolygon(QStringList &list) { //覆蓋物通用屬性,包括顏色線條粗細(xì)等,可以自行更改 QString property = getOverlayProperty(); //動(dòng)態(tài)添加多邊形 list << QString(" function addPolygon(points) {"); list << QString(" var pts = getPoints(points);"); list << QString(" var polygon = new BMap.Polygon(pts, %1);").arg(property); list << QString(" map.addOverlay(polygon);"); list << QString(" }"); } void MapBaiDu::addRectangle(QStringList &list) { //覆蓋物通用屬性,包括顏色線條粗細(xì)等,可以自行更改 QString property = getOverlayProperty(); //動(dòng)態(tài)添加矩形 list << QString(" function addRectangle(points) {"); list << QString(" var listPoint = points.split(\"|\");"); list << QString(" if (listPoint.length != 2) {"); list << QString(" return;"); list << QString(" }"); //將兩個(gè)坐標(biāo)拆分成四個(gè)點(diǎn) list << QString(" var list1 = listPoint[0].split(\",\");"); list << QString(" var list2 = listPoint[1].split(\",\");"); list << QString(" var ptStart = new BMap.Point(list1[0], list1[1]);"); list << QString(" var ptEnd = new BMap.Point(list2[0], list2[1]);"); list << QString(" var pt1 = new BMap.Point(ptStart.lng, ptStart.lat);"); list << QString(" var pt2 = new BMap.Point(ptEnd.lng, ptStart.lat);"); list << QString(" var pt3 = new BMap.Point(ptEnd.lng, ptEnd.lat);"); list << QString(" var pt4 = new BMap.Point(ptStart.lng, ptEnd.lat);"); list << QString(" var rectangle = new BMap.Polygon([pt1,pt2,pt3,pt4], %1);").arg(property); list << QString(" map.addOverlay(rectangle);"); list << QString(" }"); } void MapBaiDu::addCircle(QStringList &list) { //覆蓋物通用屬性,包括顏色線條粗細(xì)等,可以自行更改 QString property = getOverlayProperty(); //動(dòng)態(tài)添加圓形 list << QString(" function addCircle(points, radius) {"); list << QString(" var listPoint = points.split(\"|\");"); list << QString(" var list = listPoint[0].split(\",\");"); list << QString(" var ptCenter = new BMap.Point(list[0], list[1]);"); list << QString(" var circle = new BMap.Circle(ptCenter, radius, %1);").arg(property); list << QString(" map.addOverlay(circle);"); list << QString(" }"); }
到此,相信大家對(duì)“Qt動(dòng)態(tài)如何添加”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。