有关于Google地球(或可能是其他KML友好型客户)的叠加层和时间轴的问题。
我有一天中每一分钟的数据代表地图上各个区域的数值,我希望以一种看起来基本像天气雷达地图的方式显示该数据。所以,对于每一分钟,我基本上都有一个很大的lat / lon边界框列表,每个边框都有一个相关的数值;显示将涉及在有界区域上绘制多边形,并且多边形的颜色将取决于该数值。
我可以看到很多方法在一个时刻做到这一点;要么为整个地图区域构建一个像ImageMagick这样的PNG并覆盖位图,要么直接在地图上绘制多边形...但问题是我如何设置它以便可以选择时间范围用户以及所有适合该时间范围的叠加层都将显示。它必须尽可能地响应,因此效率是关键。
例如,可以预渲染大量的PNG文件,每个时间片一个;或者使用多边形会更好,还是......?
最后 - 谷歌地球是最好的客户吗?或者我可能会因为其他事情而变得更好?
谢谢!
答案 0 :(得分:3)
服务地图的Open Geospatial Consortium WMS standard定义了对TIME参数的支持,该参数允许支持时间请求。提供此支持的WMS服务称为WMS-T。据我所知,开源地图服务器只有Mapserver和部分Geoserver提供对WMS-T的支持(我可能会对此非常不对,因为我只是根据个人经验说话)。查看此页面以获取有关设置WMS-T服务的所有详细信息:
http://mapserver.org/ogc/wms_time.html
您可以轻松查看请求如何查看此网址:
请注意TIME参数如何从 2005-08-29T13%3A00%3A00Z 更改为 2005-08-30T13%3A00%3A00Z (时间格式根据ISO 8601规范)。
在客户端,虽然Google地球可以充当WMS客户端,但我认为它不支持WMS请求的时间维度。另一方面,使用OpenLayers构建一个支持它们的Web客户端非常简单,这是一个开源的Javascript Web映射框架,如下例所示:
http://dev.openlayers.org/releases/OpenLayers-2.8/examples/wmst.html
希望这能为你提供一些线索。
编辑:您可以定义多个时间值,单个范围或多个范围。例如,对于单个范围,URL将为:
注意TIME参数 2005-08-30T13%3A00%3A00Z / 2005-09-01T13%3A00%3A00Z
答案 1 :(得分:2)
KML的时间特征是well documented,包括时间跨度。我建议您尝试使用基于矢量和图像的方法,具体取决于用户缩放的接近程度:
Google地球作为通用查看器非常棒,非常用户友好。但是,时间序列工具更复杂,因此取决于用户的复杂程度。它对您的项目的适用程度取决于您拥有的数据类型和所需的输出类型。使用闪光灯可能会获得更好的效果。