在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改用高德地图,原本的百度地图坐标是可以直接使用的,由于高德和百度地图的坐标系不一致 要如 ...
随机推荐
- js 表格合并
1.合并 function autoRowSpan(tbid, row, col) { var tb = document.getElementById(tbid); var lastValue = ...
- Django项目:CRM(客户关系管理系统)--36--28PerfectCRM实现King_admin编辑限制
#admin.py # ————————01PerfectCRM基本配置ADMIN———————— from django.contrib import admin # Register your m ...
- 标记扩展和 WPF XAML
本主题介绍 XAML 的标记扩展概念,包括其语法规则.用途以及底层的类对象模型. 标记扩展是 XAML 语言以及 XAML 服务的 .NET 实现的常规功能. 本主题专门详细论述了用于 WPF X ...
- 移动端“响应式布局”’--rem
使用目的:为了让移动设计稿在大部分的移动设备上看起来有一致的展示效果,我们使用rem的像素单位. 方法一: 1.在页面引入js,获取屏幕大小,更新rem基准. (function () { var c ...
- 用CSS添加选中文字的背景色
- org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.hs.model.StudentModel]: No default constructor found; nested exception is java.lang.NoSuchMethodException: c
root cause org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [c ...
- GIT → 03:Git的下载和安装
3.1 Git 下载 官网:https://git-scm.com/ 软件下载地址:https://git-scm.com/downloads 根据自己电脑版本下载对应版本: 3.2 Git 安装 3 ...
- Nacos Committers 团队首亮相,发布 0.9.0 版本
223 天,发布 14 个版本,19 位 Committers,39 位 Contributors. 在宣布开源后的第 223 天,Nacos 发布了其第14个版本 - 0.9.0,该版本提升了 Na ...
- 手机端点击键盘无法获取keyCode值的部分时隐藏键盘并执行事件
用计时器监视window.innerHeight高度改变来判断.触发键盘其他地方也有事件反应 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
- jeecg Access restriction 问题解决
最近导入新项目,导入所有用到的jar包,发现其中一个引用报错 import com.sun.istack.internal.Nullable; 具体信息如下: Access restriction: ...