1 KML文件的定义及其在GOOGLE地图浏览器中的地位
基于文件的数据交换很早以来就是软件数据交换的主要方式之一。而KML文件就是一种在GOOGLE地图浏览器中用于交换地理数据的文件。它基于XML,并定义了一些TAG用于规定地理数据的显示方式。KML可用于定义的地理特征包括地点、描述、叠层、路径和多边形等。KML的用途主要有:
(1)指定地点的图标和注记;
(2)为每一个地理特征创建不同的视角位置;
(3)在地球上叠放图像;
(4)指定地理特征显示的样式;
(5)编写地理特征的HTML描述,包括超链接和内嵌图像;
(6)使用文件夹对地理特征进行群组;
(7)KML文件的动态获取及修改;
(8)显示三维地物;
2 基本格式
基本格式的KML文件是指可以直接由Google Earth创建的KML文件,它包括地点标记、叠层、路线和多边形。下面分别介绍。
2.1 地点标记(Placemarks)
地点标记是Google Earth中最常用的地理特征,它使用一个黄色的图钉在地球表面标记一个位置。一个简单的地点标记的KML代码如下所示:
at the height of the underlying terrain.
它包括以下几个部分:
(1)XML头:
(2)KML命名空间定义:
(3)地点标记对象,包括:
名称(name):用于对地点标记进行注记;
描述(description):对地点标记进行描述,“气球(ballon)”中的显示内容;
点(Point):指定地点标记的位置。
2.2 使用HTML描述地点标记
有两种方式来使用HTML描述地点标记,一种是直接在
Text is more readable and
easier to write when you can avoid using entity
references.
]]>
当然,还有一种使用转义字符来表示特殊符号的方式,这就不需要CDATA元素,如下所示:
<h1>Entity references are hard to type!</h1>
<p><font color="green">Text is
<i>more readable</i>
and <b>easier to write</b>
when you can avoid using entity references.</font></p>
2.3叠层
叠层是覆盖在地球表面的图像。一个简单的叠层KML代码如下所示:
在
Google Earth支持JPEG,BMP, GIF, TIFF, TGA和PNG等格式的图像。
2.4 路线
在KML里面,路线由
-112.2550785337791,36.07954952145647,2357
-112.2549277039738,36.08117083492122,2357
-112.2552505069063,36.08260761307279,2357
-112.2564540158376,36.08395660588506,2357
-112.2580238976449,36.08511401044813,2357
-112.2595218489022,36.08584355239394,2357
-112.2608216347552,36.08612634548589,2357
-112.262073428656,36.08626019085147,2357
-112.2633204928495,36.08621519860091,2357
-112.2644963846444,36.08627897945274,2357
-112.2656969554589,36.08649599090644,2357
2.5 多边形
多边形由
-77.05788457660967,38.87253259892824,100
-77.05465973756702,38.87291016281703,100
-77.05315536854791,38.87053267794386,100
-77.05552622493516,38.868757801256,100
-77.05844056290393,38.86996206506943,100
-77.05788457660967,38.87253259892824,100
-77.05668055019126,38.87154239798456,100
-77.05542625960818,38.87167890344077,100
-77.05485125901024,38.87076535397792,100
-77.05577677433152,38.87008686581446,100
-77.05691162017543,38.87054446963351,100
-77.05668055019126,38.87154239798456,100
KML例子:
http://code.google.com/apis/kml/documentation/kml_tut.html
KML2.1的新特性
http://code.google.com/apis/kml/documentation/kml_21tutorial.html
KML2.1参考
http://code.google.com/apis/kml/documentation/kml_tags_21.html