地理信息从 SHP格式向 SVG格式的转换
2011-09-19蒋红燕杨哲海
蒋红燕,杨哲海
(1.信息工程大学测绘学院,河南郑州 450052;2.海军海洋测绘研究所,天津 300061;3.沈阳军区联勤部指挥自动化工作站,辽宁沈阳 110005)
地理信息从 SHP格式向 SVG格式的转换
蒋红燕1,2,杨哲海3
(1.信息工程大学测绘学院,河南郑州 450052;2.海军海洋测绘研究所,天津 300061;3.沈阳军区联勤部指挥自动化工作站,辽宁沈阳 110005)
经过分析提出将 SHP格式的地理数据转换为 SVG的思路和转换模型,并对若干关键技术进行重点阐述。最后通过试验对转换模型进行验证。
地理信息;SHP;SVG;格式转换
一、引 言
Esri公司在地理信息系统应用领域推出的ArcInfo、ArcView等系列产品虽然能够基本满足各类地理信息用户的应用需求,但这些软件过于庞大、造价昂贵,对系统配置的要求较高,因而,在实际应用中会受到一定限制。近些年来,随着地理信息应用领域的不断拓展和网络技术的迅速发展,一种基于 XML的可缩放矢量图形 (scalable vector graphics,SVG)技术受到越来越多的关注。与ArcInfo相比,利用 SVG技术开发WebGIS系统,具有地图制作周期短、开发成本低、表现形式灵活等诸多优点。因而如果能够实现 ArcInfo的数字产品向 SVG格式的转换,不仅能够保留原系统强大的地理信息网络功能,而且还能够克服原系统笨重、操作烦琐等若干缺点。本文对 SHP文件向 SVG格式的转换技术进行了研究,并通过相关地区的试验数据对转换模型进行了验证。
二、SHP文件格式和 SVG标准简介
1.SHP文件构成
SHP文件是 ArcInfo的外部交换格式。一个完整的 SHP由若干个前缀相同,而后缀不同的文件组成。其中有四个文件是必不可少的,分别为 PRJ文件、SHP文件、SHX文件和 DBF文件[1]。
1)PRJ文件:PRJ是投影文件,包含着相关图幅的投影信息。该文件决定着是否能将空间目标精确地定位到相应的位置,因而投影文件是进行转换格式所要考虑的首要因素。
2)SHP文件:SHP文件是 SHP的主文件,记录着图元的空间信息,由文件头和文件体两部分组成。其中文件头记录了文件代码、长度、版本、图元边界等重要信息,文件体记录了图形的形状信息(点、线或面)和该图形的空间位置信息。
3)SHX文件:SHX文件是 SHP的索引文件,记录着图元在 SHP文件内的位置信息,同样由文件头和文件体两部分组成。
4)DBF文件:DBF是属性文件,记录着点、线或面图元的属性信息。
2.SVG标准简介
SVG是万维网联盟 (world wide web consortium,W3C)为适应 InternetWeb应用的飞速发展需要而制定的一套基于 XML的二维可缩放矢量图形标准。在语法上,SVG具有以下要求[2]:
1)所有的标记都有开始标记和结束标记,否则必须注明为空标记。空标记用反斜杠结束,如〈path/〉。
2)标记必须正确嵌套。如果一个标记在另一个标记中开始,那么它也必须在该标记中结束。
3)文档必须只有一个跟。一个〈SVG〉〈/SVG〉元素包含了一个 SVG文档的所有内容。
4)文档应以 XML声明〈?xml version=″1.0″?〉开始。
5)文档应包含一个 DOCTYPE声明,该声明指向一个允许元素的列表。
3.基于 SVG的空间数据组织
SVG认为现实世界中的地理实体可划分为简单地理实体与复杂地理实体两大类。其中简单地理实体还可根据其几何特征进一步分为点状实体、线状实体、面状实体等;而复杂地理实体则由多个简单地理实体构成。在 SVG文档中,地理实体的图形通过 SVG规定的 6种基本图形元素来表示,即圆形 (circle)、椭圆 (ellipse)、矩形 (rectangle)、线(line)、折线 (polyline)、多变形 (polygon)。
此外,SVG通过 text元素表示注记,通过 image元素表示栅格实体。
三、转换流程及关键技术
转换的流程如图 1所示,主要包括原始文件信息的获取、地图空间数据和属性数据的处理、SVG文件生成等步骤。转换过程所用到的关键技术包括如下几个部分。
图 1 转换流程示意图
1.文件读取与处理
首先是进行原始文件的读取。对于 PRJ文件,需要读取 PROJCS、GEOGCS、DATUM等关键字信息,以获取地图投影方式、坐标系统、基准面、椭球体、移位信息等若干重要参数。对于 SHP文件和SHX文件,分别读取文件头和文件体,获取各地图要素的空间位置信息。地理要素的属性信息从DBF文件获取。
对于读取的文件信息,需要将它们按照一定的格式加以存储并进行管理,以备后续转换模块对地图投影等控制信息和地理要素等实体信息的调用需求。对于面状要素,为了描述其边界信息,通常需要根据原始文件所包含线状要素的拓扑关系计算生成。此外,SHP文件和 SHX文件的存储位序包括高位和低位两种形式,因而需要转换过程能够进行字节存储位序的转化。在本模块中,分别编写了如下函数
2.坐标系统转换
坐标系统转换是整个转换过程的关键环节之一,因为它决定着转换结果空间位置的准确程度,这对于图上量算和定位操作具有决定性的作用。在 SHP文件和 SVG文件中,两者的坐标系统并不相同。SHP文件的坐标是基于一定的投影方式和坐标系统,按照地图分幅等相关信息进行描述的,其提供形式是经纬度坐标或是平面直角坐标。而SVG文件的坐标系是基于平面的,原点在初始视口(屏幕)的左上角,X轴的正向朝右,Y轴的正向朝下。为了实现在 SVG屏幕上正确显示图形数据,就必须把经纬度坐标数据或平面直角坐标数据转换为 SVG坐标数据。对于当前最常用的高斯投影坐标系统,其转换公式如下[3]
式中,X、Y为点的平面直角坐标系的纵、横坐标;φ、λ为点的地理坐标,以弧度计,λ从中央经线起算;S为纬度φ处的卯酉圈曲率半径;η=e′2cos 2φ,其中e′2=(a2-b2)/b2为地球的第二偏心率 ,a、b则分别为地球椭球体的长、短半轴。
3.方里网内插
在我国基本比例尺地形图上,为了便于图上指示目标、量测距离和方位,应在地形图上按一定的整千米数加绘平行于直角坐标轴的方里网线。然而对于原始数据,通常不包含有方里网的直接信息,而是需要根据图幅的边界数据来进行内插。插值的过程包括两个步骤:①根据图廓点的坐标和地图比例尺来确定方里网线的数量和属性值,即该方里网线所代表的平面直角坐标值;②计算各网线与图幅边界的交点,并根据适当的判别准则来确定各方里网线的起始点和结束点。
在计算方里网线与图幅边界的交点时,由于图幅边界在地图平面上的投影为曲线,因此方里网线与边界的求交会变得较为复杂,各方里网线的始末点就会变得难以判断。笔者所采取的方法是计算单条方里网线与图廓的所有交点 (数量可能多于两个),对于所有的交点按照从左至右 (或从上至下)的方向排序,按照始点与末点交替的方式判定方里网线的端点。比如,某方里网线与图廓有四个交点 ,分别标为:点 1、点 2、点 3、点 4,则点 1和点 2之间的连线、点 3和点 4之间的连线为所求方里网线。
4.地理要素标号处理[4-5]
SHP文件中有很多专有的地图符号,如码头、铁路、水塘等,而在 SVG文件中没有这些图形元素可以采用,因而必须利用相关技术实现各类符号的抽象显示。在转换过程中,对于点状符号,可以认为其由不同形状的几何图形单元组合构成,根据SVG提供的6种基本图形元素,能够很好地构成点状符号的基本图元描述;对于线状符号,依据符号的分解特性和对称关系,将其分为普通的线状符号(如等高线、单线河)和模式化的线状符号 (如高速公路、铁路 ),并利用 SVG提供的〈polyline〉、〈path〉等元素实现线状标号的显示;对于面状符号,根据其填充样式,设置 SVG关键字〈pattern〉的属性,然后在渲染该填充区域时引用该模式,即可实现面状地理要素的显示。
5.图层生成与管理
对于一幅地图文件,通常根据地物类别将其分层组织和管理,也就是原始数据包含多个 SHP文件,分别对应不同的地物类别。在 SVG中也有类似的概念。SVG利用元素〈g〉将图形元素分类成组,这样每个图形元素就多了一个图层属性描述信息。在转换过程中,可以将 SHP图元对象和 SVG图形元素进行比较,根据元素〈g〉所记录的图层标示符,将同一图层的对象放在同一个元素中。同时考虑到数据管理的便捷性,规定一个图层只能包含一类地理实体,这样整个图层会按地理实体的类型划分为 5类:即点图层、线图层、面图层、注记层和栅格层,最终实现在SVG中方便有效地管理地图数据的目的。
四、试验与分析
为了验证转换模型的正确性,笔者运用 Visual C++技术对该模型进行了试验。原始数据选用某地区 1∶50 000的居民地层 SHP文件,试验环境参数如表 1所示。
转换结果如图 2所示。
图 2(a)所示是某地区 SHP文件在 ArcMap下的显示效果,图 2(b)所示是转换后的同一地区 SVG格式文件在 IE6.0中的显示效果图。从图 2中可以看出,经过转换的 SVG文件与原始 SHP文件具有相同的显示效果,验证了转换模型的正确性。
表 1 试验环境参数
图 2 地图数据转换前后效果对比
五、结束语
本文分析了 SHP文件和 SVG文件的特点及数据结构,建立了 SHP文件到 SVG文件的转换模型,并用 Visual C++开发技术实现了某地区 SHP文件到 SVG文件的转换,对转换模型的可行性进行了验证。该转换模型的建立克服了 SHP格式的地理数据对运行环境的依赖,转而为获取 SVG地图数据提供了一种新的有效途径,有利于更好地推动 SVG在WebGIS中的应用,因而具有一定的实用价值和广阔的应用前景。
[1]Esri.Esri Shapefile Technical Description[M].New York:Esri,1998.
[2]李东,谢芳勇,叶友.WebGIS应用中 Map Info文件到SVG的转换 [J],计算机应用研究,2009,26(1):175-178.
[3]陈述彭,鲁学军,周成虎.地理信息系统导轮 [M].北京:科学出版社,2000:69-73.
[4]吴功和,夏锦红.基于 SVG模版的网络地理信息服务应用研究 [J].测绘科学技术学报,2006,23(5):381-383.
[5]和万里,崔铁军,刘兴科,等.基于 SVG的地图符号设计与实现 [J].测绘科学技术学报,2006,23(3):208-214.
Format Conversion of Geographic Information From SHP to SVG
J IANG Hongyan,YANG Zhehai
0494-0911(2011)02-0073-03
P208
B
2010-08-04
蒋红燕 (1977—),女,甘肃甘谷人,硕士生,工程师,主要从事地理信息系统开发与应用研究工作。