根据特定条件动态更新KML文件

时间:2013-04-07 14:15:24

标签: kml

我为动态更新开发了以下网络链接:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLink>
 <name>Loads TEST.kml</name>
 <Link>
  <href>/home/desktop/farhan/test.kml</href>
 </Link>
</NetworkLink>
</kml>

Test.kml文件有两个地标。

我的网络链接文件已成功更新Test.kml文件中的更改

现在我想要做的是设置一个'IF'条件,这样如果某个事情是真的那么地标颜色是'绿色'而且'红色'。

我该怎么办?是否需要遵循任何Java API。

2 个答案:

答案 0 :(得分:1)

取决于您希望托管KML的方式/位置以及这些条件是什么。

如果样式和条件是静态的,那么您可以使用这些样式生成KML预设,作为KML的一部分。例如,如果要根据某些条件生成KML,例如种群大小&gt; 100K =&gt;红色,尺寸&gt; 50K =&gt;蓝色,否则为白色,其中每个生成的地标将具有适当的共享共享或内联样式。

生成KML的一种流行的Java-API是Java API for KML(或简称JAK)。

如果视图(基于条件)是“动态的”并且是用户选择的,那么您有几个选择:

  1. 根据NetworkLinks和radioFolders的不同条件生成地标的不同版本/视图,以加载特定视图。 KML可以静态生成一次,也可以通过Web服务,servlet,CGI脚本等动态生成。

    例如,USGS具有多个NetworkLink的地震实时馈送,每个NetworkLink具有针对相同数据的不同视图/颜色/大小方案(例如,按年龄与大小的颜色)。 查看http://earthquake.usgs.gov/earthquakes/feed/earthquakes.kml

  2. 使用Google Earth API在HTML和JavaScript的上下文中加载,创建和修改KML,并在Web浏览器中将Google Earth作为插件运行。这需要一些JavaScript编程。

  3. 使用示例中显示的NetworkLinks与 NetworkLinkControl 元素相结合,全局更改共享样式。见NetworkLinkControl tutorial。您无法直接在Google地球中向您的KML添加NetworkLinkControl元素,因此您必须手动或以编程方式创作KML。

答案 1 :(得分:0)

使用php,如果你知道它并在你的桌子的帮助下生成kml,你也可以使用jason上面讲述的各种插件和JAK。

你能做的是:

  1. 通过jdbc连接你的mysql db(有latnlong)。
  2. 2.运行一个循环,即while循环,它将根据纬度和经度添加地标,并添加kml的其他必要元素,如:

    Element ristyle = doc.createElement(“IconStyle”); //这将创建一个Icon。

    1. 通过以下方式制作新文件:
    2. 结果dest = new StreamResult(新文件(“文件位置”));

      这将创建新的kml文件

      - 在这里放置一个条件,它会像正常循环一样显示你的状况。

      5建立网络链接并在此处引用您的kml文件以进行手动更新。

      我认为这应该有用