收藏 分销(赏)

基于Asp.net、SVG技术的WebGIS研究与实现.docx

上传人:a199****6536 文档编号:3583524 上传时间:2024-07-10 格式:DOCX 页数:9 大小:12.74KB
下载 相关 举报
基于Asp.net、SVG技术的WebGIS研究与实现.docx_第1页
第1页 / 共9页
基于Asp.net、SVG技术的WebGIS研究与实现.docx_第2页
第2页 / 共9页
基于Asp.net、SVG技术的WebGIS研究与实现.docx_第3页
第3页 / 共9页
基于Asp.net、SVG技术的WebGIS研究与实现.docx_第4页
第4页 / 共9页
基于Asp.net、SVG技术的WebGIS研究与实现.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、基于A、SVG技术的WebGIS研究与实现摘 要 本文在分析了用SVG表示地理空间信息的特点后,将SVG应用到WebGIS中,系统研究的主要内容是使用、SVG技术,结合SQL Server后台数据库技术动态的生成SVG图形;利用脚本语言JavaScript和DOM技术,很好的实现了地图的缩放、平移和还原、图层的控制等WebGIS客户端功能。关键词 ; SVG; JavaScript; DOM; WebGIS1 引言 WebGIS是Internet与GIS的结合产物,也是GIS研究的一个重要方向。然而,在Web上发布信息量巨大的地理空间信息必将导致Internet网络传输速度降低,而短小灵活的矢

2、量图形是缓解这个困境的有效手段。SVG就是一种基于XML的矢量图形格式,由于它能良好的将矢量图形展现在Web上,因而SVG可以成为GIS很好的网络载体。过去大部分学者是将svg文件以文本的形式放在客户端的, 当图形比较复杂时,这对客户端的要求就比较高;本文采用SQL Server数据库存储SVG图形数据, 利用调用后台数据库动态生成SVG图形,降低了客户端的要求, 再使用脚本语言JavaScript和DOM技术实现图形的客户端动态交互,取得了良好的效果.2 SVG表示地理空间信息 SVG 是一种文本性的描述语言,提供了17 类80 多种元素,涉及基本图形、文字、图像的显示,以及图形元素动画、超

3、链接、颜色渐变、透明效果、滤镜效果等诸多方面 。因此完全可以利用SVG 来表现地理数据的空间信息和属性信息,其中空间信息按其几何形态用点对象、线对象、区域对象和注记对象来组织 ,而属性信息可用内嵌法和外联法两种编码来描述。 点对象 对于点的表示可以采用填充颜色的圆或矩形,如:circle id=point cx=50 cy=50 r=3 style=”fill: blue” / 以上代码表示以点为圆心,半径为3的蓝色实心圆,”point”是用于标识这个点。 线对象 将两个点连接起来就可以表示一条线,如:line id=”line” x1=0 y1=150 x2=400 y2=150 strok

4、e-width=2 stroke=blue/ 这条代码表示连接点与点之间的一条线,这条线的宽度是2,颜色是蓝色,line是标识这条线的。 区域对象 可以用path或polygon表示,如:polygon points=350,75 379,175 355,175 355,200 345,200,345,175 321,175 style=”fill: blue”/代码表示节点为的多边形,填充颜色是蓝色。 注记对象 可以用text表示属性数据,如:text id=text1 x=30 y=30中国/text 上述代码将在浏览器页面上的点(30,30)处输出文本“中国”,“text1”用于标识这个

5、注记。如图1所示:图1 SVG表示的点、线、区域和注记 属性数据 对于属性数据可采用内嵌法和外联法两种编码方法内嵌法是指将所关联的属性数据与几何数据放在同一个地物分组元素中,由于SVG未提供对属性数据的描述标记,因此在这里自定义一个GeoAttribute元素来标记属性数据,各属性项作为GeoAttribute元素的子元素依次列出。由于GeoAttribute元素是一个自定义元素,因此一般的SVG文档浏览器(如Adobe的SVG View插件)不会对该元素进行处理,当然对于非常简单的属性可以直接利用desc元素表示。 外联法是指属性数据通过地物标识号存储在外部数据库中,为此,地物标识号需要进行

6、进一步的约定,即地物标识号除了以“F”开始外,还包含地物类别号和目标标识号,其中,通过地物类别号可确定与该类地物对应的属性关系表,而通过目标标识号来定位属性表中的记录号。此外,也可直接通过超连接,将属性数据页面(通过技术动态生成)与几何数据联系起来。 3 基于SVG的WebGIS设计模式 WebGIS的实现模型到目前主要有三种:基于客户端;基于服务器端;基于服务器/客户端的混合模式。 其中第三种模式集成了前面两种模式的优点,是目前比较流行的模式 。同理,基于SVG的WebGIS也逃不过这三种模式,一般采用B/S三层体系结构,如图2所示图2 基于SVG技术的WebGIS的体系结构 首先,客户在浏

7、览器中选择一些需要查询的数据,并向服务器端发出请求,该请求通过HTTP协议传送到服务器端。服务器端收到了请求后,就通过数据访问接口去访问相关的数据库,并把从数据库中检索到的数据转换成相应的XML格式、SVG格式和HTML格式的文件返回给客户端,这些功能都是由技术来完成的。对于地图图层控制、缩放、漫游等各种相对简单的GIS功能放在客户端操作,通过DOM和JavaScript进行开发,Web服务器只用于给客户提供数据,这些数据被保存到客户端,这样就不需要每次处理时都访问服务器,极大地减少了网络数据传输量和服务器的负担。客户也可以对原始数据进行分析、提取数据、解析。而对于一些复杂的操作如空间分析、图

8、层编辑等,则需要与服务器进行交互实现。中间件主要完成SVG/XML数据模式和传统的DBMS的数据库模式间转换工作。 4 实例 该系统采用SQL Server存储SVG图形数据,利用调用后台数据库动态生成SVG图形,再使用脚本语言JavaScript和DOM技术实现图形的动态交互,图3是系统的主界面。 地图的缩放、平移和还原 在SV G 中, 通过修改SV G 根元素的view box 属性, 可以改变地图的显示范围。view box 的属性由4个参数组成, 前2 个表示显示范围里最小点的X 坐标和Y 坐标, 即显示范围的顶点,后2 个表示从该点开始, 横、纵方向上分别前进多少个坐标单位, 以构

9、成整个显示范围。例如, view box= 0 0 100 100 , 表示显示范围是从(0, 0) 点开始, 窗口长为100 个坐标单位, 宽为100 个坐标单位。进行基本地图操作时,均可以通过操作view box 得到理想的结果。地图缩放时将后2 个参数分别乘以(除以) 某个倍数就可以得到缩放后的窗口大小; 地图平移时, 后2 个参数不变, 修改前2 个参数, 指定新的起点坐标即可。地图复位时, 将view box 恢复为原始值即可完成复位操作。下面是地图还原功能的代码:function OriginView() RecordViewBox(); var docSVG = _ ment()

10、;var eSVG = ();var originView = 0 0 600 500;(viewBox,originView); 图层的控制 由于在SVG地图浏览器中所操作的SVG地图是以分层的方式进行组织的,在该数据组织模式中,属于一个图层的地理特征数据组织在同一个分组元素下,且该分组元素的ID属性设置为图层的名称,这样对图层的显示控制就比较容易。首先通过图层名称在SVG DOM树中找到对应的分组元素,然后将该元素的style属性值设置为display:none或display:inline,即可达到对图层的关闭与显示,如图4所示。function hilite_elem(checkbox

11、, element_name) var svgobj = HUNNUWebGIS_SVG. getSVGDocument().getElementById(element_name); if (!) / 隐藏图层. (null,style, display:none;fill-rule:evenodd); else / 显示图层. (null,style, display:inline;fill-rule:evenodd); 图3 系统的主界面 简单的属性查询 由于每一块图形区域都是用path路径表示的,可以在path中加入onclick事件,再用javascript语言编写onclick事件

12、代码。当用鼠标单击图形区域时,就会弹出一个对话框,显示该区域的属性信息,如图5所示。 图4 城市区域图层隐藏效果 图5 属性查询 坐标的显示 在每个g图层中加入onmousemove=changeText(evt),通过javascript编写changeText(evt)函数,从而实现图形坐标的显示。function changeText(evt) targetXtext=(XPos); targetYtext=(YPos); var XPos = (); var YPos = (); var newXPosText = (X 坐标 : + XPos); var newYPosText =

13、(Y 坐标 : + YPos);(newXPosText,();(newYPosText,(); 测量距离 当图形中点的坐标捕获到时,测量两点之间的距离就很容易实现了,只需要编写一个函数实现两点之间距离的数学函数式: ,此时得到的距离是只是图形上的距离,如果要获得地物之间的实际距离,还需要除以比例尺。 5 结语 系统使用、SVG技术,结合SQL Server后台数据库技术动态的生成SVG图形;利用SVG、JavaScript和DOM技术很好实现了WebGIS客户端功能,结果表明该方法是可行的.对于更复杂的GIS功能实现,如空间分析、图形编辑等将是笔者以后进一步研究的方向。参考文献1 刘啸,毕永年.基于XML的SVG应用指南Z.北京科海集团公司,2001,1012 W 3C. Scalable Vector GraphicsSpecification. http: /www. w3. org/T R/2003/R EC -SVG11- 20030114/,2003 宋国民,蒋敏等.基于SVG的地理信息可视化表达及网络发布的研究J.信息仿真学报,2006,18:301 冯艳杰.基于SVG的WebGIS实现技术D.武汉:武汉大学,2005 史同广,张子民等.WebGIS实现模式及其技术评价J.山东建筑工程学院学报,2005,20:92

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服