【完全開源】百度地圖Web service API C#.NET版,帶地圖顯示控制元件、導航控制元件、POI查詢控制元件

周見智發表於2015-08-21

目錄

 

概述

原始碼主要包含三個專案,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等其他指令碼。所有輪子都是手工打造。

Github地址

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控制元件。

 

參考幫助

1.百度地圖API文件

2.Json.NET

3.Json視覺化

 

說明:

1)本篇文章只是簡單的介紹一些本專案大概內容,之後會介紹幾個關鍵技術,比如百度座標轉換、百度地圖瓦片行列號計算(百度地圖與其他地圖不一樣)等。如果有需要的朋友可以關注本部落格。

2)專案中我自己知道的就有好幾個bug,由於擔心百度地圖API升級導致之前寫好的功能不能使用,所以快馬加鞭完成一版。之後我會繼續完善本專案。

注意:本專案及其所有原始碼均遵循MIT開源協議。覺得有幫助的可以點個贊,開源有益。

相關文章