在WPF中使用谷歌地图和高德地图
在桌面软件开发中可能会遇到这样的需求:显示地图。
常用的地图API有Google Map和高德地图。二者都提供了各种平台的API。
为了方便集成,本文使用JavaScriptAPI。
以高德地图为例(因为谷歌的服务在大陆偶尔不稳定)。
高德地图API: http://lbs.amap.com/api/javascript-api/summary-3/
使用之前请先申请APIKey
为了使用JavaScript API,我们需要使用一个WebBrowser控件承载网页,然后我们可以在网页中使用JavaScript API。这样我们只需要实现C#和JavaScript语言的接口即可。
我们首先创建一个html文件,用于显示地图,仿照高德地图官网的示例,代码如下:
代码参照:http://lbs.amap.com/api/javascript-api/example/a/0101-2/
后台代码如下:
运行之后可以看到如下效果:
为了实现更复杂的功能,比如我们想添加一个WPF按钮,通过按钮点击在地图上添加一个多边形覆盖物,以实现与地图的交互,我们可以这样做。
代码参照http://lbs.amap.com/api/javascript-api/example/e/0511-2/
按钮点击事件处理函数如下:
private voidbutton1_Click(object sender, RoutedEventArgs e)
{
webBrowser.InvokeScript("addPolygon");
}
通过InvokeScript方法我们实现在C#中调用JavaScript函数。
效果如下:
现在,我们想传参数到地图进去,比如我们要定位到某个经纬度,我们可以这样做
private voidbutton1_Click(object sender, RoutedEventArgs e)
{
webBrowser.InvokeScript("setMapCenter",new Object[]{ 116.205467, 39.907761 });
}
这样我们就给function setMapCenter(lng,lat)传递了两个参数(其他类型参数类似)。
Html代码参照http://lbs.amap.com/api/javascript-api/example/b/0203-2/
为了实现更复杂的功能,我们只需要看懂地图API,使用同上的方式交互即可。
另外谷歌地图的API与高德地图API类似,就不再赘述。
Enjoy it!
在WPF中使用谷歌地图和高德地图的更多相关文章
- 百度地图和高德地图坐标系的互相转换 四种Sandcastle方法生成c#.net帮助类帮助文档 文档API生成神器SandCastle使用心得 ASP.NET Core
百度地图和高德地图坐标系的互相转换 GPS.谷歌.百度.高德坐标相互转换 一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系,一般用国际GPS纪录仪记 ...
- iOS打开百度地图、高德地图导航
1.判断手机里是否已经安装了百度地图或者高德地图: BOOL hasBaiduMap = NO; BOOL hasGaodeMap = NO; if ([[UIApplication sharedAp ...
- ios 一步一步学会自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)
前言 在 ios上边使用地图库的同学肯定遇到过这样的问题:吹出框只能设置title和subtitle和左右的view,不管是百度地图还是高德地图还是自带的 google地图,只提供了这四个属性,如果想 ...
- arcgis api 3.x for js 入门开发系列十七在线天地图、百度地图、高德地图(附源码下载)
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...
- 百度地图和高德地图结合在web中的使用(二)
百度地图在web中的使用(二) 背景:在做一个关于地理位置字段时,初始位置使用百度地图获取时失败,获取的位置信息不准确,奈何产品说友商好使的啊,F12看后是采用的高德,所以在这采用高德地图获取初始位置 ...
- CAD数据分块,偏移校准,加载到百度地图、高德地图、谷歌等地图上
前面分享过一篇如何将CAD海量数据显示在百度地图上(百度地图Canvas实现十万CAD数据秒级加载),但是很多开发者在CAD数据提取时遇到了问题,所以接下来的文章将介绍如何将CAD数据提取. 准备软件 ...
- [WEB地图] 2017高德地图API WEB开发(key申请,地图搭建)简约教程
前端时间因为公司需要研究 了一下百度的教程 然后写个简约的笔记记录一下自己学习的收获,只为了满足自己暂时的写作热情 高德地图WEB开发(key申请.api)简约教程 1.首先我们需要去“高德地 ...
- IOS原生地图与高德地图
原生地图 1.什么是LBS LBS: 基于位置的服务 Location Based Service 实际应用:大众点评,陌陌,微信,美团等需要用到地图或定位的App 2.定位方式 1.GPS定位 ...
- Android笔记:百度地图与高德地图坐标转换问题
安卓项目使用了百度地图的定位SDK,web端使用的也是百度地图, 后来发现界面显示百度地图不如高德效果好,web改用高德地图,原本的百度地图坐标是可以直接使用的,由于高德和百度地图的坐标系不一致 要如 ...
随机推荐
- xampp中tomcat服务器无法启动
xampp中的Tomcat服务器无法启动的问题... 我的Java中自己安装了Tomcat服务器,webstorm中还有一个php服务器,,,xampp中的能不能用我就不需要去理会了...反正tomc ...
- 20190927 - 28 后觉 「雅礼Day3 - 4」
我再不开$C++11$编译我就从三楼跳下去$$\text{%%%lsc}$$ Day3 -lm -O2 -std=c++ Before $Day3$? 全是$Subtask$? $\frac{1}{4 ...
- java并发系列(八)-----java异步编程
同步计算与异步计算 从多个任务的角度来看,任务是可以串行执行的,也可以是并发执行的.从单个任务的角度来看,任务的执行方式可以是同步的,也可以是异步的. Runnable.Callable.Future ...
- [转载]C语言EOF是什么?
原贴网址:http://www.kuqin.com/language/20111112/314745.html 收藏于此: 我学习C语言的时候,遇到的一个问题就是EOF. 它是end of file的 ...
- 公司-广告-WPP:WPP
ylbtech-公司-广告-WPP:WPP WPP集团 (LSE:WPP) (NASDAQ:WPPGY),是世界上最大的传播集团,总部位于英国伦敦.WPP集团拥有 60 多个子公司,主要服务于本地.跨 ...
- Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: No Persistence provider for EntityManager named null
swing Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: No Pe ...
- linux基础指令参数
eth0,eth1,eth2--代表网卡一,网卡二,网卡三-- lo代表127.0.0.1,即localhost 参考: Linux命令:ifconfig 功能说明:显示或设置网络设备 语 法:ifc ...
- JS 防止重复提交
JS 防止重复提交表单 利用flag自定义设置,缺点就是当页面有很多类似操作时,每次需要一个 方法二: var newtime = 0; function sub(){ var Today = new ...
- vue+vant ui+高德地图的选址组件
首先在index.html引入高德地图的js <script src="https://webapi.amap.com/maps?v=1.4.14&key=你的key" ...
- sar磁盘I/O统计数据
sar是一个研究磁盘I/O的优秀工具.以下是sar磁盘I/O输出的一个示例. 第一行-d显示磁盘I/O信息,5 2选项是间隔和迭代,就像sar数据收集器那样.表3-3列出了字段和说明. 表3-3 ...