3

我一直在尝试使用点坐标在谷歌地球上画一些线,一切正常,但有一个很小的细节。这些线穿过地球并且不跟随表面,因此它们通常是不可见的,因为我在全球范围内都有点。有任何想法吗?

line = kml.newlinestring(coords=[firstcoord, secondcoord])

提前致谢 :)

4

1 回答 1

4

您需要在线条几何上启用镶嵌以跟随地球的曲率。

非常大的线条应该启用曲面细分,以便它们遵循地球的曲率(否则,它们可能会进入地下并被隐藏)。

要启用曲面细分,其值<altitudeMode>必须是clampToGroundclampToSeaFloor,否则曲面细分标志将被忽略。

确保生成的 KML 输出如下所示:

  <Placemark>
    <name>line with tessellation</name>
    <LineString>
      <tessellate>1</tessellate>
      <altitudeMode>clampToGround</altitudeMode>
      <coordinates>
        -122.383103,37.617112 -73.782201,40.643612 
      </coordinates>
    </LineString>
  </Placemark>

执行此操作的 Python 代码:

import simplekml

kml = simplekml.Kml()
firstcoord = (-122.383103, 37.617112)
secondcoord = (-73.782201, 40.643612)
line = kml.newlinestring(tessellate=1,
                         altitudemode=simplekml.AltitudeMode.clamptoground,
                         coords=[firstcoord, secondcoord])

print("Output: line.kml")
kml.save("line.kml")
于 2013-12-19T16:56:11.380 回答