2

回覆,

我有这个奇怪的问题......一首曲目拒绝在 Google 地球中显示。它显示距离、海拔等所有内容,但没有可见的轨迹线。将其导入谷歌地图工作正常。

基本上,我有一个超过 350k 点的文件。组装时,我按日期分隔曲目,现在尝试将它们合并在一起(手动,通过编辑 KML 文件)。似乎当我尝试将地标与数千个坐标合并时,它们停止在 Google 地球中显示;好像一个地标(线串)可以包含多少个坐标是有限制的。

这是文件:http ://www.upl.co/upload/s4Co0Gc2Q

提前致谢。

4

2 回答 2

1

您需要使用<tessellate>线串上的元素。这指定是否允许 LineString 跟随地形。要启用曲面细分,高度模式必须为clampToGround 或clampToSeaFloor。非常大的 LineStrings 应该启用曲面细分,以便它们遵循地球的曲率(否则,它们可能会进入地下并被隐藏)。

另一种选择是使用<gx:altitudeOffset>元素。这是一个 KML 扩展,位于 Google 扩展命名空间中,用于修改高度值的呈现方式。此偏移量允许您将整个 LineString 作为一个单元向上或向下移动,而无需修改构成 LineString 的所有单个坐标值。(虽然 LineString 使用高度偏移值显示,但原始高度值保留在 KML 文件中。)单位为米。

像这样的东西应该工作。

<LineString id="ID">
  <extrude>1</extrude>                      
  <tessellate>1</tessellate>                
  <altitudeMode>clampToGround</altitudeMode>
  <coordinates><!-- lon,lat[,alt] --></coordinates>            
</LineString>
于 2011-02-25T07:45:22.520 回答
1

我有一个带有大约 96000 个坐标的 LineString,并且看到了与我可以在 google-earth 中加载 KML 相同的效果,并且看到所有内容都正确,除了 LineString(不显示线条),就好像我已经超过了某个限制一样。坐标没有高度。我尝试了使用和不使用镶嵌和高度模式钳制到地面。

对我来说,解决方案是用 MultiGeometry 将 LineString 拆分,将其分成两半就足够了(每个 LineString 现在的坐标少于 64000k)。

于 2011-12-20T11:48:27.900 回答