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