当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:在Winform中,许多时候都要用到地图,而现在一般都是用Google地图。Google地图的许多服务是由Javascript 控制的,为了提高操作地图的效率。文章探讨了基于Google Maps API在Winfbrm下的开发,并以WebBrowser控件为桥梁,建立了 Google地图服务与窗口程序之间的信息交互,从而实现了 在Winform窗口中访问与控制Google地图之目的。

引言

近年来,地理信息技术得到了很大的发展,特别是 Google公司推出的Google Maps得到了广泛的应用,Google 推出了 Google地图的应用程序接口 Google Maps API供用 户应用。与此同时,Winform由于具有简单强大、安全、灵 活的控件等特点被大量的开发者使用,并且,Google地图运 用于Windows窗体应用程序成为了当今的热点。本文通过 对Google Maps在Winform中实现的研究,重点探讨基于 Google Maps API的Winform开发,对Google地图解析在 Windows form中进行设计实现。

1 Google Maps API 的应用

Google向开发者免费发布全球地图和卫星影像的同时, 开发了其应用程序接口,开发人员可以根据自己的需求开发基 于Google Maps API的地图服务,将Google Maps嵌入自己 的Winform应用。

载入 Google Map API

在HTML页面中使用Google Maps API时,页面中必 须含有指向Google Maps API的URL,最基本格式为http : 〃maps.google.com/maps/api/js?sensor=false。这说明使用了 Google Maps API 定义的 JavaScript 文件的位置。sensor=false 代表没有使用传感器(类似于定位当前位置的GPS)。

1.2初始化地图

要让地图在网页上显示,必须为其留出一个位置。通 常都通过创建名为div的元素并在浏览器的文档对象模型 (DOM)中获取此元素的引用来执行此操作。而通过div的样式,可以指定地图的大小。例如:

<div id="map"style="width : 400px ; height: 400px"></ div>

Google Maps API中通过对HTML页面的<body>元素 添加onload事件来控制地图的载入与初始化。例如:

创建latlng对象,用来设置地图的中心:

var latlng = new google.maps.LatLng(57.8, 14.0);

创建options对象,设置地图的基本属性:

var options = {

zoom : 6,

center: latlng,

mapTypeId : google.maps.MapTypeId.ROADMAP }; 调用函数,初始化地图:

var map=new google.maps.Map(document.getElement

ById(/map/), options);

以上内容需要包含在一个函数中:

function initialize()

{

}

最后,再通过body标签的onload事件来初始化地图对象:

<body onload="initialize()">

<div id="map">

</div>

</body>。

1.3设置坐标

在Google地图上设置坐标,并确定坐标在地图上的位置,

例如:

var marker = new google.maps.Marker(

{

position : new google.maps.LatLng(56.8848, 14.7730),

map : map

title : 'My workplace',

clickable : false,

icon : 'http : //google-maps-icons.googlecode.com/files/ factory.png'

});

设置坐标后,即可得到如图1所示的计算机图像。

基于Google Maps API的Winform开发

2 Google地图服务与Winform后台数据交互

Winform的后台C#代码可以实现与窗口内的控件进行信 息交互,Google地图服务可以实现基于Google Map API的地 图显示,但Google地图服务与Web服务之间的信息不能直接 互通信息,本文以WebBrowser控件为桥梁,实现Google地 图服务与Winform后台数据互通。

WebBrowser 控件

WebBrowser控件可以在Windows窗体应用程序中承载 网页以及支持浏览器的其他文档,并且可以在应用程序中提供 基于HTML的集成用户帮助或Web浏览功能。此外,还可以 使用WebBrowser控件向Windows窗体客户端应用程序添加 基于Web的现有控件。

利用Uri类,加载指定的HTML页面,并初始化 WebBrowser,例如:

Uri url = new Uri(address, UriKind.Absolute);

WebBrowserLUrl = url ;

Google地图中的Javascript函数与Winform中C#函数的 互相调用

InteropServices. ComVisibleAttribute (true)],使 com 对象是对 网页里的javascript可见的。

其次,Winfrom后台函数设置成Public函数:

public string LonString()

{

double[] lon = new double⑵;

lon[0] = 116.407113 ;

lon[1] = 117.202148 ; return String(lon);

}

并在Javascript中通过window.external捕获调用C#定 义好的函数:

var lon_string=window. external.LonString();

C#里Javascript函数的执行

定义一个Javascript函数:

function SetHybridMap()

{

map.setMapTypeld(google.maps.MapTypeld.HYBRID);

}

之后,执行Javascript函数:

mshtml.IHTMLDocument2 currentDoc =(mshtml.IHTM LDocument2)webBrow ser1.Doc ument.DomDocument ;

mshtml.IHTMLWindow2 win = (mshtml. IHTMLWindow2)currentDoc.parentWindow ;

win.execScript(" SetHybridMap()", "javascript");

3结语

Winform凭借着丰富的控件,以及简单强大等优点,在 近些年迅速崛起,充分利用公共语言运行库的安全特性,一 切都可以在Windows窗体中实现。而Google地图服务能够实 现不同国家、不同地区的地理数据标识和地图显示功能。本 文将Google地图实现在Winform窗体上,可以利用Google 服务的定位、搜索等服务,为大型客户端系统提供了思路。

20211118_6195dc7485580__基于 Google Maps API的Winform开发

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭