3

您好,我正在编写一些 KML,以及何时按顺序创建多几何体

地标 A 地标 B

我不能选择 PlMark A 因为 B 更大,但是当我有

地标 B 地标 A

是的,因为我认为 A 更小而且它是最后一个被抓住的,我的问题是我不能按顺序放置地标,Kml 中有任何选项可以选择所有元素。

谢谢。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Document>
<StyleMap id="StyF1"><Pair><key>normal</key><Style><IconStyle><Icon></Icon></IconStyle><PolyStyle><color>7d0000ff</color></PolyStyle></Style></Pair><Pair><key>highlight</key><Style><IconStyle><Icon></Icon></IconStyle><PolyStyle><color>7aFFFF8C</color></PolyStyle></Style></Pair></StyleMap>
<StyleMap id="StyU1"><Pair><key>normal</key><Style><IconStyle><Icon></Icon></IconStyle><PolyStyle><color>7d0000ff</color></PolyStyle></Style></Pair><Pair><key>highlight</key><Style><IconStyle><Icon></Icon></IconStyle><PolyStyle><color>7aFFFF8C</color></PolyStyle></Style></Pair></StyleMap>

<Placemark>
    <name>A</name>
    <description>
    </description>
    <visibility>1</visibility>
    <tessellate>1</tessellate>
    <styleUrl>#StyU1</styleUrl>
    <MultiGeometry>
        <Point>
            <coordinates>-0.18806,39.78366</coordinates>
        </Point>
        <Polygon>
        <outerBoundaryIs>
            <LinearRing>
                <coordinates>-0.18806,39.78261
                -0.18701,39.7844286533479
                -0.18911,39.7844286533479
                -0.18806,39.78261</coordinates>
            </LinearRing>
        </outerBoundaryIs>
        </Polygon>
    </MultiGeometry>
</Placemark>

<Placemark>
    <name>B</name>
    <description>
    </description>
    <visibility>1</visibility>
    <tessellate>1</tessellate>
    <styleUrl>#StyF1</styleUrl>
    <MultiGeometry>
        <Point>
            <coordinates>-0.18806,39.78501</coordinates>
        </Point>
        <Polygon>
        <outerBoundaryIs>
        <LinearRing>
            <coordinates>-0.18806,39.78261
            -0.18566,39.7867669219382
            -0.19046,39.7867669219382
            -0.18806,39.78261</coordinates>
            </LinearRing>
        </outerBoundaryIs>
        </Polygon>
    </MultiGeometry>
</Placemark>

</Document></kml>
4

1 回答 1

3

如果您想将一条线或多边形排序在另一条之上,您可以使用 <gx:drawOrder> 元素。

具有较高 <gx:drawOrder> 值的要素绘制在具有较低值的要素之上,例如,如果您对 A 使用 2 的 drawOrder,为 B 使用 1,则 A 将绘制在 B 之上。换句话说,具有首先绘制较低的 drawOrder 值。

不要忘记将xmlns:gx="http://www.google.com/kml/ext/2.2"声明添加到 kml 标记并注意文档说它仅适用于 LineStrings 但也适用于 Polygons和线性环。

    <?xml 版本="1.0" 编码="UTF-8"?>
    <kml xmlns="http://www.opengis.net/kml/2.2"
     xmlns:gx="http://www.google.com/kml/ext/2.2">
     ...
      <地标>
        <name>一个</name>
        <多几何>   
            <点>
                <坐标>-0.18806,39.78366</坐标>
            </点>
            <多边形>
                <gx:drawOrder>2</gx:drawOrder>
                ...
            </多边形>
         </多几何>
      </地标>

      <地标>
        <name>B</name>
        <多几何>
            <点>
                <坐标>-0.18806,39.78501</坐标>
            </点>
            <多边形>
                <gx:drawOrder>1</gx:drawOrder>
                ...
            </多边形>
         </多几何>
      </地标>

参考:https ://developers.google.com/kml/documentation/kmlreference#gxdraworder

于 2012-09-28T16:43:21.880 回答