第19卷第3期 测 绘 工 程 V ol.19 .32010年6月 ENGINEERING OF
SU RVEYING AND MA PPING Jun.,2010
基于Google M ap API 的校园电子地图开发
吴 肖1,彭 璇1,朱明磊2
(1.武汉大学测绘学院,湖北武汉430079;2.天津市房地产登记发证交易中心,天津300051)
摘 要:Go og le M ap A PI 为用户提供向Go og le 地图添加各种个性化内容的功能,用户在此基础上进行二次开发,可实现各类网络地图服务。利用Go og le M ap A PI 开发校园电子地图,实现电子地图的各项基本功能,并探讨功能实现中的关键部分设计。
关键词:G oog le M a p A PI;校园电子地图;地标
中图分类号:P 208 文献标志码:A 文章编号:1006 7949(2010)03 0035 04
Digital campus map publishing based on Google Map API
WU Xiao 1,PENG Xuan 1,ZHU M ing lei 2
(1.Scho ol of Geodesy and Geomat ics,W uhan U niversity,W uhan 430079,China; 2.T ianjin Reg istrat ion and Cert ificatio n T rading Center o f Real Estate,T ianjin 300051,China)
Abstract:Goog le Maps A PI prov ides a num ber o f utilities for adding individual content to the Goog le map,and users can explore various w eb map applications based on Goog le M aps API.In this paper,a new dig it al cam pus map is created by m eans o f Goo gle M ap API,w hich can actualize essential function and prov ide a variety of services,and then discusses mo re details about key design and functio n of this application.Key words:Go ogle M ap API;campus map;Gmarker 收稿日期:2009 08 17
作者简介:吴 肖(1986-),女,硕士研究生.
Go ogle Map 与Goog le Earth 的推出使得地理信息服务迅速大众化,它让原本专业性很强的传统Web GIS 服务成为一种大众信息服务。虽然目前的Go ogle 地图服务还不能算是严格意义上的Web GIS 服务,但可以看出Go ogle 地图正在积极向这个方向发展。
Go ogle 地图可显示地图图像、地形图以及卫星影像,可实现全球地理位置搜索、分类信息获取、交通情况查询、行车路线甚至街景展示和显示三维模型等功能,在此基础上Go ogle 还提供了基于JavaS cript 技术的API 接口,用户可通过这一接口对Go ogle M ap 进行二次开发。
本文利用Goog le M ap API 对Goo gle 地图进行二次开发,设计并实现校园电子地图服务系统,并对其中的关键技术进行探讨。
1 校园电子地图总体设计
在设计基于g oog le map 的校园电子地图时必
须要考虑到由于网络地图的交互特性而应该注意的
操作简便、互动性强且美观大方等特点。
本文所设计实现的校园电子地图界面主要内容包括:地图显示区、图层控制区、选择列表查询区以及路线导航区几个区域。地图显示区为网络地图界面中最主要的区域,是对校园的最直观的展示,并且各种操作的大量结果都显示在此区域中。此区域还包括对地图进行缩放、平移、比例尺以及校园地图缩略图等各种控件,以便于用户进行最基本的操作与查看。另外在地图的下方还添加了搜索条,便于用户进行地点查询。选择列表查询区是通过提供给用户一些可选择的地点,进而方便用户在未知某些地点信息的时候可以通过选择已有选项进行查看,图层控制区是用于对专题图层进行控制的,而路线导航区则是提供校园内两地之间的行程路线,以供用户进行参考选择。图1为校园电子地图的界面图。
在完成校园电子地图的设计工作后,需考虑其网络发布系统。电子地图发布系统通常按照客户端(浏览器)
、应用服务器和数据服务器3层结构进行设计。Goo gle M ap API 对浏览器的要求不高,因此
适用于大多数主流浏览器。而客户端的设计重点是提供地图浏览和查询界面,以及把用户的访问和查询请求发送给服务器。应用服务器则负责处理用户的访问与查询请求。本文所设计的校园地图采用Apache 服务器和服务器端解释的脚本语言PH P 。数据服务器采用SQL Ser ver 数据库存储数据库表格,并在接到查询指令后执行相应的操作,进而完成
地图的发布。
图1 电子地图总体界面
2 校园电子地图实现的主要功能
基于Go ogle M ap API 对Goog le M ap 进行二次开发来设计校园电子地图,可实现强大的各种电子地图功能,为地图用户提供海量信息的全方位多角度服务。其主要功能有:
1)可对地图进行平移缩放、查看比例尺、切换不同类型地图以及缩略图等方便快捷的操作。还可通过定制控件来改变控件的外观等属性,从而实现校园地图的个性化的地图界面。
2)分类图层显示功能:在校园地图中,根据需要设置了不同属性地标数据的分类查看功能,把教学楼、宿舍、食堂、医院和公共场所等设施进行分类以方便用户查询。
3)查询导航功能:通过添加本地搜索与地标列表设计,可实现快速导航功能。
4)行车路线指南:行车指南是Goog le Map API 服务中一大特,将这项服务添加到校园电子地图中可方便用户出行与最优路线选择。
3 校园电子地图关键部分设计
在校园电子地图的开发和功能实现中,没有数据就无法实现电子地图的各类功能,因此,地标设
计,各类数据的加载读取、显示以及对其管理是关
键,下面对其进行较深入的探讨。
3.1 GMarker 地标与GInfoWindow 信息窗口设计 GMarker 地标用来标记校园地图上地理位置,需要使用GMap2.addOverlay()方法将其添加到地图中。它的语法格式为:new GM arker (point,opts)。通过为其中的两个属性参数赋值,可设计个性化图标。另外,还可以为GMarker 地标添加其他的属性,如title,drag gable,clickable 等。设置地标的各个属性后,则在地图上可显示全新的GM arker 地标。
但是,若地图上只显示各种地标,将不具有实际的可用性,用户无法从中得到所需的任何信息,因此需要为地标添加信息窗口。Goog le 地图API 中的每个地图都可以显示类型为GInfo Window 的信息窗口,用户可以通过单击Goo gle 地图上的地标看到活动的信息窗口[1]
。在GM arker 地标上添加GIn foWindow 信息可通过两种方法实现,分别是o pen InfoWindow ()方法和openInfoW indo wH tm l()方法。
另外,Goo gle Maps API 还提供添加多标签信息窗口GInfoWindow T ab 对象的功能。实际操作时,可先创建一个tabs 数组,对其中的各个tab 标签创建一个数组,然后在数组中对标签中的内容使用html 语言进行编写,再采用tabs.push()方法将它们添加到创建的tabs 数组,最后,使用GM arker.openInfoWindo
wT absH tml()进行显示。GInfoW indow 同样支持加入图片以及flash 等多媒体信息。将信息窗口成功添加到地图中后,可在地图中通过其地标标记打开并进行查看。图2为设计完成的一个GInfoWindow 信息窗口示意图。
图2 GInfoWindow 信息窗口设计
36 测 绘 工 程 第19卷
3.2 多源数据添加与管理go2map地图北京
1)添加图片数据实现地图叠加层。要实现基于goo gle m ap 的校园地图,需要把校园地图的图片数据嵌入goo gle m ap 中,需要通过添加地图叠加层来实现。
创建显示地图后,在此基础上添加校园地图的叠加层。通过GMap2对象可以实现创建和显示控制地图。在此基础上还需使用GM ap2.setCenter (po int,zo omlevel,opts)函数设定地图中心坐标和缩放级别。另外,通过GMap2.setM apT ype()方法可对地图的类型进行设定。
地图创建加载成功后,可以使用GGro undO v er lay ?对象添加校园地图的叠加层,再通过GM ap2.addOverlay 方法把校园地图显示到go ogle 地图上的指定位置。采用这一方法完成校园地图图片与g oog le 地图的初步融合。
2)读取XM L 数据文件。逐一添加地标标记和信息窗口的方式只适用于添加少量标记或特殊标记,若要添加海量地标标记就可利用GM ar ker M anag er 地标管理器对象来加载XM L 文件中的大量地标信息。
首先需要获取数据XM L 文件,然后对其中的数据进行解析。其具体方法是,使用E lem entsByT ag Name()方法一次性取出所有含地标信息的节点,然后用Attribute()方法逐一获取其中属性,最后根据取得的数据创建GM arker 地标对象并存入全局数组[2],然后再使用地标管理器。使用地标管理器首先需创建GMark erM anager 对象,然后采用addMarkers ()方法把GM arkerM anag er 对象一次性添加一组GM ar ker 地标,最后通过fresh ()将所添加的地标显示在地图上。
3)读取KML 和Geo RSS 数据文件。在校园地图上直接加载KM L 文档同样可以实现大量地标的上传。KM L 文档是Goo gle 专门开发出来用于Go ogle Earth 桌面程序中各种标记的XM L 文档,而GeoRSS 文档则是包含地理信息的RSS 文档,它也是一种XM L 文档[2]。利用KML 和GeoRSS 文档可以在goo gle 地图上显示GM arker 地标,并在信息窗口显示相关信息。KM L 文档的加载创建方式为:new GGeoXml (urlOfXml )。其中,!ur lOfXm l ∀是需要加载的文档的地址,但需要注意的是,其构造函数接收的是可公开访问的XM L 文件的网址[1]。然后再用GM ap2.addOverlay()方法将
其添加到地图上。
需要注意的是,由于中国的保密政策,中国地区的电子地图都会进行一定的偏移。因此,Go ogle 地图使用 ogle 来专门提供中国地区的电子地图,它与g oog le earth 卫星图像的正确坐标具有一定偏移。如果把由GE 生成的KM L 地标文件直接加载到地图上,就会产生偏差,所以需要对地标的地理位置属性进行修改。目前,用于KM L 批量制作的软件有Path Edito r 和KM L g enerato r 等,这些软件可以完成KM L 文件生成及对文件属性进行修改的多种功能。
3.3 多源数据的相关功能实现
1)加载XML 文件可以实现多种功能,这里以通过地标列表形式实现快速导航功能为例。这类功能可通过地址解析缓存和事件的功能实现。
其具体实现思路是:首先加载XM L 文件创建GMarker 地标对象并存入数组或者也可以直接构建一个地址解析响应数组。然后,创建扩展标准Geo codeCache 的定制缓存,定义该缓存在其中存储相应信息后,调用setCache()方法实现功能。采用事件功能时首先需定义数组和side_bar 属性并把数组信息存入side_bar,然后定义从而实现功能。功能实现后的界面如图3所示。
图3 地标列表形式的快速导航功能
2)在校园地图中,根据需要还可以设置不同属性地标数据的分类查看功能,如把教学楼、宿舍、食堂、公共设施以及医院等场所进行分类,以方便用户查询相关地点的信息。这一功能可通过加载和显示不同类别XM L 文件或KM L 文件来实现。
其思路为先定义各个分类的全局变量,然后定义其加载图层和删除图层的标志值。
定义好之后即可加载各分类的KML 文件和地图,通过勾选选项来实现分类显示的功能。图4中通过勾选相应图层即可在地图中显示,显示的分类地标已用红圈出。3.4 行车路线指南
通过使用GDir ectio ns 对象可进行行车路线设计,实现交通路线查询。行车路线在地图上可显示
37 第3期 吴 肖,等:基于G oog le M a p A PI 的校园电子地图开发
图4 图层分类查看
为沿线路绘制的折线或在<div>元素中进行文本描述。
在设计行车路线时,首先需要创建GDirections 对象,然后指定用于接收和显示结果区域和类型。可以为GM ap2对象和<div>对象。然后通过GDir ectio ns对象中的load事件和addov er lay事件返回行车路线结果并添加到地图和div元素中。
通过GDirections.lo adFro mWaypoints()方法还可构建使用一系列路标的多点的行车路线。此方法取文本输入地址或文本经纬度点的数组。每个路标按单独的路线计算并在相应的GRoute对象中返回,每个对象中还包括GStep对象。GRoute对象存储路线的路段(类型为GStep)数目、路线的起点和终点地址解析以及计算出的其他信息,如距离、历时和终点的精确经纬度。每个GStep对象还包含文本描述以及计算出的信息,包括距离、历时和精确经纬度[1]。4 结束语
Goog le M ap为用户提供了强大的各项电子地图功能,同时这一基于异步交互的Ajax技术减轻了服务器压力,页面更新时间短,实现了数据的即时交互响应。Goog le M ap API提供许多地图处理功能,用户
通过二次开发,可实现各种个性化以及专业领域的服务功能。本文利用Goo gle Map API开发了校园电子地图,实现了地图显示查看、地图类型切换、信息查询、图层管理以及路线查询等功能,并对数据的导入、加载、管理及其功能实现等进行了详细的探讨与设计,取得了一定成果。
参考文献
[1]刘建敏,李霖,应申,等.基于SV G的校园地图发布系统
[J].测绘与空间地理信息,2006,29(5):24 28.
[2]杨天亮,王亮.基于Goo gle M ap A PI的电信信息管
理系统研究[J].地理空间信息,2008,6(4):19 21.
[3]Goo gle公司.Go og le地图A P I[EB/OL].[2009 06 12].
co de.g oo gle/intl/zh CN/apis/maps/
[4]江宽,龚小鹏.Go og le A PI开发详解:Go og le M aps与
G oo gle Ear th双剑合璧[M].北京:电子工业出版社,
2008.
[5]谢传节,周成虎,林珲.基于XM L和CO RBA的网络虚拟
G IS设计[J].测绘学报,2002,31(1):66 70.
[6]孙晓茹,赵军.Goo gle M ap AP I在W EBGI S中的应用
[J].微计算机信息,2006,22(7):224 226.
[7]WIL L IA M S M.Goo g le M aps A PI Basic T ut or ial[EB/
O L].[2009 06 12].htt p://eco g.uk/g map/in dex.ht m
[8]崔金红,王旭.G oog le地图算法研究及实现[J].计算机科
学,2007,34(11):193 195.
[责任编辑:张德福]
(上接第25页)
[3]王增利,黄腾,邓标.基于二次曲面的拟合推估法在G PS
高程测量中的应用[J].测绘工程,2009,18(1):50 52. [4]郑红晓,雷伟伟.二次曲面拟合法在区域似大地水准面精
化中的应用[J].铁道勘察,2008(3):12 13.
[5]罗均,谢少荣,蒋秦,等.智能控制及其应用实例[M].北
京:化学工业出版社,2005:101 103.
[6]杨永平,冯立清,兰孝奇.BP神经网络法在GPS高程拟
合中的应用[J].三晋测绘,2004,11(1):15 21.
[7]匡翠林.BP神经网络用于GP S高程转换的网络配置
[J].测绘与空间地理信息2004,27(5):38 40.
[8]王新志.RBF神经网络在公路工程GPS高程转换中的应
用[J].交通标准化,2009(13):1 4.
[9]高西峰.基于RBF神经网络的线路工程似大地水准面精
化模型研究[J].电力勘测设计,2009(3):20 23.
[10]胡伍生.神经网络理论及其工程应用[M].北京:测绘出
版社,2006:62 90.
[责任编辑:刘文霞]
38测 绘 工 程 第19卷
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论