1

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

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

任何帮助将不胜感激。

4

2 回答 2

1

使用relativeToGround高度模式创建一个多边形,它将高度解释为距离地面以米为单位的值。

注意:您需要指定每个点的高度值。不能只为一个指定高度,而让其他人使用相同的高度。如果省略高度,则默认为“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>

如果无论地形如何,都希望多边形在水平平原上平坦,那么高度模式必须是相对于平均海平面的绝对值。您可以跳过在坐标中定义高度并使用<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>
于 2012-10-17T19:42:44.873 回答
0

您唯一可能的解决方法是获取第一个点的海平面高度,并在其他点上使用该高度: Get height by longitude and latitude in Android

于 2013-05-29T16:48:41.497 回答