您可以指定<gx:drawOrder> 元素(即Google Earth KML extension)来对KML 中的多边形以及线和环进行排序。
注意documentation(见下文)仅指定 LineStrings,但也适用于 Lines、LinearRings 和 Polygons。下面提到的任何“LineStrings”只需将其替换为 Lines、Rings 和 Polygons。 Polygons 的 drawOrder 支持未记录在案,但报告为 issue。
KML 文档:
<gx:drawOrder>
"一个整数值,指定绘制多条线的顺序
字符串。首先绘制的 LineStrings 可能会被稍后(或更高)绘制顺序的 LineStrings 部分或完全遮挡。这个元素可能需要在
结合 <gx:outerColor> 和 <gx:outerWidth> 元素
<LineStyle> 双色线交叉时。”
请注意,这仅适用于支持 Google 地球 KML 扩展的客户端。
在下面的示例中,红色多边形绘制在蓝色多边形上。要使蓝色多边形在红色上绘制,请将其 drawOrder 值更改为更高的数字。
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
<Placemark>
<name>Red Polygon</name>
<description>gx:drawOrder=3</description>
<Style>
<LineStyle>
<color>ff000000</color>
</LineStyle>
<PolyStyle>
<color>ff0000ff</color>
</PolyStyle>
</Style>
<Polygon>
<gx:drawOrder>3</gx:drawOrder>
<tessellate>1</tessellate>
<outerBoundaryIs>
<LinearRing>
<coordinates>
14.456906,37.345497,0 14.949769,37.346531,0
14.960918,37.987563,0 14.45089,37.987521,0
14.456906,37.3455,0
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
<Placemark>
<name>Blue Polygon</name>
<description>gx:drawOrder=2</description>
<Style>
<LineStyle>
<color>ff000000</color>
</LineStyle>
<PolyStyle>
<color>ffff0000</color>
</PolyStyle>
</Style>
<Polygon>
<gx:drawOrder>2</gx:drawOrder>
<tessellate>1</tessellate>
<outerBoundaryIs>
<LinearRing>
<coordinates>
14.83626,38.016863,0 14.835535,37.645589,0
15.47025,37.589266,0 15.470457,38.019158,0
14.83626,38.016862,0
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
</Document>
</kml>