百度地图控件BaiduMap

  这篇主要讲地图控件的定义和方法的实现。

页面

  在用户控件BaiduMap.xaml中定义一个WebBrowser

1 <WebBrowser Margin="0,0,0,0"
2                     x:Name="webBrowser"/>

后台

  在BaiduMap.xaml.cs文件中加载百度地图,并定义各种方法。

 1         /// <summary>
 2         /// 计时器
 3         /// </summary>
 4         private Timer timer = new Timer();
 5
 6         /// <summary>
 7         /// 坐标
 8         /// </summary>
 9         //private MapBase.Point point;
10
11         /// <summary>
12         /// 文件地址
13         /// </summary>
14         string path = System.Windows.Forms.Application.StartupPath + "/HttpMap/BMap.html";
15         //string path = System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + "/HttpMap/BMap.html";
16
17         //string DefaultSource = Application.StartupPath + "\\HttpMap\\BMap.html";
18
19         public BaiduMap()
20         {
21             InitializeComponent();
22             // 进行处理,成为可信的脚本文件
23             string DefaultSource = "file://127.0.0.1/" + path.Replace("\\", @"/").Replace(":","").Insert(1, "$");
24             Uri uri = new Uri(DefaultSource);
25             // 加载html
26             webBrowser.Navigate(uri);
27
28             timer.Interval = 1000;
29             timer.Start();
30             timer.Elapsed += timer_Elapsed;
31         }

View Code

  代码中,注释掉很多关于路径的定义,原因就是将所加载的脚本文件设置为可信,否则,百度地图界面上总会出现类似“是否加载该脚本”的提示语。path的指定的路径是程序开始的路径下的httpMap文件夹下的BMap.html文件。

Methods

  定义的方法比较多,就分开写了~

 1         #region 选择人员
 2
 3         /// <summary>
 4         /// 选择人员
 5         /// </summary>
 6         /// <param name="_userMarker"></param>
 7         [Description("选择人员")]
 8         public void SelectedUserMarker(UserMarker _userMarker)
 9         {
10             _userMarker.SelectedUserMarker(this.webBrowser);
11         }
12
13         #endregion
14
15         #region 地图移到某坐标
16
17         [Description("地图移到指定坐标")]
18         public void MoveMapTo(MapControl mc)
19         {
20             mc.MoveMapTo(this.webBrowser);
21         }
22
23         #endregion
24
25         #region 清除所有覆盖物
26
27         [Description("清除所有覆盖物")]
28         public void ClearAllOverlay(MapControl mc)
29         {
30             mc.ClearAllOverlay(this.webBrowser);
31         }
32
33         #endregion
34
35         #region  添加路径
36
37         /// <summary>
38         /// 获取当前鼠标所在坐标
39         /// </summary>
40         /// <returns></returns>
41         [Description("获取当前鼠标所在坐标")]
42         public void AddUserRoute(UserRoute ur)
43         {
44             ur.AddUserRoute(this.webBrowser);
45         }
46
47         #endregion
48
49         #region 清空所有路径
50
51         /// <summary>
52         /// 清空所有路径
53         /// </summary>
54         [Description("清空所有路径")]
55         public void ClearAllUserRoute(int userCount)
56         {
57             this.webBrowser.InvokeScript("ClearAllUserRoute",new Object[]{userCount});
58         }
59
60         #endregion
61
62         #region 添加地址,以及连接到marker
63
64         /// <summary>
65         /// 地址连接
66         /// </summary>
67         /// <param name="geo"></param>
68         [Description("地址连接")]
69         public void GetAddresses(Geocoder geo)
70         {
71             //geo.GetAddresses(this.webBrowser);
72             geo.GetAddressList(this.webBrowser);
73         }
74
75         #endregion
76
77         #region 添加一个标签
78
79         /// <summary>
80         /// 添加一个标签
81         /// </summary>
82         /// <param name="_label"></param>
83         [Description("添加一个标签")]
84         public void AddLebel(MapLayer.Label _label)
85         {
86             _label.AddLabel(this.webBrowser);
87         }
88
89         #endregion

View Code

  1         #region  获取当前鼠标所在坐标
  2
  3         /// <summary>
  4         /// 获取当前鼠标所在坐标
  5         /// </summary>
  6         /// <returns></returns>
  7         [Description("获取当前鼠标所在坐标")]
  8         public BaiduMapControl.MapBase.Point CallBackPoint()
  9         {
 10             timer.Enabled = true;
 11             return null ;
 12         }
 13
 14         #endregion
 15
 16         #region 将地图放大一级
 17
 18         /// <summary>
 19         /// 将地图放大一级
 20         /// </summary>
 21         public void ZoomIn()
 22         {
 23             this.webBrowser.InvokeScript("ZoomIn");
 24         }
 25
 26         #endregion
 27
 28         #region 范围搜索
 29
 30         /// <summary>
 31         /// 范围搜索
 32         /// </summary>
 33         /// <param name="keywords"></param>
 34         [Description("范围搜索")]
 35         public void SearchInBounds(string keywords)
 36         {
 37             LocalSearch local = new LocalSearch();
 38             local.SearchInBounds(keywords, this.webBrowser);
 39         }
 40
 41         #endregion
 42
 43         #region 驾车导航
 44
 45         /// <summary>
 46         /// 获取指定起点和终点的驾车导航
 47         /// </summary>
 48         /// <param name="d"></param>
 49         ///  使用方法:
 50         ///  DrivingRoute d = new DrivingRoute("王府井", "中关村");
 51         ///  BMap.GetDrivingRoute(t);
 52         [Description("获取指定起点和终点的驾车导航")]
 53         public void GetDrivingRoute(DrivingRoute d)
 54         {
 55             d.GetDrivingRoute(this.webBrowser);
 56         }
 57
 58         #endregion
 59
 60         #region 公交导航
 61
 62         /// <summary>
 63         /// 获得指定起点和终点的公交导航
 64         /// </summary>
 65         /// <param name="t"></param>
 66         /// 使用方法:
 67         /// TransitRoute t = new TransitRoute("王府井", "中关村");
 68         /// BMap.GetTransitRoute(t);
 69         [Description("获得指定起点和终点的公交导航")]
 70         public void GetTransitRoute(TransitRoute t)
 71         {
 72             t.GetTransitRoute(this.webBrowser);
 73         }
 74
 75         #endregion
 76
 77         #region 步行导航
 78
 79         /// <summary>
 80         /// 获取指定起点和终点的步行导航
 81         /// </summary>
 82         /// <param name="w"></param>
 83         ///  使用方法:
 84         ///  WalkingRoute w = new WalkingRoute("王府井", "中关村");
 85         ///  BMap.GetWalkingRoute(w);
 86         [Description("获取指定起点和终点的步行导航")]
 87         public void GetWalkingRoute(WalkingRoute w)
 88         {
 89             w.GetWalkingRoute(this.webBrowser);
 90         }
 91
 92         #endregion
 93
 94         #region 地址解析
 95
 96         /// <summary>
 97         /// 返回指定地址所在的经纬度坐标
 98         /// </summary>
 99         /// <param name="g">地理解析实例</param>
100         /// <returns>坐标点</returns>
101         /// 使用方法:
102         //Geocoder g = new Geocoder("宁夏回族自治区");
103         //BMap.DecodeAddress(g);
104         //[Description("返回指定地址所在的经纬度坐标")]
105         //public MapBase.Point DecodeAddress(Geocoder g)
106         //{
107         //    return g.DecodeAddress(this.webBrowser);
108         //}
109
110         #endregion

View Code

 1         #region 添加一个圆
 2
 3         /// <summary>
 4         /// 添加一个圆
 5         /// </summary>
 6         /// <param name="cirle"></param>
 7         [Description("添加一个圆")]
 8         public void AddCirle(Cirle cirle)
 9         {
10             cirle.AddCirle(this.webBrowser);
11         }
12
13         #endregion
14
15         #region 设置中心城市
16
17         /// <summary>
18         /// 设置中心城市
19         /// </summary>
20         /// <param name="_cityName">城市名称</param>
21         /// 使用方法:BaiduM.SetCity("北京")
22         [Description("设置中心城市")]
23         public void SetCity(string _cityName)
24         {
25             webBrowser.InvokeScript("SetCity", new Object[] { _cityName });
26         }
27
28         #endregion
29
30         #region  返回地图中心坐标
31
32
33         #endregion
34
35         #region 添加一个地图控件
36
37         /// <summary>
38         /// 添加地图控件
39         /// </summary>
40         /// <param name="m">地图控件</param>
41         /// 使用方法:
42         /// MapControl m = new MapControl(MapControlType.MapTypeControl);
43         /// Bmap.AddMapControl(m);
44         [Description("添加一个地图控件")]
45         public void AddMapControl(MapControl _m)
46         {
47             _m.AddControl(this.webBrowser);
48         }
49
50         #endregion
51
52         #region 添加标注点
53
54         /// <summary>
55         /// 添加标注点
56         /// </summary>
57         /// <param name="maker">标注点</param>
58         /// 使用方法:
59         ///Maker maker = new Maker(new MapBase.Point("119.2345", "36.1248"), MakerType.Normal);
60         ///BaiduMap.AddMaker(maker);
61         [Description("添加一个标注点")]
62         public void AddMaker(Maker maker)
63         {
64             maker.AddMaker(this.webBrowser);
65         }
66
67         #endregion
68
69         #region 添加一个信息窗口
70
71         /// <summary>
72         /// 添加一个信息窗口
73         /// </summary>
74         /// <param name="info"></param>
75         /// 使用方法:
76         /// InfoWindow info = new InfoWindow("这是一个信息窗口", new Point("119.3612", "36.1245"));
77         /// BaiduMap.AddInfoWindow(Info);
78         [Description("添加一个信息窗口")]
79         public void AddInfoWindow(InfoWindow _info)
80         {
81             _info.AddInfoWindow(this.webBrowser);
82         }
83
84         #endregion

View Code

  最后是一个定时器的方法,具体想做什么可以添加

 1 void timer_Elapsed(object sender, ElapsedEventArgs e)
 2         {
 3             try
 4             {
 5
 6             }
 7             catch (Exception)
 8             {
 9             }
10         }

View Code

Waiting

  百度地图控件定义完成,下一篇是html和js~明天吧~

转载于:https://www.cnblogs.com/shadow-fei/p/4680371.html

百度地图API(二)相关推荐

  1. 百度地图API二次开发小经验分享

    最近在做一个物流后台系统,需要用地图来把订单地址展示出来,需要在地图上批量框选坐标进行排单,需要看到配送员的实时位置等等功能. 在高德地图.腾讯地图.百度地图三者间,我选了百度地图,没有原因,个人偏好 ...

  2. 转载 百度地图API二次开发小经验分享

    转载From:http://www.cnblogs.com/yiyiBlog/p/5122224.html 最近在做一个物流后台系统,需要用地图来把订单地址展示出来,需要在地图上批量框选坐标进行排单, ...

  3. php百度地图接口两点测距,百度地图Api 根据两个坐标点计算距离

    百度地图Android Sdk的Api里面,没有现成的直接获取两个坐标点之间距离的方法,但是,在jsapi里面,有直接计算距离的方法. class Point: pass def max(a,b): ...

  4. 运用百度地图API离线版(在线版)实现网管系统中终端定位和终端信息获取的功能...

    一.了解百度地图API 1.百度地图JavaScript API简介 百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可在网站中构建功能丰富.交互性强的地图应用 ...

  5. java web调用百度地图_Java web与web gis学习笔记(二)——百度地图API调用

    一.申请百度地图开发者 百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,包括JavaScript API.Web服务API.Android SDK.iOS SDK.定位SDK.车联网 ...

  6. Java web与web gis学习笔记(二)——百度地图API调用

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

  7. java 微信 百度地图_[Java教程]H5微信通过百度地图API实现导航方式二

    [Java教程]H5微信通过百度地图API实现导航方式二 0 2017-08-01 23:53:20 要有服务器才行哦 body, html {width: 100%;height: 100%;mar ...

  8. 百度地图API实现自动定位城市,省市二联重新地图重新定位

    最近遇到定位问题,借助百度地图ApI与若干文章解决了这个问题. 相对来说,百度地图API中的示例组合起来就能达到大众的需求了,只是刚接触不知道整体是什么情况,花了点时间了解. ------------ ...

  9. 【百度地图API】——如何用label制作简易的房产标签

    摘要: 最近,API爱好者们纷纷说,自定义marker太复杂了!不仅定义复杂,连所有的dom事件都要自己重新定义.有没有快速简易创建房产标签的方法呢? 答案当然是有的啦~ 我们可以利用label嘛! ...

  10. 【百度地图API】如何制作班级地理通讯录?LBS通讯录

    原文:[百度地图API]如何制作班级地理通讯录?LBS通讯录 摘要:班级通讯录必备的功能,比如人员列表,人员地理位置标注,展示复杂信息窗口,公交和驾车等.一般班级人员都不会超过300个,因为可以高效地 ...

最新文章

  1. Linux的文件夹及文件的权限
  2. KG-知识图谱入门-王昊奋课程详细笔记(附课件、课程链接与详细笔记) 内有资源
  3. 教授在飞机上做微积分,被当作恐怖分子抓了......
  4. kompozer+mysql_KompoZer for mac下载_KompoZer for mac版V0.8b3下载(暂未上线)_预约_飞翔下载...
  5. Linux高级字符设备之Poll操作
  6. 1035:等差数列末项计算
  7. 机器学习的简单逻辑回归的Advanced Optimization
  8. Oracle数据字典全解 (1)
  9. 【转】Pycharm的激活
  10. AutoLearnSkills.lua --升级自动学习技能
  11. 学习c语言的小程序,C语言小程序学习
  12. spss 描述性分析
  13. 库存数量控制中储备定额方法的改进与实现
  14. android串口开发!一年后斩获腾讯T3,附面试题答案
  15. MAF-YOLO: Multi-modal attention fusion based YOLO forpedestrian detection
  16. 【三维CAD设计经验分享】CrownCAD设计:生成工程图
  17. buff系统 游戏中_请问BUFF状态
  18. VTK笔记-裁剪分割-几何裁剪-vtkClipPolyData
  19. 将DXSDK的帮助文档加入到VS6的MSDN中
  20. 前2个月我国外贸进出口5919.9亿美元,下降11%,贸易逆差70.9亿美元

热门文章

  1. POJ 3225 Help with Intervals(线段树)
  2. View4.5测试参考文档7--View Administrator安装、配置、创建桌面池
  3. delphi:多态置换原则
  4. oracle 回滚段介绍(三)
  5. VS .NET(C#)四舍五入方法(转)
  6. ca证书 linux 导入_CA搭建与证书申请
  7. 图形驱动程序和显卡驱动什么区别_专业图形显卡和游戏显卡的区别以及建模和渲染的性能要求...
  8. Metasploit log命令技巧
  9. OSNIT信息收集分析框架OSRFramework
  10. Wireshark数据抓包教程之认识捕获分析数据包