1) 模式的应用:用户在开发自己的应用模式时, 需要引用的核心模式, 有时需要引用已有的应用模式,提供了和两个元素来实现模式之间的引用。当引用相同命名空间的模式时, 使用元素当引用不同命名空间的模式时, 使用训元素。
2) 要素集的定义及元素声明
应用模式的所有地理要素集必须在该模式中被声明为全局元素, 即这些地理要素必须是XML模式
3)几何类型定义
定义新的几何类型时, 必须为全局XML元素, 可以从基础几何类型或gml:AbstractGeometryType导出,建议避免从gml:AbstractGeometryType直接导出, 因为这样做只能提供非常有限的信息给GML处理软件,尽可能选择最具体的几何类型。
4)复杂要素建模
复杂要素是由多个要素组成的, 如一个城市包括学校、车站、政府大楼、商业地和体育馆等设施, 这些就组成了城市的基本要素。在GML建模中, 可以将这类要素建模为复杂要素(包含各成员要素), 也可以将这类要素建模为一个具有复杂几何的简单要素。
5) 空间信息的组织
地理要素通常都有几何属性和拓扑属性, 在地理要素建模时, 这两种空间信息的表达有两种方式一是几何属性和拓扑属性分开表达, 二是几何属性嵌人拓扑属性。在具体建模时, 选择哪种表达方式, 取决于应用的目的。
3 KML标记语言规范
Google Earth 客户端支持了大量的显示标签用来创建和保存成KML文档。可以先用文本编辑器修改KML文档,然后在Google Earth客户端中打开看显示的效果,和修改一个HTML文档并在浏览器之中观看效果是一样的。对于更高级的程序,可以使用CGI脚本生成KML文件。
3.1 KML语法规则
和任何程序和脚本语言一样,KML有一些必须遵循的语法规则。
1) 文档结构:
①XML标签必须关闭 ;
②XML标签是大小写敏感的 ;
③对于KML语法,首字母大写的标签是复合标签,否则就是单一标签,在实体和标签介绍之中有更多相关信息;
④XML标签必须正确嵌套 ;
⑤XML文档必须只有一个根标签 ;
⑥对于KML文件,这意味着你可以使用
⑦属性必须用引号包围起来;
⑧CR/LF(回车符)被认为是插入一个新行(在HTML描述之中,被转化为
) ;
⑨XML的注释方法和HTML是一样的 ;
2)标记类型
有两种基本的KML标记类型: 单一标签和复合标签.复合标签的标签名首字母是大写的,而单一标签都是小写的,复合标签能够作为其他标签(单一标签或复合标签)的父元素,而单一标签只能是其他复合标签的子元素,而自身不能包含其他元素。
3)字符串
在KML文件中的任何字符串,例如 name 和 description标签中的值,都可以是utf-8或者Unicode编码的字符串。
4)KML标签列表
Google Earth客户端之中支持的KML基本标签主要有:
3.2 KML示例
这个文件里有一个
4 GML与KML之间的交换
在GML与KML的集成应用中,GML与KML之间的数据转换意义显著。GML作为数据源,需将其转换为KML并在GoogleEarth等客户端软件中显示。同时,客户端更新后的KML数据需要转换为GML在服务器端进行存储。鉴于GML、KML都是基于XML的标记语言,采用XSLT(可扩展样式表转换语言),可有效而直接的实现二者之间的转换。XSLT专门设计用于对XML数据的转换与显示。由于XML文档关注于数据的描述,XSLT则为XML数据的转换提供了技术支撑,为一种XML数据格式向另一种XML数据格式、XML向HTML等的转换提供了有效的转换方法。
可扩展类型语言转换(XSLT)是一种在专门处理软件中,用来为XML文档进行转换的类XML的语言。虽然这个处理涉及到“转换”,但不改变原始文档;而且,一个新的XML文档在源文档内容的基础上被创建出来。然后, 这个新文档可能被处理器串行化(输出)为标准的XML语法或者其他格式,如HTML或KML。XSLT最常用于不同XML格式文档间的转换,或者XML数据到网页,或者GML数据到KML文档的转换。
4.1 GML向KML的转换
针对GML数据,编写向KML转化的XSLT代码,然后采用XSLT转化器即可实现向数据的转换。
对于如下GML示例数据:
xmlns:app="http://www.cdut.edu.cn/app"
xmlns:gml="http://www.opengis.net/gml">
编写如下XSLT转换代码,通过XSLT转换器即可实现上述GML数据向KML的转换。
xmlns:xsl"http://www.w3.org/1999/XSL/Transform"
xmlns="http://earth.google.com/kml/2.2"
xmlns:gml="http://www.opengis.net/gml">
5 小节
作为GIS领域的一个新产物, Google Earth独有的高清晰影像数据是目前其他GIS产品所不能比拟的, 对Google Earth的利用开发还需要我们进行不断的摸索和探索。将空间数据转换成KML 的方法为我们利用Google Earth进行商业开发提供了正确、科学的思路。GML数据如欲通过KML, SVG等方式图形化表达,需进行数据交换。由于GML和KML皆为XML格式数据,XSLT可有效而直接的实现它们之间的交换,本文给出了GML与KML交换的示例。KML的更多应用有待更深入的研究。
参考文献:
[1] http://code.google.com/intl/zh-CN/apis/kml
[2] http://www.opengeospatial.org/standards/kml/ 07-147r2_OGC_KML_2.2.pdf
[3] http: / /www. googleearthhacks. com / Google Earth Hacks Home.
[4] http: / / earth. google. com / Google Earth Home.
[5] 刘祥磊,童小华,马静.一种将GIS矢量数据精确转换成KML的方法.测绘通报,2009年第3期
[6] 刘祥磊,马静.基于ArcEngine的ArcGIS矢量数据到KML文件转换方法研究. 国土资源遥感,2007.9