我可以设置高度模式或全局拉伸(仅一次)吗?

Can I set the altitude mode or extrude globally (only once)?

我想用 extrude/altitude absolute 我的积分。我可以按如下方式执行此操作,但我必须对每个点(更大的 kml 文件)重复此操作。

想知道我是否可以在全局范围内仅设置一次? 作为 <Point>.

的一种默认值
<Placemark><Point><altitudeMode>absolute</altitudeMode><extrude>1</extrude><coordinates>9.38916000,49.83081000,8457.590000</coordinates></Point><name>1: 18:53:29.477 </name> .... </Placemark>

属性 extrudealtitudeMode 仅在给定几何的上下文中定义,KML 提供可以定义的全局设置全局和继承。

减小 KML 文件大小的一种方法是将 KML 文件添加到 KMZ 文件,以便压缩文件。

KML有继承和重用的概念来消除冗余元素如下:

1.共享样式

KML 具有共享样式的概念,可以定义一次并在多个地标中重复使用。样式是全局的,它在 KML 文件中的任何地方都可以通过其 "id".

引用

2。继承

为了方便构建 KML 要素层次结构,以下四个元素的值由要素层次结构的所有 Placemark、Folder 和 Document 成员继承。有关详细信息,请参阅 KML 2.2 标准(第 9.6.2 节)。

  • atom:作者
  • 原子:link
  • kml:地区
  • kml:AbstractTimePrimitiveGroup(例如,TimeSpan 或 TimeStamp)

例如,如果文档或文件夹具有区域元素,则该区域将应用​​于所有子文档、文件夹和地标,除非子项明确定义了自己的区域。

Jason 是正确的,没有办法在 KML 中的一个地方设置 altitudeMode 或拉伸并在所有几何图形中共享它,而是需要在每个几何图形标签(点、线串、多边形等)中应用它.

如果您在支持它的文本编辑器中 hand-editing KML 文件,那么一个相对快速的方法是使用查找和 Replace-All 工具。例如,您可以使用:

查找:<Point>

替换为:<Point><extrude>1</extrude><altitudeMode>absolute</altitudeMode>

如果已经设置了另一个高度模式(例如:clampToGround),那么您可以做一些更简单的事情,例如:

查找:<altitudeMode>clampToGround</altitudeMode>

替换为:<extrude>1</extrude><altitudeMode>absolute</altitudeMode>

另外请注意,在您的示例 KML 中,根据 KML 架构,您有几个标签的顺序错误。 <name> 标签应该在 <Placemark> 之后,<extrude> 应该在 <altitudeMode> 之前。 Google 地球将忽略大多数此类问题,并仍显示 KML 文件,但最好遵循架构中的标记顺序以避免异常错误。您可以在 KML 参考中找到正确的顺序,例如:

地标:https://developers.google.com/kml/documentation/kmlreference#placemark

和点:https://developers.google.com/kml/documentation/kmlreference#point