kml笔记

KML是一种文件格式,用于在地球浏览器中显示地理数据。KML使用包含嵌套元素和属性的结构,并符合XML标准。所有标记都区分大小写,并且必须与KML参考中列出的完全一样。该参考指出了哪些标记是可选的。在给定元素内,标记必须按照参考中列出的顺序显示。

基本KML文档

最简单的 KML 文档就是可直接在 Google 地球中编写的文档,也就是说您无需在文本编辑器中编辑或创建任何 KML。地标、地面叠加层、路径和多边形都可以直接在 Google 地球中编写。

地标

地标是 Google 地球中最常用的地图项之一。它使用黄色图钉作为图标,在地球表面标记位置。最简单的地标只包含一个 元素,用于指定地标的地点。您可以指定地标的名称和自定义图标,还可以为地标添加其他几何元素。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> 
	<Placemark>
 		<name>Simple placemark</name>
 		<description>Attached to the ground. Intelligently places itself at the height of the underlying terrain.</description>
 		<Point>
 			<coordinates>-122.0822035425683,37.42228990140251,0</coordinates>
		</Point>
 	</Placemark> 
</kml>

该文件分解结构如下:

  1. XML 标头。这是每个 KML 文件的第1行。该行前面不能有空格或其他字符。
  2. KML 命名空间声明。这是每个KML 2.2文件的第2行。
  3. 包含以下元素的地标对象:
    用作地标标签的名称
    附着到地标的“提示框”中显示的说明
    指定地标在地球表面的位置的点 - 经度、纬度和高度(可选)
多边形
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> 
	<Placemark>
 		<name>The Pentagon</name>
 		<Polygon>
 			<extrude>1</extrude>
 			<altitudeMode>relativeToGround</altitudeMode>
 			<outerBoundaryIs>
 				<LinearRing>
 					<coordinates>
 						-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
 					</coordinates>
 				</LinearRing>
 			</outerBoundaryIs>
 			<innerBoundaryIs>
 				<LinearRing>
 					<coordinates>
 						-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
 					</coordinates>
 				</LinearRing>
 			</innerBoundaryIs>
 		</Polygon>
 	</Placemark> 
</kml> 
使用 CDATA 元素

如果您想在 标签内编写标准的 HTML,可将它放在 CDATA 标签内。如果不放在 CDATA 标签内,则必须写上尖括号作为实体引用,以避免 Google 地球错误解析 HTML(例如,符号 > 写为 >,符号 < 写为 <)。这是 XML 的标准功能,不是 Google 地球所特有的。

请考虑具有 CDATA 标签和不具有该标签的 HTML 标记的不同之处。请先查看下面这个具有 CDATA 标签的 :

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> 
	<Document> 
		<Placemark> 
			<name>CDATA example</name> 
			<description> 
				<![CDATA[ <h1>CDATA Tags are useful!</h1> <p><font color="red">Text is <i>more readable</i> and <b>easier to write</b> when you can avoid using entity references.</font></p> ]]> 
			</description> 
			<Point> 
				<coordinates>102.595626,14.996729</coordinates> 
			</Point> 
		</Placemark> 
	</Document> 
</kml> 

下面是不具有 CDATA 标签的 ,这样特殊字符必须使用实体引用:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> 
	<Document> 
		<Placemark> 
			<name>Entity references example</name> 
			<description> &lt;h1&gt;Entity references are hard to type!&lt;/h1&gt; &lt;p&gt;&lt;font color="green"&gt;Text is &lt;i&gt;more readable&lt;/i&gt; and &lt;b&gt;easier to write&lt;/b&gt; when you can avoid using entity references.&lt;/font&gt;&lt;/p&gt; </description> 
			<Point> 
				<coordinates>102.594411,14.998518</coordinates> 
			</Point> 
		</Placemark> 
	</Document> 
</kml>
路径

您可以在 Google 地球中创建多种不同类型的路径,并且可轻松地利用您的数据充分发挥创造力。在 KML 中,路径是用 元素创建的。看一看 Paths 文件夹中的“Absolute Extruded”示例,您就会明白如何用以下代码生成形状:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> 
<Document>
	<name>Paths</name>
 	<description>Examples of paths. Note that the tessellate tag is by default
 set to 0. If you want to create tessellated lines, they must be authored
 (or edited) directly in KML.
 	</description> 
 	<Style id="yellowLineGreenPoly">
 		<LineStyle>
	 		<color>7f00ffff</color>
	 		<width>4</width>
 		</LineStyle>
 		<PolyStyle>
 			<color>7f00ff00</color>
 		</PolyStyle>
 	</Style> 
 	<Placemark>
 		<name>Absolute Extruded</name>
 		<description>Transparent green wall with yellow outlines</description>
 		<styleUrl>#yellowLineGreenPoly</styleUrl>
 		<LineString>
 			<extrude>1</extrude>
 			<tessellate>1</tessellate>
 			<altitudeMode>absolute</altitudeMode>
 			<coordinates> 
 				-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 
 			</coordinates>
 		</LineString> 
 	</Placemark>
 </Document> 
 </kml>

请注意,该代码生成的其实只是高于地面的一条折线。 标签将该折线切成小段,而 标签将其向下延伸到地面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值