12

我需要能够将具有给定高度的多边形对象放入位于地面上方的 KML 中。我希望将空域信息显示到 KML 中,并且每个空域都有低海拔和高海拔值。

到目前为止,我能做的最接近的事情是创建两个具有不同高度的多边形来显示空域,但我无法连接多边形来显示中间区域。

谢谢你的帮助

4

2 回答 2

7

您有两个选择,您可以创建空气空间的 collada 模型,或定义每个面的一系列多边形对象,

可以定义垂直方向的多边形,注意你的方向(顺时针或逆时针),因为这会影响样式,从底部查看多边形会使它稍微变暗

对于简单的矩形形状,您需要 6 个面

下面的 kml 是五边形示例的修改版本,其中一个垂直面已填充,其他 4 个垂直面需要完整,但您会明白的。

    <?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
    <name>pm1.kml</name>
    <Style id="poly">
        <LineStyle>
            <color>f0ffed42</color>
        </LineStyle>
        <PolyStyle>
            <color>e8ff9257</color>
        </PolyStyle>
    </Style>



<Placemark>
    <styleUrl>#poly</styleUrl>
        <Polygon>
            <altitudeMode>relativeToGround</altitudeMode>
            <outerBoundaryIs>
                <LinearRing>
                    <coordinates>
-77.05844056290393,38.86996206506943,500 -77.05552622493516,38.868757801256,500 
-77.05315536854791,38.87053267794386,500 -77.05465973756702,38.87291016281703,500 -77.05788457660967,38.87253259892824,500 -77.05844056290393,38.86996206506943,500 </coordinates>
                </LinearRing>
            </outerBoundaryIs>
        </Polygon>
</Placemark>
<Placemark>
    <styleUrl>#poly</styleUrl>
        <Polygon>
            <altitudeMode>relativeToGround</altitudeMode>
            <outerBoundaryIs>
                <LinearRing>
                    <coordinates>
-77.05844056290393,38.86996206506943,400 -77.05552622493516,38.868757801256,400 
-77.05315536854791,38.87053267794386,400 -77.05465973756702,38.87291016281703,400 -77.05788457660967,38.87253259892824,400 -77.05844056290393,38.86996206506943,400 </coordinates>
                </LinearRing>
            </outerBoundaryIs>
        </Polygon>
</Placemark>

<Placemark>
    <styleUrl>#poly</styleUrl>
        <Polygon>
            <altitudeMode>relativeToGround</altitudeMode>
            <outerBoundaryIs>
                <LinearRing>
                    <coordinates>
 -77.05844056290393,38.86996206506943,500 -77.05844056290393,38.86996206506943,400 -77.05552622493516,38.868757801256,400  -77.05552622493516,38.868757801256,500  -77.05844056290393,38.86996206506943,500
</coordinates>
                </LinearRing>
            </outerBoundaryIs>
        </Polygon>
</Placemark>

</Document>
</kml>
于 2010-02-16T19:30:23.773 回答
1

听起来您正在创建 2 个 2d 多边形而不是 3d 多边形?您可以创建一个规则的 3d 多边形:

http://code.google.com/apis/kml/documentation/kml_tut.html#polygons

然后查看 KML 中的高度模式标签,使其“漂浮”在地表之上:

http://code.google.com/apis/kml/documentation/altitudemode.html

于 2010-02-06T15:59:00.193 回答