目錄
原始碼主要包含三個專案,BMap.NET、BMap.NET.WindowsForm以及BMap.NET.WinformDemo。
- BMap.NET
對百度地圖Web Service API 的一些封裝,每個介面返回的都是JObject型別(參見Json.NET);
- BMap.NET.WindowsForm(開始少寫了一個s ,後來一直沒改)
提供一系列可以在Winform中使用的控制元件,包括地圖顯示控制元件、導航控制元件、POI查詢控制元件等等;
- BMap.NET.WinfromDemo
一個簡單的Demo,演示如何使用各個控制元件。
本專案完全基於C#.NET,沒有使用JavaScript等其他指令碼。所有輪子都是手工打造。
1.帶提示的搜尋輸入框
2.位置查詢
3.導航
4.新增標記、繪圖
5.區域搜尋
6.快速切換城市
BMap.NET包含以下功能:
- POI查詢
- 位置建議
- 地理(逆)編碼
- 導航(公交、駕車、步行)
- IP定位
- 座標轉換(墨卡託、GPS、火星、百度座標)
BMap.NET.WindowsForm中包含以下功能:
- 地圖顯示(拖拽、縮放等基本操作)
- 選擇地圖模式(衛星、普通、路網)
- 設定地圖載入模式(本地、本地優先、伺服器)
- 繪圖
- 距離測量
- 新增標記
- 截圖
- 位置輸入搜尋控制元件
- 導航控制元件
- 位置列表控制元件
不包含以下功能:
- 3D地圖
- 街景圖
- 導航不會考慮實時的路況資訊(也沒考慮公交首末班車的發車時間)
另外,本專案只針對百度地圖,因此在擴充套件性方面嚴重不足,跟GMap.NET相比較差很遠。不過你可以自己修改程式碼以滿足你的要求。
BMap.NET使用很簡單,每個介面均返回JObject型別(代表一個json資料),就不多說了。
BMap.NET.WindowsForm中只公開5個控制元件:BPlaceBox,BMapControl,BPlacesBoard,BDirectionBoard以及BTabControl。使用時只需要將其拖進窗體設計器,然後簡單地設定一下他們的屬性,讓它們相互關聯起來:
1.BPlaceBox屬性設定
2.BMapControl屬性設定
3.BPlacesBoard屬性設定
4.BDirectionBoard屬性設定
之後按F5執行即可,不需要編寫任何程式碼。
注意BTabControl控制元件只是為了模仿百度地圖官網左側的Tab效果,負責組織BPlacesBoard和BDirectionBoard控制元件。
2.Json.NET
3.Json視覺化
說明:
1)本篇文章只是簡單的介紹一些本專案大概內容,之後會介紹幾個關鍵技術,比如百度座標轉換、百度地圖瓦片行列號計算(百度地圖與其他地圖不一樣)等。如果有需要的朋友可以關注本部落格。
2)專案中我自己知道的就有好幾個bug,由於擔心百度地圖API升級導致之前寫好的功能不能使用,所以快馬加鞭完成一版。之後我會繼續完善本專案。
注意:本專案及其所有原始碼均遵循MIT開源協議。覺得有幫助的可以點個贊,開源有益。