1、1基于 Web 的矢量和栅格数据显示方法研究摘要:在 Web 环境下地图的表示方式通常有两种:矢量形式与栅格形式。为了能够把这两种类型的数据发布到网上,实现地图的相关功能,本文介绍了如何基于 ArcGIS SERVER 发布矢量格式的地图,并且实现地图的查询、测距、测面积等功能,另外通过开发 Google Maps API 的方法在网页中显示栅格数据,并实现地图的一些功能。 关键词:矢量数据;栅格数据;Google Maps API;ArcGIS Server;网页 Study on vector and raster data display method based on the web
2、page LiuWei,ZhaoLei (Dalian Academy of Reconnaissance and Mapping Co. LTD.,Dalian 116021,China) Abstract: To be able to put two types of data released to the Internet, and map-related functions, this article describes how to map vector format based on ARCSERVER release, and inquiries, ranging, the m
3、easured area of the map, the other through the development of Google MapsAPI method to display raster data in a Web page, and realize some of the features of the map. 2Keyword: vector data; raster data,;Google Maps API,;ArcGIS Server, web page 随着 Internet 技术的不断发展和人们对地理信息系统(GIS)的需求,利用 Internet 在 Web
4、上发布和出版空间数据,为用户提供空间数据浏览、查询和分析的功能,这已然成为 GIS 发展的必然趋势。于是,基于Internet 技术的地理信息系统-WebGIS 就应运而生,WebGIS 是Internet 技术应用于 GIS 开发的产物。为追随 WebGIS 这一发展趋势,世界各大 GIS 软件厂家纷纷推出通过 Web 提供交互式成图功能的工具及产品,从实现技术上看主要包括以下 5 类:CGI(公共网关接口)、Server API(服务器应用程序接口)、Plug-In(浏览器插件)、Java 和 ActiveX 等。1 矢量数据与栅格数据 矢量数据主要用于城市大比例尺地形图。矢量数据一般通过
5、记录坐标的方式来尽可能将地理实体的空间位置表现的准确无误,显示的图形一般分为矢量图和位图。矢量图形最大的优点是无论放大、缩小或旋转等不会失真。 栅格数据是按照网格单元的行与列排列、具有不同灰度或颜色的阵列数据。栅格结构是大小相等分布均匀、紧密相连的像元(网格单元)阵列来表示空间地物或现象分布的数据组织。 2 利用 ArcGIS Server 实现基于网页的矢量数据的显示 2.1 ArcGIS Server 体系结构 3ArcGIS Server 是一个包含多个组件的分布式系统,它主要由表现层、Web 层、GIS 服务器层、数据层四部分组成,可以分别部署在不同的机器上,它们分别在进程的管理、启动
6、、关闭以及对象运行服务器的负载均衡方面发挥着重要作用1。 2.2 准备工作 1)Flex 开发程序 Flex 是 Adobe Systems 针对跨平台开发和部署而发布的技术集,应用程序可运行在 Adobe Flash,Web 浏览器或 Adobe AIR 及其他桌面应用程序。应用 Flex 开发的程序可以运行在大多数的已经安装 Adobe Flash Player 的 Web 浏览器中。 ArcGIS Server 提供 Flex API。使用 ArcServer Flex API 允许你将ArcGIS Server 地图和任务应用到 Web 应用程序。 2) ActionScript 编程
7、语言 ActionScript 是一种面向对象的编程语言,是 Flash 的脚本语言,与 JavaScript 相似。 2.3 基于 ArcGISSERVER 实现查询,测距,测面积功能 先进行基于 ArcGIS Server 的地图发布。系统具体实现的功能,界面如图: 图 2-1 系统界面 Fig.2-1 System Interface 41)控件:在本系统中,添加了两个 ArcGIS Server 自带的控件,实现放大缩小功能,以及比例尺功能。 2)测距:在测量距离的时候,重点是实现屏幕坐标与实际坐标之间的转换结束后利用距离的计算公式得出两点间,或多个点之间的距离。公式:s:Number
8、=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 基于 Google Maps API 开发实现基于网页的栅格数据的显示 3.1 Google Maps API 技术 Google Maps API 是 Google 面 向 Web 开 发 者 推 出 的免费编程开
9、放接口,是 Google 自己推出编程 API,只需使用 JavaScript 脚本语言就可以将 Google 地图服务衔接到自己的网页中及利用JavaScript 脚本进行应用开发拓展,给地图添加标注和折线及其他地图图层覆盖物和地图,或者响应用户的点击动作,并显示包含内容信息在内的气泡提示窗口2。 3.2 开发的准备工作 1)JavaScript 技术 JavaScript 是一种解释性的脚本语言,是一种与平台无关的解释性5脚本语言,依赖于浏览器,而与操作系统无关,只要计算机能运行浏览器,而且该浏览器支持 JavaScript,就可以执行脚本。 2) Google Maps API key
10、谷歌公司通过 API 密钥管理地图服务,用户要想使用 Google Map 地图数据和接口函数,需要先注册获得 API 密钥,收到 API 密钥之后,将邮件中附带的密钥代码拷贝到自己的服务中,即可在 div 标签中载入任意需要的地图3。 3.3 基于 Google Maps API 的地图应用实现 1)创建基本的地图 利用 Gmarker.openInfoWindowHtml()方法创建信息窗口,窗口里面可以填写你认为有用的东西(这里面的控件位置通过 Google Maps API的一些程序是可以调整位置的) 。 图 3-1 创建的信息窗口 Fig.3-1 The createing info
11、rmation window 2)为谷歌地图绘制折线并计算折线长度 谷歌地图中 Gpolyline 折线对象和 Gpolygon 多边形对象是用于在地图上显示一段指定颜色位置的折线和多边形的,例如新版中文谷歌地图服务中的乘车路线就是利用 Gpolyline 折线对象实现的。 6图 3-3 绘制折线 Fig.3-3 Draw polylines 3)设定 Gmarker 地标的 Z 轴坐标 有时候因为缩放级别等原因,某些 Gmarker 地标会相互遮挡。这时,在一些实际应用中,谁在前谁在后是比较重要的。这时就需要设定所需的 Z 轴坐标以确定显示顺序。 4.结论 针对网页中矢量数据显示方法,本文提
12、出了基于 ArcGIS Server 这种在网页中显示矢量数据的方法实现矢量地图的点选查询,测距,测面积,精确查询与模糊查询的功能,利用 ArcGIS Server 进行地图数据和属性数据的发布,能够实现地图信息的广泛共享,并可以最大程度地挖掘和发挥空间数据的效用,为用户提供高质量的基于空间信息的服务。 针对网页中栅格数据的显示方法,本文提出了开发 Google Maps API的方法,实现了为谷歌地图绘制折线并计算长度,添加不同形式的信息窗口,和一些地图的辅助功能。同时笔者也发现 Google Maps API 的不足。 1)GIS 的空间分析能力欠缺,直接调用 GoogleMaps API
13、 函数很难实去实现复杂的 GIS 空间分析。 2)数据来源直接依赖 Google 公司,无多时像数据。 3)由于数据分辨率过高,程序开发者应尽量不要在地图上标注地物,尤其是敏感地区,以免带来不必要的麻烦。 参考文献 71 马张宝,董慧君.基于 A rcG IS Server 的 WebG IS 研究与开发A.测绘科学,2009,4(3):113117 2 Yu Guoqiang . Campus WebGIS application based on ArcGIS Server J. Xingtai Vocational and Technical College,2011,03(4):8384. 3 周宇林,付忠良.基于 Google 地图 API 的空间信息发布A.计算机应用,2011,(3):14501452. 作者简介:刘伟(1980-) ,男,辽宁葫芦岛人,工程师,注册测绘师,学士,2003 年毕业于辽宁工程技术大学测绘工程专业,现从事城市测绘及精密工程等相关工作