基于百度地图API的WebGIS研究与实现

来源 :科学导报·学术 | 被引量 : 0次 | 上传用户:eyeknee1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文从理论研究以及技术实践出发,自主设计并开发完成了基于百度地图API的信息查询系统。客户端基于百度地图API实现了地图展示、查询等功能,并通过Ajax请求服务端的SqlServer数据库将服务端存储的信息查询出来并显示到浏览器中;同时浏览器端基于HTML5 GeolocationAPI实现了定位功能。
  关键词:百度地图;HTML5;WebGIS;XML
  近些年互联网技术在全球高速发展,万维网成为便捷高效的全球信息发布工具。GIS和Web技术的结合,让GIS插上网络的翅膀迅速走进了千家万户。借助Web技术,GIS实现了从桌面到Web浏览器的转移,使得人们在任何能够接入互联网的电脑前使用浏览器,就能够迅速获取所需要的地理信息。传统的WebGIS应用开发相对复杂和困难,因为这涉及到很多关于地图数据的收集、位置信息的收集和处理等各种各样的服务能力。而地图API则把地图数据处理、位置获取甚至空间计算的大部分工作来完成,把GIS功能封装为简单的应用程序接口供应用开发人员来调用,开发者只需要考虑应用本身的逻辑,使用JavaScript或者其他语言调用百度地图的API,即可将需要的GIS功能嵌入到自己的网页或其他应用中。
  1百度地图API
  观察在线地图的发展现状,继国际上Google地图之后,近些年国内百度地图、搜狗地图、高德地图、阿里云地图和腾讯SOSO地图等都纷纷推出了自己的地图搜索服务和路况等应用服务,极大的便利了人们的出行。
  百度地图API是LBS位置应用的开发平台,API和SDK的应用模式是:API和SDK本身并不面向最终用户,开发者在开发应用时调用API或SDK来开发LBS应用,然后把应用提供给最终的用户。百度地图API平台有四大核心能力:1、数据,可以检索周边餐饮、旅馆等各类信息。百度出身于数字搜索,在数据方面经验丰富,拥有并提供大量的信息数据;2、搜索,包括所有跟计算有关的能力,比如POI的搜索,检索附近的餐饮、酒店等等;3、导航,比如路径计算,驾车导航,公交检索等;4、定位,定位是LBS应用的关键功能。
  2平台总体架构设计
  本系统基于百度地图API,目标是实现任意区域的信息检索,并将搜索结果合理展现在网页文档中。对于位置信息,采用百度地图API提供的接口数据;对于详细信息,采用自己架设ASP.NET服务器提供Web服务的方式提供详细数据。
  本系统的核心功能是提供地图展示,允许用户通过修改地图视野,并点击“查询”按钮立即查询本地图视野区域的信息,并以标注的方式展示在地图中。同时允许用户点击任意一个结果标注查询详细信息。图1描述了系统的设计逻辑。
  2.1 JavaScript API实现地图功能
  使用JavaScript API只需将百度地图API的JS文件加载到网页,并设置初始化地图容器的代码即可。百度地图API支持2D、3D、卫星图的展示、平移、缩放、拖拽等操作。还可以在地图展示控件:添加/删除鹰眼、工具条、比例尺、自定义版权、地图类型及定位控件,并可以设置各类控件的显示位置。
  自1.5版本之后,需先百度地图API官网申请密钥。ak的使用方法如下:
  <script src="http://api.map.baidu.com/api?v=1.5&ak=您的密钥" type="text/javascript"></script>
  其中参数v为API当前的版本号,目前最新版本为1.5。
  由于JavaScript在网页中的加载是自上而下进行的,而在本系统中,网页模型、API类、初始化动作都是有先后逻辑次序的。因此要求网页DOM(文档对象模型)的加载先于百度地图JS文件的加载,百度地图JS的加载要先于地图初始化代码。
  为此,我们需要借助百度地图API异步加载技术,同时运用适当的方法解决以上次序问题。首先,我们将地图API的加载封装为loadBaiduJs的函数,然后在網页文档的head标签中加入window.onload = loadBaiduJs;即可等网页所有DOM(文档对象模型)加载完毕之后再加载百度的JS代码。如图是loadBaiduJs函数的逻辑代码。
  其中,引入百度地图JS文件的参数callback=initialize代表加载完成百度地图JS文件后的回调函数,这就确保了initialize初始化函数的执行是在百度地图JS文件加载之后进行的。在自定义的initialize回调函数中,需要对地图展示的初始参数进行初始化,包括设置地图初始的中心点、缩放级别等。
  2.2 Javascript API实现POI搜索
  百度地图API中,BMap.LocalSearch提供本地搜索服务,在使用本地搜索时需要为其设置一个检索区域,检索区域可以是BMap.Map对象、BMap.Point对象或者是省市名称(比如:"北京市")的字符串。BMap.LocalSearch构造函数的第二个参数是可选的,可以在其中指定结果的呈现。BMap.RenderOptions类提供了若干控制呈现的属性,其中map属性指定了结果所展现的地图实例,panel属性指定了结果列表的容器元素。
  本文所设计的系统为检索商场信息,因此现以检索当前视野内的POI商场信息为例。我们的搜索参数设置为renderOptions:{ map:myMap,panel:win2,autoViewport:true,selectFirstResult:false },即搜索结果展现在myMap地图实例,搜索结果面板展现在“win2”面板,搜索完成后自动调整地图视野,并选择第一条搜索结果。
  同时,本系统要求点击搜索结果的地图标注后要触发自定义的事件,我们在自定义的事件代码中使用Ajax访问Web Service,因此,我们需要在本地搜索的第二个参数中设置onMarkersSet属性,在标注添加完成后给每个标注添加Click事件的绑定函数。我们的本地搜索参数设置如图2,其中addInfoWindow函数是为标注添加点击事件的函数:
  2.3 Javascript API实现公交线路查询
  BMap.TransitRoute类提供公交导航搜索服务。和本地搜索类似,在搜索之前需要指定搜索区域,注意公交导航的区域范围只能是市,而不能是省。如果搜索区域为BMap.Map对象,路线结果会自动添加到地图上。如果网页中提供了结果容器,相应的路线描述也会展示在页面上。创建一个公交导航对象的方法为:var transit= new BMap.TransitRoute(map,{ renderOptions:{map:myMap,panel:"results"}.这样便声明了一个公交线路查询对象transit,第二个参数指明了此次查询结果标注展现在myMap地图对象上,结果内容展示在“result”网页容器内。公交对象定义完成后执行transit.search(起点字符串,终点字符串)便可执行线路查询。
  3 总结
  本文从理论研究以及技术实践出发,自主设计开发完成的基于百度地图API的独立于GIS平台的信息查询系统,采用HTML5和CSS3作为客户前端UI展现方式,基于百度地图API接口实现了地图展示、关键词搜索、大学位置检索、大学信息查询、公交线路检索、定位等功能。借助ASP.NET创建的Web Service,实现了自定义数据在地图上的展现。
  参考文献:
  [1] 易晓飞.HTML5 Geolocation API 研究与应用[J].计算机光盘软件与应用,2012,6:101.
  [2] 王红崧,周海晏.基于百度地图 API 的旅游地理信息系统开发[J].现代计算机:上半月版,2012(8):60-63.
  [3] 李艳,高扬.基于地图 API 的 Web 地图服务及应用研究[J].地理信息世界,2010,8(002):54-57.
  [4] 赵文雪.百度 MapAPI 在气象自动站监测的应用[J].科技资讯,2012,15:005.
  作者简介:
  田力(1963-),研究方向:国土资源信息管理、测绘地理信息、智慧城市等
  (作者单位:烟台市地理信息中心)
其他文献
摘要:随着我国经济水平的不断提高,各行各业的竞争力逐渐加大,市场经济环境变得日益复杂。在这一经济发展背景下,各个行业只有不断优化自身的缺点、完善自己,才能在激烈的竞争中屹立不倒。机电一体化系统是我国应用范围最广的系统,对于一个工业大国来说至关重要,所以对于机电一体化系统的发展,我们要不断改进其不足,提高其可靠性与高效性。  关键词:机电一体化系统;智能控制;应用  1机电一体化系统与智能控制  1
期刊
摘要:随着现代社会的不断进步与发展,楼宇建筑对智能化系统的要求也越来越高,需要对其不断的进行改进和提升,而智能楼宇的信息集成度是其系统集成化程度的一个核心内容。因此,对于智能化楼宇建筑来说,需要不断地提高弱电系统的核心技术,并且要重视加强对信息的采集与处理过程。本文主要深入的研究介绍了智能楼宇的弱电系统集成,同时又探讨分析了弱电系统的集成方式,并且对未来智能楼宇弱电系统集成方式进行了展望,希望能够
期刊
摘要:现阶段,随着我国社会的不断发展,科技的不断进步,我国各个领域均得到了很好的发展。计算机技术在电子信息工程发展中的应用,带动了整个电子信息行业的发展,从而推动了我国整体经济的快速发展。电子信息工程行业在我国发展的现阶段,对技术有了更高的要求,计算机网络技术正弥补了此缺陷。本文将对电子信息工程的发展特点进行详细分析,并对计算机网络技术在电子信息工程发展中的主要应用形式进行阐述,推动我国电子信息工
期刊
摘要:本篇文章主要分析了我国目前乡镇卫生院医疗当中计算机管理系统的应用问题以及应用过程当中存在的一系列困难,发现由于管理部门引进的计算机系统和计算机软件缺乏一定的针对性,医疗部门的相关工作人员对于治疗的观念相对落后,各种软件开发和使用不到位,工作人员对于计算机的相关知识不到位,管理制度不健全等等,导致我国乡镇卫生院医疗当中,计算机管理系统的应用存在着很严重的问题,因此,针对这一系列问题提出了一些对
期刊
摘要:云南是我国乃至亚洲花卉产业的重要枢纽,冷链物流是花卉产业运输的重要手段。本文对云南花卉产业冷链物流的现状进行概述,分析其冷链物流目前存在的问题和不足,并针对存在的问题提出相关的建议和对策,希望对云南花卉产业冷链物流的发展起到一定积极补充作用。  关键词:云南花卉;冷链物流;发展  一、引言  近年来,世界花卉产业日益壮大,已经成为世界最具有发展前途的十大行业之一。由于人们生活水平的提高,鲜花
期刊
摘要:智能技术在电子工程中的应用,实现了操作的自动化,使生产质量与产品品质、工作效率等,都在智能技术的良好控制下得到进一步提升,一方面节约了工程成本,另一方面实现了对资源的有效分配,消耗最少的资源获得最多的产品,对于提高社会生产力、促进社会经济发展等方面都具有重要的作用,因此,对职能技术在电子工程中的具体应用进行分析,具有重要的现实意义。  关键词:智能技术;电子工程;具体应用  1电子工程中智能
期刊
摘要:智能电器控制的技术水平已经得到了大幅度提升,能够妥善地处理低压电器中存在的安全隐患问题。本文首先对智能电器控制技术操作流程进行了简要概述;其次,重点探究了智能电器控制技术的应用方法,希望能为该领域关注者提供有益参考。  关键词:智能电器;节电器;数据收集;信号输出  引言:随着我国国民经济的发展以及科学技术水平的提升,国内智能电器研发设计,特别是将计算机科学技术与智能电器控制技术相互融合,并
期刊
摘要:农网改造升级工程是一项持续性的工作。随着全面建设小康社会步伐的加快,中央强农惠农政策以及新农村、新型城镇化战略深入推进,农民生产生活水平不断提高,用电需求增势强劲,在新农村建设、城镇化、农业产业发展、扶贫移民等方面提出了更高的要求。因此,只有创新体制机制,强化地方政府与电网企业的主体责任,加强在项目规划、工程实施和竣工验收等方面的配合和监督,才能更好地推动农网建设。  关键词:农网升级改造;
期刊
摘要:游戲作为人类社会的一种活动现象,从古至今,从小孩到大人,在人类世界中都具有独特的魅力。游戏是儿童世界里最纯粹的生活形式,他们不仅在游戏过程中伴随愉悦情绪,获得满足感,还能在假想的情景中反映周围生活,获得社会性成长,为未来生活做准备,其中角色游戏在儿童社会化进程中起着举足轻重的作用。大班幼儿以联合游戏和合作游戏两种社会性游戏行为为主,乐于积极参加各种游戏活动,并能理解规则的意义,可以和同伴协商
期刊
摘要:我国经济持续发展的背景下,电力事业在社会中占据着越来越重要的位置,一方面电力事业关乎人们的日常工作与生活,另一方面电力事业牵动着社会的生产与发展。由于经济的发展需要以耗费大量能源为代价,因此我国能源紧缺的问题日渐严峻,尤其表现在电力资源层面上。火力发电厂主要责任在于提供电力资源,火电厂中的汽机辅机运行状况直接牵动着电能的供给,因此,在火电厂的运行管理中,必须要加强汽机辅机的经济运行策略,提升
期刊