如果您的多边形起点只有高于地平面的高度:有没有办法创建多边形,以便所有以下点相对于海平面具有相同的高度?即无论地形如何,多边形在水平平面上都是平坦的。
在生成kml之前,有没有人在不知道/获得海拔高度的情况下有这样做的方法?
非常感谢任何帮助。
答案 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