首页 > 其他分享 >WebGIS|GML简介

WebGIS|GML简介

时间:2023-03-22 15:37:11浏览次数:51  
标签:WebGIS gml 标记 简介 元素 示例 GML 属性

GML介绍

GML是基于XML的空间信息编码标准,由OpenGIS Consortium (OGC)提出,得到了许多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。

运用GML,封装的地理数据和图形解释是清楚分离的。如前所述,图形解释格式包括SVG、VML和X3D等。

GML基于文本表示地理信息

文本比较简单、直观,容易理解和编辑。已经在空间信息和三维显示上得到广泛应用的数据格式是虚拟现实建模语言VRML (Virtual Reality Markup Language),现在这些VRML模型元素一样可以在GML上应用。

GML封装了地理信息及其属性

GML基于地理信息抽象模型,即空间实体特征及西宁封装。地理特征(Feature)包括一系列的属性和相应的几何信息,一般来说属性由名字、类型和值组成,几何信息由基本元素如点、线、面、曲线、多边形等组成。目前GML主要局限在二维应用,正扩展到二维半和三维空间以及特征间的拓扑关系。GML允许相当复杂的特征,如特征间的嵌套。例如飞机场由出租汽车道、飞机跑道等组成。

以下是一个封装建筑物的GML例子:

<Feature   fid="142" featureType="school"  Description="A middle school">
        <Polygon name="extent" srsName="epsg:27354">
            <LineString name="extent" srsName="epsg:27354">
                <CData>
                  491888.999999459,5458045.99963358 491904.999999458,5458044.99963358
                  491908.999999462,5458064.99963358 491924.999999461,5458064.99963358
                  491925.999999462,5458079.99963359 491977.999999466,5458120.9996336
                  491953.999999466,5458017.99963357 </CData>
            </LineString>
        </Polygon>
</Feature>

上面只有集合信息,没有实际属性,增加了属性的例子如下:

<Feature   fid="142" featureType="school" >
   <Description>Balmoral Middle School</Description>>
   <Property Name="NumFloors" type="Integer" value="3"/>
   <Property Name="NumStudents" type="Integer" value="987"/>
       <Polygon  name="extent" srsName="epsg:27354">
            <LineString  name="extent" srsName="epsg:27354">
                <CData>
                  491888.999999459,5458045.99963358 491904.999999458,5458044.99963358
                  491908.999999462,5458064.99963358 491924.999999461,5458064.99963358
                  491925.999999462,5458079.99963359 491977.999999466,5458120.9996336
                  491953.999999466,5458017.99963357 </CData>
        </LineString>
    </Polygon>
</Feature>

例子

与任何其他XML文档一样,GML文档由使用标记指定的XML元素的分层排列组成。XML中的标记可以由“<”和“>”字符标识。如果标记仅由‘<’和‘>’字符之间的名称组成,则该标记被视为开始标记。如果标记以字符“</”开头,则将其视为结束标记。以‘/>’字符作为后缀的标记被认为是自动结束标记;这样的标记不需要结束标记来定义元素。

以下是同时具有开始标记和结束标记的示例元素:<name>New York</name>

在上面的示例中,开始标记为<name>,结束标记为</name>

以下是自动关闭标记的示例<name value=“New York”/>

GML允许将元素嵌套在其他元素中。也就是说,GML允许将元素包含在其他元素中。将对象放置在其他对象内部的做法称为嵌套。例如,在下面的清单中,<gml:feature ureMember>元素嵌套了<Tiger:POI>元素,而后者又嵌套了<Tiger:the_geom>元素。还要注意,<Tiger:POI>元素嵌套了<Tiger:Name>元素。

<gml:featureMember xmlns:gml="http://www.opengis.net/gml" xmlns:tiger="http://www.census.gov">
<tiger:poi gml:id="poi.1">
<tiger:the_geom>
<gml:Point srsName="urn:ogc:def:crs:EPSG::4326" srsDimension="2">
<gml:pos>40.689167 -74.044444</gml:pos>
</gml:Point>
</tiger:the_geom>
<tiger:NAME>Statue of Liberty</tiger:NAME>
</tiger:poi>
</gml:featureMember>

在上面的示例中,xmlns:gml=“http://www.opengis.net/gml”是一个声明,声明元素及其嵌套元素中的名称空间http://www.opengis.net/gml应该用前缀’gml‘表示。这使得使用‘gml’前缀限定标记成为可能。命名空间使应用程序可以区分名称相同但类型不同的元素。例如,假设有两个名为“POI”的元素,一个指的是感兴趣的人,另一个指的是感兴趣的地方。读取上面清单的应用程序将确定上面所示的‘POI’元素来自命名空间的http://www.census.gov,因此它描述了感兴趣的地方。

在上面的示例中,Tiger: the_geom元素表示一个特性的属性。该属性由由gml: point元素表示的GML Point几何图形组成。请注意,此gml:point元素的星型标记包括srsName属性。srsName属性的值引用应用于GML点坐标的坐标参考系(CRS)。在这种情况下,代码urn:ogc:def:crs:EPSG::4326引用注册在epsg数据库中的1984年世界大地测量系统(WGS84)基准面。srsDimension指定由CRS表示的尺寸数量和GML点中的位置。

GML Point的位置或坐标由gml: pos元素表示。请注意,本例中只有两个数字,这是因为本例在srsDimension属性中声明它使用二维坐标。如果该示例包括三维(3D)坐标,那么srsDimension属性的值应该是3,并且gml: pos元素中应该有三个数字。三维坐标的典型用例是将坐标表示为纬度、经度和高程。

在上面的示例中,只显示了一个非几何属性,即Tiger:Name元素。要素类型中可以包含任意数量的特性,前提是它们是在XML文档使用的应用程序模式中定义的。

现在,让我们考虑一种情况,其中我们希望表示一个线性要素,例如道路。下面的列表显示了一个线性要素的示例。

<ogr:featureMember xmlns:ogr="http://ogr.maptools.org/" xmlns:gml="http://www.opengis.net/gml">
<ogr:roads gml:id="roads.1">
<ogr:geometryProperty>
<gml:LineString srsName="urn:ogc:def:crs:EPSG::4326" srsDimension="2"><gml:posList>54.9906466 -2.5773558 54.9908714 -2.5767192 54.9909405 -2.5764712 54.9909618 -2.5764044 54.9909743 -2.5761903 54.9909482 -2.5760361 54.990899 -2.575843 54.9908284 -2.5757244 54.9905421 -2.5754333</gml:posList></gml:LineString>
</ogr:geometryProperty>
<ogr:osm_id>146830031</ogr:osm_id>
<ogr:highway>residential</ogr:highway>
<ogr:name>Hadrian's Crescent</ogr:name>
</ogr:roads>
</ogr:featureMember>

请注意,在上面的示例中,空间特性称为ogr: geometryProperty,并且该特性由gml: LineString几何图形组成。与上例中一样,CRS为urn:ogc:def:crs:EPSG::4326,沿线串的位置以二维坐标表示。上面的示例具有三个非几何图形属性,即ogr: osm_idogr: Highwayogr: namegml: posList元素将线条顶点的坐标表示为空格分隔的数字数组。

在希望表示面要素(如足球场)的情况下,我们使用名为gml: Polygon的几何图形属性。这种类型的几何体属性嵌套了gml: External元素,而后者又嵌套了gml: LinearRing几何体。在下面的示例中,gml: posList元素中的第一个坐标等同于同一个gml: posList中的最后一个坐标。还要注意,gml: posList元素将坐标表示为空格分隔的数字数组。

<ogr:featureMember xmlns:ogr="http://ogr.maptools.org/" xmlns:gml="http://www.opengis.net/gml">
<ogr:landcover gml:id="landcover.1">
<ogr:geometryProperty><gml:Polygon srsName="urn:ogc:def:crs:EPSG::4326" srsDimension="2"><gml:exterior><gml:LinearRing><gml:posList>51.556272 -0.2803943 51.5562758 -0.2787397 51.5556539 -0.278736 51.5556501 -0.2803906 51.556272 -0.2803943</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></ogr:geometryProperty>
<ogr:osm_id>116539074</ogr:osm_id>
<ogr:layer>4</ogr:layer>
<ogr:sport>soccer</ogr:sport>
<ogr:leisure>pitch</ogr:leisure>
<ogr:surface>grass</ogr:surface>
<ogr:lit>yes</ogr:lit>
<ogr:name>Wembley Stadium Soccer Field</ogr:name>
</ogr:landcover>
</ogr:featureMember>

请注意,此功能中的任何空心区域都可以使用gml: External元素中的gml: Internal元素表示。但是在本例中,它是一个足球场,所以它没有任何空心区域。

标签:WebGIS,gml,标记,简介,元素,示例,GML,属性
From: https://www.cnblogs.com/tangjielin/p/17244152.html

相关文章

  • Node-RED简介与Windows上安装、启动和运行示例
    场景Node-RED简介Node-RED是IBM公司开发的一个可视化的编程工具,以满足他们快速连接硬件和设备到Web服务和其他软件的需求,很快发展成为一种通用的物联网编程工具。Node-RED是......
  • BI开源产品简介
    Supersethttps://github.com/apache/incubator-superset/pulse/monthlyhttp://superset.apache.org/Redashhttps://github.com/getredash/redash/pulse/monthlyhttps://reda......
  • kafka简介
    Kafka特点Kafka已被多家不同类型的公司作为多种类型的数据管道和消息系统使用。行为流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。包......
  • 消息队列简介
    什么是消息队列消息队列是一种异步的服务间通信方式,适用于无服务器和微服务架构。消息在被处理和删除之前一直存储在队列上。每条消息仅可被一位用户处理一次。消息队列......
  • Android开发-Android操作系统简介
    01.  系统简介1.1 Android名词Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、......
  • redis-SpringCache-简介
    整合&体验@Cacheable引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency>......
  • Spring Http Invoker使用简介
    [color=red]SpringHTTPinvoker是spring框架中的一个远程调用模型,执行基于HTTP的远程调用(意味着可以通过防火墙),并使用java的序列化机制在网络间传递对象。这需要在......
  • X60(L415)钢板简介、X60执行标准、X60期货订轧
    一、X60(L415)管线钢简介:L415就是X60,X60属于管线钢,钢的牌号表示方法:L:代表输送管线Line的首位英文字母,415:代表钢板规定的屈服强度值,X:代表管线钢,60:代表钢板规定的屈服强度值,单......
  • 15CrMo钢板简介、15CrMo期货订轧、15CrMo执行标准
    一、15CrMo钢板简介:15CrMo钢板定为于合金结构钢板,15CrMo钢板生产执行标准为;WYJ舞阳专用技术条件。由于钢中含有较高含量的Cr、C和其它合金元素,钢材的淬硬倾向较明显,焊接性......
  • MongoDB简介及SpringBoot整合
    一、概述MongoDB中的记录是一个文档,它是一个数据结构组成字段和值对。MongoDB文档类似于JSON。对象。字段的值可能包括其他文档、数组、和文档数组:数据库(Database):和关系型......