離線地圖這個功能是近期才完成的,老早以前就很多人問有沒有離線地圖的功能,之前也大致了解過如何做離線地圖,其實最核心的不是代碼,而是如何搞到免費的離線地圖文件,離線地圖下載器網上大部分都是收費的,而且好像還不便宜,后面找了很多終于找到個簡單的可用的,可以指定城市進行離線地圖的下載,離線地圖一般使用百度的或者高德的居多,其實對于在線地圖使用比較熟練的話,那些方法完全一致的,理論上廠家做成的api接口也會統一的,唯一的不同就是引入的js文件不一樣,使用方法和處理流程是完全一樣的,于是抽空花了點時間重新整理封裝了一個百度地圖類,同時支持在線地圖和離線地圖兩種模式。
**地圖類功能特點:**
1. 同時支持在線地圖和離線地圖兩種模式。
2. 同時支持webkit內核、webengine內核、IE內核。
3. 支持設置多個標注點,信息包括名稱、地址、經緯度。
4. 可設置地圖是否可單擊、拖動、鼠標滾輪縮放。
5. 可設置協議版本、秘鑰、主題樣式、中心坐標、中心城市、地理編碼位置等。
6. 可設置地圖縮放比例和級別,縮略圖、比例尺、路況信息等控件的可見。
7. 支持地圖交互,比如鼠標按下獲取對應位置的經緯度。
8. 支持查詢路線,可設置起點位置、終點位置、路線模式、路線方式、路線方案(最少時間、最少換乘、最少步行、不乘地鐵、最短距離、避開高速)。
9. 可顯示點線面工具,可直接在地圖上劃線、點、矩形、圓形等。
10. 可設置行政區劃,指定某個城市區域繪制圖層,在線地圖自動輸出行政區劃邊界點集合到js文件給離線地圖使用。
11. 可添加多個覆蓋物。支持點、折線、多邊形、矩形、圓形、弧線等。
12. 函數接口友好和統一,使用簡單方便,就一個類。
13. 支持任意Qt版本、任意系統、任意編譯器。
視頻控件開源地址:[https://gitee.com/feiyangqingyun/QWidgetDemo](https://gitee.com/feiyangqingyun/QWidgetDemo) [https://github.com/feiyangqingyun/QWidgetDemo](https://github.com/feiyangqingyun/QWidgetDemo)
文件名稱:videowidget
體驗地址:[https://gitee.com/feiyangqingyun/QWidgetExe](https://gitee.com/feiyangqingyun/QWidgetExe) [https://github.com/feiyangqingyun/QWidgetExe](https://github.com/feiyangqingyun/QWidgetExe)
文件名稱:bin_video_system.zip
1. 支持16畫面切換,全屏切換等,包括1+4+6+8+9+13+16畫面切換。
2. 支持alt+enter全屏,esc退出全屏。
3. 自定義信息框+錯誤框+詢問框+右下角提示框。
4. 17套皮膚樣式隨意更換,所有樣式全部統一,包括菜單等。
5. 云臺儀表盤鼠標移上去高亮,八個方位精準識別。
6. 底部畫面工具欄(畫面分割切換+截圖聲音等設置)移上去高亮。
7. 可在配置文件更改左上角logo+中文軟件名稱+英文軟件名稱。
8. 封裝了百度地圖,三維切換,設備點位,鼠標按下獲取經緯度等。
9. 堆棧窗體,每個窗體都是個單獨的qwidget,方便編寫自己的代碼。
10. 頂部鼠標右鍵菜單,可動態控制時間CPU+左上角面板+左下角面板+右上角面板+右下角面板的顯示和隱藏,支持恢復默認布局。
11. 工具欄可以放置多個小圖標和關閉圖標。
12. 左側右側可拖動拉伸,并自動記憶寬高位置,重啟后恢復。
13. 雙擊攝像機節點自動播放視頻,雙擊節點自動依次添加視頻,會自動跳到下一個,雙擊父節點自動添加該節點下的所有視頻。
14. 攝像機節點拖曳到對應窗體播放視頻,同時支持拖曳本地文件直接播放。
15. 視頻畫面窗體支持拖曳交換,瞬間響應。
16. 雙擊節點+拖曳節點+拖曳窗體交換位置,均自動更新url.txt。
17. 支持從url.txt中加載16通道視頻播放,自動記憶最后通道對應的視頻,軟件啟動后自動打開播放。
18. 右下角音量條控件,失去焦點自動隱藏,音量條帶靜音圖標。
19. 集成百度地圖,可以添加設備對應位置,自動生成地圖,支持縮放和三維地圖,提供地圖風格選擇,共12種風格。
20. 視頻拖動到通道窗體外自動刪除視頻。
21. 鼠標右鍵可刪除當前+所有視頻,截圖當前+所有視頻。
22. 錄像機管理、攝像機管理,可添加刪除修改導入導出打印信息,立即應用新的設備信息生成樹狀列表,不需重啟。
23. 在pro文件中可以自由開啟是否加載地圖。
24. 視頻播放可選四種內核自由切換,vlc+ffmpeg+easyplayer+海康sdk,均可在pro中設置。
25. 可設置1+4+9+16畫面輪詢,可設置輪詢間隔以及輪詢碼流類型等,直接在主界面底部工具欄右側單擊啟動輪詢按鈕即可,再次單擊停止輪詢。
26. 默認超過10秒鐘未操作自動隱藏鼠標指針。
27. 支持onvif搜素設備,支持任意onvif攝像機,包括但不限于海康大華宇視天地偉業華為等,支持onvif云臺控制。
28. 高度可定制化,用戶可以很方便的在此基礎上衍生自己的功能,支持linux系統。
離線地圖的核心其實就是拿到這些瓦片地圖文件,并不是離線地圖的代碼怎么寫,其實離線地圖的網頁代碼和在線地圖的網頁代碼幾乎一致的,主要就是將對應的依賴的js文件從在線的地址改成本地的地址,然后可能多幾個特殊的js文件用來本地交互,離線地圖完全具備在線地圖的大部分功能,離線地圖有個好處就是可以離線使用,根本不需要聯網,而且也不需要什么秘鑰,你只要搞到那些瓦片地圖文件就隨便你怎么摩擦了。其實在線地圖也是通過讀取服務器上的離線地圖文件加載到網頁中的,你在快速的縮放和拖動地圖的時候可以看到縫隙和空白,估計此刻就是在從服務器拉取瓦片地圖文件來加載,而且這個服務器上的瓦片地圖永遠是最新的最完整的。
離線地圖相比于在線地圖有這么幾個地方要注意,一個是設置地圖中心點默認只支持經緯度坐標而不支持城市名稱,在線的城市名稱是可以的那是因為服務器會給你自動轉換成經緯度,離線地圖如果也想這樣的話需要自己寫一個js文件專門用于枚舉羅列出來各個城市對應的經緯度坐標,傳入城市名稱查詢經緯度,然后再去設置地圖中心點。還一個要注意的是獲取指定行政區域名稱獲取邊界的,這個在線地圖也是服務器去執行的,而離線地圖就沒有這個功能,總之可以想到的需要通過服務器執行的,離線地圖就直接做不到,需要自己額外編寫js代碼去實現,在官方提供的離線地圖的js文件夾中是沒有對應的文件。
1. 同時支持在線地圖和離線地圖兩種模式。
2. 同時支持webkit內核、webengine內核、IE內核。
3. 支持設置多個標注點,信息包括名稱、地址、經緯度。
4. 可設置地圖是否可單擊、拖動、鼠標滾輪縮放。
5. 可設置協議版本、秘鑰、主題樣式、中心坐標、中心城市、地理編碼位置等。
6. 可設置地圖縮放比例和級別,縮略圖、比例尺、路況信息等控件的可見。
7. 支持地圖交互,比如鼠標按下獲取對應位置的經緯度。
8. 支持查詢路線,可設置起點位置、終點位置、路線模式、路線方式、路線方案(最少時間、最少換乘、最少步行、不乘地鐵、最短距離、避開高速)。
9. 可顯示點線面工具,可直接在地圖上劃線、點、矩形、圓形等。
10. 可設置行政區劃,指定某個城市區域繪制圖層,在線地圖自動輸出行政區劃邊界點集合到js文件給離線地圖使用。
11. 可靜態或者動態添加多個覆蓋物。支持點、折線、多邊形、矩形、圓形、弧線、點聚合等。
12. 函數接口友好和統一,使用簡單方便,就一個類。
13. 支持js動態交互添加點、刪除點、清空點、重置點,不需要刷新頁面。
14. 支持任意Qt版本、任意系統、任意編譯器。
國內站點:[https://gitee.com/feiyangqingyun](https://gitee.com/feiyangqingyun)
國際站點:[https://github.com/feiyangqingyun](https://github.com/feiyangqingyun)
近期重新將這個地圖綜合應用進行大幅度的改進更新升級,包括使用示例也做了非常多的改進和調整,其中就包括路徑規劃功能,之前只是調用了百度地圖的JS交互接口,根據起始點坐標經緯度和結束點坐標經緯度,查詢出合適的路線,而并木有將查詢到的路徑的軌跡點坐標集合取出來,用于其他處理比如發給機器人,讓機器人按照這個軌跡點移動,為了確保取出來的軌跡點坐標集合是正確的,還可以將軌跡點用不同的顏色重新繪制出來,和查詢路線得到的軌跡線路進行對比,高度重合就說明是對的。
關于起始坐標和結束坐標,最開始做的是直接傳入具體中文地址即可,后面百度地圖不再開放此功能,貌似變成了收費功能,但是經緯度和地址互相轉換的功能還是開放的,所以就多了一個步驟,后面做的是直接傳入經緯度坐標進行查詢,需要手動輸入,現在做的是直接地圖選點,在起始坐標后面的單選框選中然后在地圖上直接選點,對應經緯度坐標值會自動填入,這樣相對來說更人性化一些。
拿到軌跡點坐標集合進行繪制,其實調用的就是addPolyline函數進行繪制,注意收到的軌跡點坐標集合很可能是多段的,而不是完整的一段,傳過來的是數組的數組,所以需要搞個循環將收到的路徑點集合分線段繪制,至于線條的顏色+邊框+透明度都可以設置,以便區分原來的路徑查詢自動繪制的路徑。
1. 同時支持在線地圖和離線地圖兩種模式。
2. 同時支持webkit內核、webengine內核、miniblink內核、IE內核。
3. 支持設置多個標注點,信息包括名稱、地址、經緯度。
4. 可設置地圖是否可單擊、拖動、鼠標滾輪縮放。
5. 可設置協議版本、秘鑰、主題樣式、中心坐標、中心城市、地理編碼位置等。
6. 可設置地圖縮放比例和級別,縮略圖、比例尺、路況信息等控件的可見。
7. 支持地圖交互,比如鼠標按下獲取對應位置的經緯度。
8. 支持查詢路線,可設置起點位置、終點位置、路線模式、路線方式、路線方案(最少時間、最少換乘、最少步行、不乘地鐵、最短距離、避開高速)。
9. 可顯示點線面工具,可直接在地圖上劃線、點、矩形、圓形等。
10. 可設置行政區劃,指定某個城市區域繪制圖層,在線地圖自動輸出行政區劃邊界點集合到js文件給離線地圖使用。
11. 可靜態或者動態添加多個覆蓋物。支持點、折線、多邊形、矩形、圓形、弧線、點聚合等。
12. 提供函數接口處理經緯度解析成地址和地址解析成經緯度坐標。
13. 提供的demo直接可以單獨選點執行對應的處理比如路線查詢。
14. 可以拿到路線查詢到的點坐標信息集合,比如用于機器人坐標導航等。
15. 封裝了豐富的函數比如刪除指定點和所有點,刪除指定覆蓋物和所有覆蓋物等。
16. 標注點彈框信息可以自定義內容,標準html格式。
17. 標注點單擊事件可選 0-不處理 1-自己彈框 2-發送信號。
18. 標注點可設置動畫效果 0-不處理 1-跳動 2-墜落
19. 標注點可設置本地圖片文件等。
20. 函數接口友好和統一,使用簡單方便,就一個類。
21. 支持js動態交互添加點、刪除點、清空點、重置點,不需要刷新頁面。
22. 支持任意Qt版本、任意系統、任意編譯器。
1. 體驗地址:[https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A](https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A) 提取碼:o05q 文件名:bin_map.zip
2. 國內站點:[https://gitee.com/feiyangqingyun](https://gitee.com/feiyangqingyun)
3. 國際站點:[https://github.com/feiyangqingyun](https://github.com/feiyangqingyun)
4. 個人主頁:[https://blog.csdn.net/feiyangqingyun](https://blog.csdn.net/feiyangqingyun)
5. 知乎主頁:[https://www.zhihu.com/people/feiyangqingyun/](https://www.zhihu.com/people/feiyangqingyun/)
*請認真填寫需求信息,我們會在24小時內與您取得聯系。