【问题标题】:Can't display a track in Google Earth, but works fine in Google Maps - why?无法在 Google 地球中显示轨迹,但在 Google 地图中可以正常工作 - 为什么?
【发布时间】:2011-06-05 00:53:10
【问题描述】:

回复,

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

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

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

提前致谢。

【问题讨论】:

    标签: google-maps kml google-earth


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

      我有一个大约 96000 个坐标的 LineString,看到的效果与我可以在 google-earth 中加载 KML 的效果相同,并且看到所有内容都正确,除了 LineString(不显示线条),就好像我已经执行了一定限度。 坐标没有高度。我尝试了使用和不使用 tesselation 和 alitudeMode clampToGround。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-04
        相关资源
        最近更新 更多