我可以设置高度模式还是在全球范围内(仅一次)



我想在我的点上使用挤出/高度 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>

jason是正确的,没有办法在kml中的一个位置设置AltitudeMode或挤出并在所有几何形状上共享它,而是需要在每个几何标签中应用它(点,Linestring(,多边形等(。

如果您在支持它的文本编辑器中手工编辑的kml文件,则是一种相对较快的方法,就是使用查找和替换所有工具。例如,您可以使用:

查找:<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 Earth会忽略大多数此类问题,并且仍然显示KML文件,但是最好按照模式中的标签顺序遵循异常错误。您可以在KML参考中找到正确的订单,例如:

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

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

属性extrudealtitudeMode仅在给定的几何形状的上下文中定义,kml dos not 提供了可以在全球定义并继承的全局设置。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</p>

使kml文件大小较小的一个选项是将kml文件添加到kmz文件中,以便将文件压缩。

kml具有继承和重用以消除冗余元素的概念:

1。共享样式

kml具有共享样式的概念,可以定义一次并在muiltiple placemark中重复使用。样式是全局的,它可以通过其" ID"在kml文件中的任何地方引用。

2。继承

为了方便构建KML特征层次结构,以下四个元素的值均由特征层次结构的所有PlaceMark,文件夹和文档成员继承。有关更多详细信息,请参见KML 2.2标准(第9.6.2节(。

  • 原子:作者
  • 原子:链接
  • kml:区域
  • kml:Abstract Time -PrimitiveGroup(例如,时间板或时间戳(

例如,如果文档或文件夹具有区域元素,则该区域适用于所有儿童文档,文件夹和placemarks,除非孩子明确定义其自己的区域。

最新更新