【问题标题】:KML Layer OrderingKML 图层排序
【发布时间】:2019-04-08 14:35:20
【问题描述】:

我已经从 esri Shapefiles 创建了 KML 文件,以便在 google earth 中使用。问题是当我引入两个文件时,底部的多边形集将显示顶部多边形上方的线条,隐藏了该区域的一部分。

我看到人们提到了一些关于代码的东西,但我希望有人可以提供不同的非编码解决方案,或者更好地解释这段代码的去向和工作原理。

这对我来说没有意义。

我已尝试更改两个图层的位置,但任何方式都不会将较小的多边形集带到顶部。

我正在寻找的是在顶部完全可见的较小的多边形线集,而较大的多边形设置在第一个后面

【问题讨论】:

    标签: kml google-earth


    【解决方案1】:

    如果您希望一个多边形始终位于另一个多边形之上,并且两者都是clampedToGround,那么应该使用gx:drawOrder 属性。

    请注意,文档(见下文)仅指定 LineStrings,但也适用于 Lines、LinearRings 和 Polygons。下面提到的任何“LineStrings”只需将其替换为 Lines、Rings 和 Polygons。对 Polygons 的 drawOrder 支持没有记录,但在 Google 地球中实现了。

    KML 文档:

    <gx:drawOrder>

    "一个整数值,指定绘制多条线的顺序 字符串(或多边形)。首先绘制的 LineStrings 可能是部分或全部 被 LineStrings 遮蔽,绘制顺序较晚(或更高)。这个元素可能 需要与<gx:outerColor><gx:outerWidth> 一起使用 当双色线相互交叉时,<LineStyle> 中的元素。”

    在下面的示例中,红色多边形绘制在蓝色多边形上。要使蓝色多边形在红色上绘制,请将其 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 2021-04-07
      • 2016-01-15
      • 2013-02-05
      • 2012-10-13
      • 2012-06-03
      相关资源
      最近更新 更多