我试图在谷歌地球上有两组线性环。
我有一个位于地面和平坦的地方,只有颜色和位置。 相对于地面,拉伸(stretch) =0 且高度 =0 。
我想要一个高度并拉伸(stretch)到表面。这是其他线性环相同位置点的子集。 extrude=1 高度 >0 ,相对于地面
所以基本上他们应该从地面开始,一个是平的,另一个有高度。 但看起来没有被挤压的那个并不真正在地面上,而且每个点的数量都相同。我尝试将其夹在地面上,并在另一个线性环下方。我尝试过使用负高度并尝试使用负高度偏移,但这些似乎不起作用。所以我很沮丧。
有什么想法可以尝试吗?非常感谢,
最佳答案
如果您使用 LinearRing 作为 Polygon 的外边界,则需要在 Polygon 元素中指定 altitudeMode。如果您直接指定 LinearRing 几何图形,则必须将 altitudeMode 添加到 LinearRing 元素。
这是一个具有两个 LinearRing 位置的 KML 示例:一个以相对于地面的高度拉伸(stretch),另一个平面夹紧到地面:
<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>ring test</name>
<open>1</open>
<Placemark>
<name>extruded</name>
<LinearRing>
<extrude>1</extrude>
<altitudeMode>relativeToGround</altitudeMode>
<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>
</Placemark>
<Placemark>
<name>ground</name>
<LinearRing>
<altitudeMode>clampToGround</altitudeMode>
<coordinates>
-122.4318558244244,37.801933902335
-122.4315693369527,37.80197196367308
-122.4315227485117,37.80176063190402
-122.4318191012996,37.80172146704169
-122.4318558244244,37.801933902335
</coordinates>
</LinearRing>
</Placemark>
</Document>
</kml>
如果形状覆盖了很大的区域,那么您可能需要设置 tessellate=1在基于地面的 LinearRing 上,因此它遵循地球的曲率。
关于java - KML 在未挤压时出现线性环的高度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9673383/