无法在Google地球中显示曲目,但在Google地图中可以正常使用 - 为什么?

时间:2011-01-07 01:26:04

标签: google-maps kml google-earth

RE,

我有这个奇怪的问题......一首曲目拒绝在Google地球中显示。它显示距离,高度,一切,但没有可见的轨迹线。将其导入Google地图可以正常使用。

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

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

这样的事情应该有效。

<LineString id="ID">
  <extrude>1</extrude>                      
  <tessellate>1</tessellate>                
  <altitudeMode>clampToGround</altitudeMode>
  <coordinates><!-- lon,lat[,alt] --></coordinates>            
</LineString>

答案 1 :(得分:1)

我有一个大约96000坐标的LineString,并且看到了我可以在google-earth中加载KML的相同效果,看到一切正确,除了LineString(没有显示行),好像我已经过了一个一定的限制。 坐标没有高度。我尝试了没有tesselation和alitudeMode clampToGround。

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