0

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

<?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。

4

2 回答 2

1

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

如果样式和条件是静态的,那么您可以生成带有这些样式的 KML 预设作为 KML 的一部分。例如,如果您想根据某些条件生成 KML,例如人口大小 > 100K => 红色、大小 > 50K => 蓝色,否则为白色,其中每个生成的 Placemark 将具有适当的共享共享或内联样式。

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

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

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

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

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

  3. 使用示例中所示的 NetworkLinks 并结合NetworkLinkControl元素来全局更改共享样式。请参阅NetworkLinkControl 教程。您不能直接在 Google 地球中将 NetworkLinkControl 元素添加到您的 KML,因此您必须手动或以编程方式创作您的 KML。

于 2013-04-07T18:18:25.187 回答
0

使用 php ,如果您知道它并在您的表格的帮助下生成 kml ,您还可以使用上面 jason 所说的各种插件和 JAK。

你可以做的是:

  1. 通过 jdbc 连接您的 mysql 数据库(具有 latnlong )。

2.运行一个循环,即while循环,它将根据纬度和经度添加地标,并添加kml的其他必要元素,例如:

元素 ristyle = doc.createElement("IconStyle"); // 这将创建一个图标。

  1. 通过以下方式创建一个新文件:

结果 dest = new StreamResult(new File("文件位置"));

这将创建您的新 kml 文件

-- 在此处放置一个条件,它将像正常循环一样显示您的条件。

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

我认为这应该有效

于 2013-04-08T10:05:46.250 回答