2010-02-04 37 views
10

我需要能够将具有给定高度的多边形对象放置到位于地面之上的KML中。我正在将空域信息显示为KML,并且每个空域都有一个低海拔和高海拔值。如何在位于空中的KML中创建多边形形状?

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

感谢您的帮助

+0

你有没有找到这个问题的答案?我有兴趣做一些类似的事情,并希望在空中“漂浮”一个多边形 – 2010-02-17 13:33:10

回答

6

你有两个选择,你可以创建空气空间的collada模型,或者定义每个面的一系列多边形对象,可以定义垂直定向的多边形,注意到您(顺时针或逆时针)的,因为这会影响风格,从底部观察多边形的方向使得它稍深

一个简单rectancular的形状,你将需要6个面

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

<?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> 
+0

有创建3d多边形的2D面的例子谢谢Berwyn,这就是我一直在寻找的东西。 – 2010-02-17 14:00:27

1

这听起来像你正在创建2个2D多边形,而不是3D的? 您可以创建一个普通的3D多边形:

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

然后检查在KML的altitudemode标签为 “浮起来” 表面之上:

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

+0

感谢您的回答geographika。你是正确的多边形有一个高度模式,但所有这些都是从底层开始,除了绝对的只会浮动多边形但不会给它一个深度。 – 2010-02-12 13:15:40

+0

您是否使用多边形中的标记将多边形从其高度“加入”到地面? – geographika 2010-02-17 02:24:34

+0

拉伸标签只有在你想扩展到它不适用于空气中的物体的时候。 – 2010-02-17 14:01:25

相关问题