本论文是一篇城市道路方面论文答辩,关于SVG格式地理元素分层相关毕业论文格式模板范文。免费优秀的关于城市道路及元素及水系方面论文范文资料,适合城市道路论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
摘 要提出了在SVG图形文件上直接进行地理元素分层的思路,对SVG格式地图分层进行了初步设计,提出了分层算法.经验证,算法是有效的.
关 键 词SVG;GIS;地图分层
中图分类号:TP3文献标识码:A文章编号:1671-7597(2014)09-0050-02
Abctract:IproposeanideatoclassifygeologicalelementsintolayersonSVG/XMLformatmaps,preliminarilydesignthewaytoclassify,thealgorithm.Theapplicationverificationshowsthatthealgorithmiseffective.
Keywords:SVG;GIS;Geologicalelementlayer
我们认为地图是由许多图形元素叠加组成的,每一类的图形元素都各具特点.将一些具有一定特征的图形元素划分在一起,就构成了“层”的概念.常见的地图图层有:河流层、道路层、绿地层、河流层、建筑层、行政区规划层等.图层控制的意义就在于,通过控制地图上元素可见性,在不同的缩放效果下,仅显示所需的地理元素,使地图显得详略得当.例如在一般WebGIS的地图中,不同的放大比例下,所显示的行政区划级别会有所不同.在不同的缩放比例下,显示不同的视图,对不同的地理元素进行筛选显示,可以使用户能有更好的体验.
在GIS中,SVG作为一种图像的表现手段越来越多被使用,但还并不普及;基于SVG信息存储和共享交互则更是有待更多研究.图像分层和地理元素查询等功能上,国内有大量研究成果.但国内大多数研究和解决办法仍是基于栅格等模型,SVG本身几乎只被用于图像表现.事实上SVG因其具有的优势,将其使用在GIS中更低的层级上是值得研究和考虑的.
本文结合国家地理元素分层标准以及SVG本身的特点,在SVG本身这一更低的层级上对地图分层,并验证了分层效果.
1
在SVG的树状结构中,
style-attribute等于”style-attribute”
transform等于”transformationmands”>
<!--group’scontenthere-->
将
2图层分类规则及算法
依据《基础地理信息要素分类与代码》中定义,地理元素可以分为定位基础、水系、居民地及设施、交通、管线、境界与政区、地貌和植被等八大类,每个大类下各包含多个小类.例如定位基础大类包含测量控制点和数学基础两小类;水系大类包含河流、沟渠、湖泊、水库、海洋要素、其他水系要素、水利及附属设施八小类等.
由于名称长短不一,为了方便查找和匹配,使用二进制代码来代替复杂的英文字符名称就方便的多.根据图层的层级和个数,我们采用八位二进制代码来标识图层,前四位(0000XXXX)标识一级图层,后四位(XXXX0000)标识二级图层.依据如此编码,地图中最多可包含十六种图层大类,每个图层大类下最多可包含十六种图层小类,也就是说整个地图最多可有二百五十六种图层小类,完全可以满足图层分类的扩展需求.就以第二个大类水系及其以下的七个二级图层为例,前四位编码为0001,七个二级图层的后四位编码为0000至0110.具体表现如下:
等
等
等
SVG的本质是XML,SVG和XML一样是一种典型的层次树状结构,这种结构的文档,定位其某一个部分是比较容易的,因此控制也较容易.在SVG中,通过设置元素的Visibility属性可以实现对于元素的显示或隐藏.Visibility属性有两个值可供选择:默认值visible代表显示,而hidden代表隐藏.在SVG中,元素遵守CSS2的样式继承规则.因此,一般情况下,通过设置指定图层根节点
我们可以对这种特殊情况进行特殊处理,除了设置图层根节点
对于这种情况,需要在关闭图层的时候,使Visibility属性失效.而在打开图层的时候,使visibility属性值变回”visible”.
Visibility等于”hidden”
对于这种情况,正常情况下是不显示该元素的,故无论包含该元素的图层是隐藏还是显示状态,该元素均不显示.
整个地图分层的伪代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19ProcedureLayer(layername)
INPUTlayername:String
Begin
varTargetLayer等于find_node_by_name(layername)
ifTargetLayer.Visibility等于”visible”then
TargetLayer.Visibility等于”hidden”
traverseTargetLayerinlevel-ordersequence
letMbethecurrentunit
IfM.hasAttribute(“Visibility”)andM.Visibility等于“visible”then
M.removeAttribute(“Visibility”)
highlight_node(M)
endif
end-traverse
endif
else
TargetLayer.Visibility等于“visible”
unhighlight_nodes_under_layer(TargetLayer)
endif
End
3分层算法的验证测试
地图分层算法其基本思想是:利用SVG中的组元素
通过以上分析,我们准备了两组数据,分别为Rects组、Circles组和Texts组,每组中包含三个对应的SVG元素.我们在Circles组和Texts组中,预先设定了元素的Visibility
图1分层验证测试文件的显示
属性.通过Rects组可以对通常情况进行测试,通过Circles组可以对特殊情况进行测试.通过Texts组对这两种情况进行综合测试.
通过以上分析,我们准备也测试数据,包含水系(包含河流)、交通(包含城市道路和乡村交道路)、植被与土质(包含城市绿地)三大图层.且对城市道路中的第一条道路没有预设“visibility”值,而第四条道路的visibility等于”hidden”,除此之外的所有图形元素都预设visibility等于”visibl
城市道路方面论文例文,与SVG格式地理元素分层相关论文答辩参考文献资料: