计算机应用论文比较容易发表的核心期刊推荐《计算机应用与软件》,《计算机应用与软件》创刊于1984年,由上海市计算技术研究所和上海计算机软件技术开发中心共同主办,是全国中文核心期刊、中国计算机学会会刊,并已纳 入《中国科技论文统计源期刊(中国科技核心期刊)》、《中国学术期刊综合评价数据库来源期刊》、《万方数据—数字化期刊群全文收录期刊》、《中文科技期刊 数据库(全文版)收录期刊》、《中国科学引文数据库(CSCD)来源期刊》、美国《剑桥科学文摘》收录期刊、美国《乌利希国际期刊指南》等数据库收录。
摘要:在Web环境下地图的表示方式通常有两种:矢量形式与栅格形式。为了能够把这两种类型的数据发布到网上,实现地图的相关功能,本文介绍了如何基于ArcGISSERVER发布矢量格式的地图,并且实现地图的查询、测距、测面积等功能,另外通过开发GoogleMapsAPI的方法在网页中显示栅格数据,并实现地图的一些功能。
关键词:矢量数据,栅格数据,GoogleMapsAPI,ArcGISServer,网页
随着Internet技术的不断发展和人们对地理信息系统(GIS)的需求,利用Internet在Web上发布和出版空间数据,为用户提供空间数据浏览、查询和分析的功能,这已然成为GIS发展的必然趋势。于是,基于Internet技术的地理信息系统--WebGIS就应运而生,WebGIS是Internet技术应用于GIS开发的产物。为追随WebGIS这一发展趋势,世界各大GIS软件厂家纷纷推出通过Web提供交互式成图功能的工具及产品,从实现技术上看主要包括以下5类:CGI(公共网关接口)、ServerAPI(服务器应用程序接口)、Plug-In(浏览器插件)、Java和ActiveX等。
1矢量数据与栅格数据
矢量数据主要用于城市大比例尺地形图。矢量数据一般通过记录坐标的方式来尽可能将地理实体的空间位置表现的准确无误,显示的图形一般分为矢量图和位图。矢量图形最大的优点是无论放大、缩小或旋转等不会失真。
栅格数据是按照网格单元的行与列排列、具有不同灰度或颜色的阵列数据。栅格结构是大小相等分布均匀、紧密相连的像元(网格单元)阵列来表示空间地物或现象分布的数据组织。
2利用ArcGISServer实现基于网页的矢量数据的显示
2.1ArcGISServer体系结构
ArcGISServer是一个包含多个组件的分布式系统,它主要由表现层、Web层、GIS服务器层、数据层四部分组成,可以分别部署在不同的机器上,它们分别在进程的管理、启动、关闭以及对象运行服务器的负载均衡方面发挥着重要作用[1]。
2.2准备工作
1)Flex开发程序
Flex是AdobeSystems针对跨平台开发和部署而发布的技术集,应用程序可运行在AdobeFlash,Web浏览器或AdobeAIR及其他桌面应用程序。应用Flex开发的程序可以运行在大多数的已经安装AdobeFlashPlayer的Web浏览器中。
ArcGISServer提供FlexAPI。使用ArcServerFlexAPI允许你将ArcGISServer地图和任务应用到Web应用程序。
2)ActionScript编程语言
ActionScript是一种面向对象的编程语言,是Flash的脚本语言,与JavaScript相似。
2.3基于ArcGISSERVER实现查询,测距,测面积功能
先进行基于ArcGISServer的地图发布。系统具体实现的功能,界面如图:
图2-1系统界面
Fig.2-1SystemInterface
1)控件:在本系统中,添加了两个ArcGISServer自带的控件,实现放大缩小功能,以及比例尺功能。
2)测距:在测量距离的时候,重点是实现屏幕坐标与实际坐标之间的转换结束后利用距离的计算公式得出两点间,或多个点之间的距离。公式:s:Number=Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2));//两点之间距离公式。
3)测面积:同测距离的道理一样,区别只是在于计算公式的不同。公式:steparea:Number=a.x*b.y-a.y*b.x;
4)查询:查询可以分为两种方式,一种模糊查询,另一种精确查询。
5)点选查询:鼠标点击地图内容,即可查询选中地点的属性信息。
3基于GoogleMapsAPI开发实现基于网页的栅格数据的显示
3.1GoogleMapsAPI技术
GoogleMapsAPI是Google面向Web开发者推出的免费编程开放接口,是Google自己推出编程API,只需使用JavaScript脚本语言就可以将Google地图服务衔接到自己的网页中及利用JavaScript脚本进行应用开发拓展,给地图添加标注和折线及其他地图图层覆盖物和地图,或者响应用户的点击动作,并显示包含内容信息在内的气泡提示窗口[2]。
3.2开发的准备工作
1)JavaScript技术
JavaScript是一种解释性的脚本语言,是一种与平台无关的解释性脚本语言,依赖于浏览器,而与操作系统无关,只要计算机能运行浏览器,而且该浏览器支持JavaScript,就可以执行脚本。
2)GoogleMapsAPIkey
谷歌公司通过API密钥管理地图服务,用户要想使用GoogleMap地图数据和接口函数,需要先注册获得API密钥,收到API密钥之后,将邮件中附带的密钥代码拷贝到自己的服务中,即可在div标签中载入任意需要的地图[3]。
3.3基于GoogleMapsAPI的地图应用实现
1)创建基本的地图
利用Gmarker.openInfoWindowHtml()方法创建信息窗口,窗口里面可以填写你认为有用的东西(这里面的控件位置通过GoogleMapsAPI的一些程序是可以调整位置的)。
图3-1创建的信息窗口
Fig.3-1Thecreateinginformationwindow
2)为谷歌地图绘制折线并计算折线长度
谷歌地图中Gpolyline折线对象和Gpolygon多边形对象是用于在地图上显示一段指定颜色位置的折线和多边形的,例如新版中文谷歌地图服务中的乘车路线就是利用Gpolyline折线对象实现的。
图3-3绘制折线
Fig.3-3Drawpolylines
3)设定Gmarker地标的Z轴坐标
有时候因为缩放级别等原因,某些Gmarker地标会相互遮挡。这时,在一些实际应用中,谁在前谁在后是比较重要的。这时就需要设定所需的Z轴坐标以确定显示顺序。
4.结论
针对网页中矢量数据显示方法,本文提出了基于ArcGISServer这种在网页中显示矢量数据的方法实现矢量地图的点选查询,测距,测面积,精确查询与模糊查询的功能,利用ArcGISServer进行地图数据和属性数据的发布,能够实现地图信息的广泛共享,并可以最大程度地挖掘和发挥空间数据的效用,为用户提供高质量的基于空间信息的服务。
针对网页中栅格数据的显示方法,本文提出了开发GoogleMapsAPI的方法,实现了为谷歌地图绘制折线并计算长度,添加不同形式的信息窗口,和一些地图的辅助功能。同时笔者也发现GoogleMapsAPI的不足。
1)GIS的空间分析能力欠缺,直接调用GoogleMapsAPI函数很难实去实现复杂的GIS空间分析。
2)数据来源直接依赖Google公司,无多时像数据。
3)由于数据分辨率过高,程序开发者应尽量不要在地图上标注地物,尤其是敏感地区,以免带来不必要的麻烦。
参考文献
[1]马张宝,董慧君.基于ArcGISServer的
WebGIS研究与开发[A].测绘科学,2009,4(3):113~117
[2]YuGuoqiang.CampusWebGISapplicationbasedonArcGISServer[J].XingtaiVocationalandTechnicalCollege,2011,03(4):83~84.
[3]周宇林,付忠良.基于Google地图API的空间信息发布[A].计算机应用,2011,(3):1450~1452.