KML多边形指向相对于起点的高度

时间:2012-05-18 10:07:40

标签: kml

如果您的多边形起点只有高于地平面的高度:有没有办法创建多边形,以便所有以下点相对于海平面具有相同的高度?即无论地形如何,多边形在水平平面上都是平坦的。

在生成kml之前,有没有人在不知道/获得海拔高度的情况下有这样做的方法?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

使用 relativeToGround altitudeMode创建一个多边形,它将海拔高度解释为地面以米为单位的值。

注意:您需要为每个点指定高度值。不能只指定一个的高度,让其他人使用相同的高度。如果省略高度,则默认为“0”。

这是多边形,每个点设置在地面以上10米处。

<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
      <Placemark>
      <name>tennis-poly</name>
      <Polygon>
        <altitudeMode>relativeToGround</altitudeMode>
        <outerBoundaryIs>
          <LinearRing>
            <coordinates>
              -122.43193945401,37.801983684521,10
              -122.431564131101,37.8020327731402,10
              -122.431499536494,37.801715236748,10
              -122.43187136387,37.8016634915437,10
              -122.43193945401,37.801983684521,10
            </coordinates>
          </LinearRing>
        </outerBoundaryIs>        
      </Polygon>
    </Placemark>     
</kml>

如果希望多边形在水平平面上是平坦的而不管地形如何,则altitudeMode必须绝对,这与平均海平面有关。您可以跳过在坐标中定义高度,并使用<gx:altitudeOffset>指定单个高度。

<?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">
      <Placemark>
      <name>tennis-poly</name>
      <Polygon>
        <altitudeMode>absolute</altitudeMode>              
        <outerBoundaryIs>
          <LinearRing>
            <gx:altitudeOffset>50</gx:altitudeOffset>
            <coordinates>
              -122.43193945401,37.801983684521
              -122.431564131101,37.8020327731402
              -122.431499536494,37.801715236748
              -122.43187136387,37.8016634915437
              -122.43193945401,37.801983684521
            </coordinates>
          </LinearRing>
        </outerBoundaryIs>        
      </Polygon>
    </Placemark>     
</kml>

答案 1 :(得分:0)

你唯一可能的做法是获得第一点的海平面高度,并在其他点上使用该高度: Get altitude by longitude and latitude in Android