3

境界の一部が重なっている隣接するポリゴン (clampToGround) があります。どちらが上に表示されるかを制御できるようにしたいと思います。これまでのところ、機能することがわかっている唯一の方法は、ポリゴンの目印をスタック順にリストすることです (リストの最後が一番上に表示されます)。ただし、他のロジックに基づいて目印を整理したいと考えており、どのポリゴンが上にあるかを指定するコーディング方法が必要です。

relativeToGround と小さな標高差も使用してみましたが、これにより、ポリゴン塗りつぶしの部分が地形の下に消えてしまうことに注意してください。

4

1 に答える 1

3

<gx:drawOrder>要素 ( Google Earth KML 拡張機能) を指定して、KML 内のポリゴン、ライン、リングを並べ替えることができます。

ドキュメント(以下を参照) では、LineStrings のみが指定されていますが、Lines、LinearRings、および Polygons に対しても機能することに注意してください。以下で言及されている「LineStrings」は、Lines、Rings、Polygons に置き換えてください。ポリゴンの drawOrder サポートは文書化されていませんが、問題として報告されました。

KML ドキュメント:

<gx:drawOrder>

「複数の線ストリングを描画する順序を指定する整数値。最初に描画されたLineStringsは、後の (またはより高い) 描画順のLineStringsによって部分的または完全に隠される可能性が<gx:outerColor>あります。この要素は<gx:outerWidth><LineStyle>デュアル色の線が交差しています。」

これは、Google Earth 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>
于 2013-07-24T22:02:53.517 に答える