c# webbrowers控件调用百度地图后,鼠标读取百度地图的坐标
2017-08-31 12:50
302 查看
首先在html文件下写入下面代码;
添加一个 timer控件,然后在cs文件中的窗体启动方法中写入下面函数:
添加一个timer事件,代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> body, html, #allmap { width: 100%; height: 100%; overflow: hidden; margin: 0; font-family: 微软雅黑; } </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> //<script type="text/javascript" src="MarkerClusterer_min.js"></script> //<script type="text/javascript" src="LuShu_min.js"></script> <title>获取地图经纬度</title> </head> <body> <div id="mouselng" style="visibility:hidden"></div> <div id="mouselat" style="visibility:hidden"></div> <div id="allmap"></div> </body> </html> <script type="text/javascript"> var map = new BMap.Map("allmap"); var point = new BMap.Point(116.404, 39.915); map.centerAndZoom(point, 9b25 8);//窗体加载之后初始的坐标点和放缩倍数 map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 //map.centerAndZoom(); map.enableKeyboard(true);//开启键盘控制 map.addEventListener("mousemove", GetlngAndlat);//添加鼠标移动获取经纬度功能 //获取坐标 function GetlngAndlat(e) { if (e.point.lng != null) { document.getElementById("mouselng").innerHTML = e.point.lng; document.getElementById("mouselat").innerHTML = e.point.lat; } } </script>
添加一个 timer控件,然后在cs文件中的窗体启动方法中写入下面函数:
#region 窗体加载事件 private void F_HistoricalTraceControl_Load(object sender, EventArgs e) { string str_url = Application.StartupPath + "定义的HTML文件名称.html";//放在debug文件夹下 Uri url = new Uri(str_url); HistoricalTraceWebBrowser.Url = url; HistoricalTraceWebBrowser.ObjectForScripting = this; latLngTimer.Enabled = true;//timer控件 } #endregion
添加一个timer事件,代码如下:
#region 鼠标移动获取地图上点的经纬度 private void latLngTimer_Tick(object sender, EventArgs e) { try { //将html中获取的坐标交互 string tag_lng = HistoricalTraceWebBrowser.Document.GetElementById("mouselng").InnerText; string tag_lat = HistoricalTraceWebBrowser.Document.GetElementById("mouselat").InnerText; double dou_lng, dou_lat; if (double.TryParse(tag_lng, out dou_lng) && double.TryParse(tag_lat, out dou_lat)) { //显示当前点位置,根据自己的要求将经纬度显示出来 sSecItem.Caption = string.Format("经度:{0}, 纬度:{1} ", dou_lng.ToString("F5"), dou_lat.ToString("F5")); } } catch (Exception ee) { //MessageBox.Show(ee.Message); } } #endregion
相关文章推荐
- C#计时器;控件移动;获取鼠标坐标;事件调用事件;
- c# asp.net 鼠标改变控件坐标位置,更改控件坐标,注册表保存读取,打印,查找局域网内打印机等等收集
- c# winform 一个可以用鼠标改变控件位置和大小的类,调用即可
- C#运行时鼠标移动控件 - 调用Windows API(ReleaseCapture)
- [c#]如何在form的webbrowser控件中获得鼠标坐标
- 浅析c#中如何在form的webbrowser控件中获得鼠标坐标
- [c#]如何在form的webbrowser控件中获得鼠标坐标
- 从Excel中读取已知坐标 添加到百度地图上
- C#跨窗体调用控件(委托回调函数使用例子)
- C#中的BackgroundWorker控件+Delegate.Invoke (委托同步调用)
- C#跨线程调用窗体控件
- C# 调用带参数的控制台程序 并将命令行输出的内容实时输出至窗体中的显示控件
- C# 线程调用主线程中的控件
- C#的百度地图开发(三)依据坐标获取位置、商圈及周边信息
- c# 鼠标在控件上拖动 移动窗体 移动窗口
- C#下使用Invoke调用窗体控件
- 用户控件包含一个搜索功能,但是在调用页面中按回车时无法直接提交这个表单,只有鼠标点击才提交,如何解决?
- c#调用百度地图web服务api-----该方法可用在js跨域请求上
- 用delphi的THTTPRIO控件调用了c#写的webservice。
- c#利用委托跨线程调用UI控件完整使用方法