我想在自己的点上使用拉伸/高度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>
答案 0 :(得分:1)
属性extrude
和altitudeMode
仅在给定几何的上下文中定义,而KML 不提供可以全局定义和继承的全局设置。 / p>
减小KML文件大小的一种方法是将KML文件添加到KMZ文件中,以便对该文件进行压缩。
KML具有继承和重用的概念,用于消除冗余元素,如下所示:
1。共享样式
KML具有共享样式的概念,该样式可以一次定义并在多个地标中重复使用。样式是全局样式,可以在KML文件的任何位置通过其“ id”引用。
2。继承
为方便构造KML功能层次结构,以下四个元素的值由功能层次结构的所有地标,文件夹和文档成员继承。有关更多详细信息,请参见KML 2.2标准(第9.6.2节)。
例如,如果文档或文件夹具有Region元素,则该Region应用于所有子文档,文件夹和地标,除非该子对象明确定义了自己的区域。
答案 1 :(得分:1)
Jason是正确的,因为无法在KML中的某个位置设置heightMode或拉伸,并在所有几何图形之间共享它,而是需要在每个几何图形标签(Point,LineString,Polygon等)中应用它。
如果要在支持KML的文本编辑器中手动编辑KML文件,一种相对快速的方法是使用“查找并全部替换”工具。例如,您可以使用:
查找:<Point>
替换为:<Point><extrude>1</extrude><altitudeMode>absolute</altitudeMode>
如果已经设置了另一个海拔模式(例如:lampingToGround),则可以做一些更简单的事情,例如:
查找:<altitudeMode>clampToGround</altitudeMode>
替换为:<extrude>1</extrude><altitudeMode>absolute</altitudeMode>
此外,请注意,在您的示例KML中,每个KML架构中的标签都有错误的顺序。 <name>
标记应位于<Placemark>
之后,而<extrude>
应位于<altitudeMode>
之前。 Google Earth会忽略大多数此类问题,但仍会显示KML文件,但最好遵循架构中的标记顺序,以避免出现异常错误。您可以在KML参考中找到正确的订单,例如:
地标:https://developers.google.com/kml/documentation/kmlreference#placemark
并指向:https://developers.google.com/kml/documentation/kmlreference#point