通过描述中的超链接更新现有KML

时间:2014-08-03 18:58:17

标签: kml google-earth

我正在使用Google地球5.0客户端。我想通过单击其中一个地标的description / balloonStyle标记中的超链接来更新KML文件(由NetworkLink加载)。

以下是一个例子:

A.kml

<?xml version="1.0" encoding="UTF-8"?>
<kml>
  <NetworkLink>
    <Link>
      <href>http://www.example.com/B.kml</href>
    </Link>
  </NetworkLink>
</kml>

B.kml

<?xml version="1.0" encoding="UTF-8"?>
<kml>
  <Document>
    <Folder id="entities">
      <Folder id="en1_folder">
        <Placemark id = "en1_point">
          <description> 
            <a href="http://www.example.com/getConnections.php?en=id1"
               type="application/vnd.google-earth.kml+xml"> Get connections </a> 
          </description>
          <Point>
            <coordinates>...</coordinates>
          </Point>
        </Placemark>
      </Folder>

      There are about 500 such folders, each with its corresponding en# point
      containing a description hyperlink.

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

如果用户点击超链接,我想生成一组LineStrings,将该点连接到一个或多个其他点。

例如,getConnections.php?en=id1可以生成如下响应:

<?xml version="1.0" encoding="UTF-8"?>
<kml>
  <Update targetHref="http://www.example.com/B.kml">
    <Change>
      <Folder targetId="en1_folder">
        <Placemark id="en1_connections">
          <LineString>
            <Coordinates> 
              (en1_coords), (en5_coords), (en7_coords)
            </Coordinates>
          </LineString>
        </Placemark>
      </Folder>
    </Change>
  </Update>
</kml>

这在GE 5.0中不起作用。我了解更新是NetworkLinkControl的孩子,而NetworkLink必须由来自与包含它的KML相同的域中的{{1}}请求。 我知道使用一个或多个NetworkLink有几种解决方法,但我很想知道是否仍然存在通过单击描述超链接直接更新相同KML文件的方法。

任何想法都赞赏。

谢谢, 最大

0 个答案:

没有答案