C#调用百度地图API经验分享
生活随笔
收集整理的這篇文章主要介紹了
C#调用百度地图API经验分享
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、引言
找了個示例項目,運行了下,然后對照著百度的官方示例(百度地圖開放平臺-首頁鏈接)自己增加了點內容。
需要技能為C#,JavaScript,HTML。不會后兩個,復制粘貼官方demo也能對付著用。
GitHub項目鏈接 https://github.com/landbroken/BaiduMapLearning
先開個坑,有空更新完整版。
二、基礎技能
開發中可能涉及到的基礎技能:
- 1、webBrowser控件在C#和HTML中傳值
2.1 webBrowser控件在C#和HTML中傳值
2.1.1 C#至html
以下為示例:
C#中傳遞值給html里的函數
object[] objects = new object[2]; //當前緯度 objects[0] = share_data.CurLat; //當前經度 objects[1] = share_data.CurLng; //傳值給html中的mapInit函數 webBrowser.Document.InvokeScript("mapInit", objects);html文件script中對應的maptnit函數
function mapInit(CurLat, CurLng) {}2.1.2 html至C#
html文件script中函數定義
//獲取測試坐標 startvar Lng = 116.380960var Lat = 39.913280function GetTestGPS(CurLng, CurLat) {//百度地圖API功能,經度,緯度var point = new BMap.Point(CurLng, CurLat);map.centerAndZoom(point, 20);var text="123"window.external.LocateInfo(text);return Lng;}//獲取測試坐標 end private void btnGetRightClickGPS_Click(object sender, EventArgs e){//116.380967,39.913285object[] objects = new object[2];//當前經度objects[0] = Convert.ToDouble(textBoxX.Text);//當前緯度objects[1] = Convert.ToDouble(textBoxY.Text);//傳值給html中的FindPosition函數object bb = webBrowser1.Document.InvokeScript("GetTestGPS", objects);}public void LocateInfo(string msg){string get = msg;}這里使用了兩種方法,方法一是return這一句,返回值賦值給object對象bb 。
return Lng;方法二是window.external這里,調用了C#里面的LocateInfo函數,傳遞一個string
window.external.LocateInfo(text);三、百度地圖簡易調用
1、添加一個webBrowser控件
2、通過控件載入地圖(需要聯網)
3、功能寫在html中,通過C#調用js方法實現,js方法可以從百度的官方demo復制。例如:
//清除地圖上的標記,點擊清除按鈕觸發private void clearMarker_Click(object sender, EventArgs e){webBrowser1.Document.InvokeScript("ClearAllMarkers"); }詳見GitHub上完整示例。
參考文獻
1、C#|通過webBrowser控件實現與html間的相互傳值
總結
以上是生活随笔為你收集整理的C#调用百度地图API经验分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给yarn配置国内镜像加速器
- 下一篇: UnityC# MD5验证