3

ポイント座標を使用してGoogle Earthにいくつかの線を描画しようとしているところですが、すべてが機能しますが、細部はほとんどありません。線は地球を通過し、地表をたどらないため、地球上のすべてのポイントがあるため、通常は見えません。何か案は?

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

前もって感謝します :)

4

1 に答える 1

4

地球の曲率に追従するには、ライン ジオメトリでテッセレートを有効にする必要があります。

非常に大きな線は、テッセレーションを有効にして、地球の曲率に従う必要があります (そうしないと、地下に潜って隠れてしまう可能性があります)。

テッセレーションを有効にするには、値をclampToGroundまたはclampToSeaFloor<altitudeMode>にする必要があります。そうでない場合、テッセレーション フラグは無視されます。

生成された 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 に答える