Google地球KML - 当通过NetworkLink加载doc时,使用气球链接分段URL时,会出现奇怪的GE行为

时间:2014-04-09 23:03:53

标签: kml google-earth

KML newb在这里。第一篇文章。

使用GE客户端应用程序,v7.12。有相当简单的KML doc包含几个GPS基于时间的面包屑点的地标。写了一个简单的C#app来生成kml doc。期望为其他跟踪实体提供更多类似的文件。我得到了这个工作,并决定通过HTML来想象地标气球。最终决定我希望在气球中有链接移动到上一个或下一个地标。在此网站上查找建议并实现目标。

由于我的应用程序有时可能会更新(通过重写)文档,因此不必手动重新加载它。此外,最终将有其他跟踪实体的其他文档,全部由我的应用程序控制/更新。好的 - NetworkLink救援。很酷的功能,让我可以选择动态修改networklinks文件,只包含已更改的实体doc文件。加上大奖金 - 转向' flyToView'关闭,以便当重新加载网络链接文件或刷新时,我不会被我当前正在查看的默认情况下的任何内容所取消:LookAt'这通常似乎是在直接加载文档时发生的(任何人都知道解决这个问题的方法吗?)

非常高兴,直到我发现当我点击我的一个气球链接转到下一个或上一个点时,GE决定在临时位置下创建整个包含文档的新副本,现在我有两整套显示的点,一个隐藏另一个。从表面上看,我的next / prev链接似乎正在工作,但它们实际上只与新创建的doc一起使用。为了测试,我用一组完全不同的位置改变原始文档。重新加载networklinks doc以引入新的含点文档并查看新的点集。但是当我在新的上使用任何气球链接时,他们会跳到GE自己创建的旧文档上的点。删除GE创建的版本,单击气球和中提琴,GE创建它的新副本,然后返回到我们开始的位置。令人沮丧。

作为地标ID,我使用" TPn"等字符串,其中n为增量。在我的气球链接中,我链接到片段URL,例如href ="#TPn-1"并且href =" TPn + 1",即TP2链接到TP1和TP3等,我在最后都考虑了这两个地标,因此他们没有与不存在的ID的错误链接。顺便说一句,我发现当你激活链接到一个不存在的片段URL时,GE也决定创建该文件的副本,即使该文件是直接加载而不是通过网络链接加载,所以你再次拥有一个点设置在另一个之上。但是,我确信在这种情况下我没有不良链接。

任何可以脱落的灯都会受到赞赏。或者实现我的目标的替代方法。毕竟我是一个KML新手,也许还有我做错的事情。

我想如果必须的话,我会牺牲气球链接。能够为一组文件重新加载一个网络链接文档+定时刷新+关闭flyToView现在太可取了。

谢谢!

编辑:附加信息 - 仅在使用气球链接时创建重复文档。单击地标下树视图中的链接不会导致此异常。 (在代码示例中,删除每个地标的空片段元素以查看此效果。)此外,似乎指向 ANY 片段URL的气球链接会导致异常,例如链接返回到包含文件夹或文档。

编辑:添加了2个代码示例。这些都可以减少我的基本需求,但仍然可以证明这个问题。有趣的是,当数据文件'文件'时,注意到GE树视图的不同之处。元素有一个' id'定义与否,但它与问题无关。当id被省略时,我更喜欢外观。

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<!-- File is: C:\myTwoDataPoints.kml -->

<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document id="myDoc">
    <name>Two Points Doc Name Here</name>
    <description>Doc Description Here</description>
    <visibility>0</visibility>
    <Snippet>Contains Two Data Points</Snippet>

    <Style id="myStyle">
      <BalloonStyle >
        <text><![CDATA[Link To:&nbsp;$[description] ]]></text>
      </BalloonStyle>
    </Style>

    <Folder>
      <name>Points Folder</name>
      <open>1</open>

      <Placemark id="TP1">
        <name>Miami, FL, USA</name>
        <Snippet />
        <description><![CDATA[<a href="#TP2;balloonFlyto">New York</a>]]></description>
        <styleUrl>#myStyle</styleUrl>
        <Point>
          <coordinates>-80.226439,25.788969,0</coordinates>
        </Point>
      </Placemark>

      <Placemark id="TP2">
        <name>New York, NY, USA</name>
        <Snippet />
        <description><![CDATA[<a href="#TP1;balloonFlyto">Miami</a>]]></description>
        <styleUrl>#myStyle</styleUrl>
        <Point>
          <coordinates>-74.005973,40.714353,0</coordinates>
        </Point>
      </Placemark>

      </Folder>
  </Document>
</kml>

和...

<?xml version="1.0" encoding="UTF-8"?>

<!-- File is: C:\myNetworkLink.kml -->

<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
  <name>NetworkLink Document Name Here</name>
  <visibility>0</visibility>
  <open>1</open>

  <NetworkLink>
    <name>NetworkLink Name Here</name>
    <refreshVisibility>1</refreshVisibility>
    <flyToView>0</flyToView>
    <Link><href>file:///C:/myTwoDataPoints.kml</href></Link>
  </NetworkLink>

</Document>
</kml>

0 个答案:

没有答案