2016-12-19 3 views
0

Ich habe eine Datenbank, die einige Wetterdaten in einem .csv Format enthält. Jede Tabelle repräsentiert die Wetterbedingungen zu einem bestimmten Zeitpunkt. Mit dem Geoserver kann ich jede dieser Tabellen in meinem Browser visualisieren. Was ich nach einer Möglichkeit gesucht habe, ist etwas, das als Schieberegler zu meinem html Code hinzugefügt werden kann, so dass es die Wetterbedingungen in jeder Minute anzeigt, wenn ich über den Schieberegler gleite.Hinzufügen eines Zeitlimit-Controllers zu openlayers

Ich habe einige .js Code hier gefunden, aber ehrlich gesagt, ich weiß nicht, wo mein Zweck hinzuzufügen zu passen (oder auch wenn es wirklich den Zweck passt oder nicht)

https://github.com/metno/openlayers-timeslider

Auch ich weiß nicht, ob dies hilfreich sein würde, aber der Teil der html, die die Daten auf der Karte zeigt, ist, wie folgend:

var rainLayer = new ol.layer.Tile({ 
    source: new ol.source.TileWMS({ 
    url: 'http://x.x.x.x/geoserver/wms', 
    params: {'LAYERS': 'storename:layername'} 
}); 
+0

Sie bieten nicht wirklich genug Details hier, um Ihnen spezifisch zu helfen. Sie erwähnen "Jeder Tisch repräsentiert ... zu einem bestimmten Zeitpunkt". Sie möchten diese Daten über einen ETL-Prozess in einer einzigen Tabelle anordnen. Sie müssen dann Ihre Schicht so konfigurieren, dass sie für die Zeitreihe sensibilisiert ist. Dieser Link [http://docs.geoserver.org/latest/de/user/data/webadmin/layers.html#data-webadmin-layers-edit-dimensions] beschreibt, wie es in Version 2.11 gemacht wird. Sie können auch die Verwendung von Leaflet in Betracht ziehen, wenn Ihre Anforderung für Openlayer nicht fest ist. [http://leafletjs.com/plugins.html#time--evevation] –

Antwort

1

Sie ImageMosaic-Plugin für Rasterzeitreihendaten von GeoServe verwenden können r. Here ist die Dokumentation zum Implementieren eines zeitfähigen ImageMosaic. nach dem Mosaik Implementierung benötigen Sie den Zeitparameter an die geoserver in den Openlayers wie dies passieren:

var wms = new ol.layer.Tile({ 
      name: name, 
      opacity: opacity, 
      source: new ol.source.TileWMS({ 
       url: global.geoserverWMS2 + 'wms', 
       params: { 
        'LAYERS': layer_name, 
        'TILED': true, 
        'TIME': '2017-01-01', // this is an example 
       }, 
       serverType: 'geoserver' 
      }) 
     }); 

und sobald Sie den Zeitparameter ändern, um wollten verwenden, um die entsprechende Wetterbild zu machen, nur die updatePrams () auf der WMS-Schicht wie folgt:

wms.getSource().updateParams({'time': '2016-01-01'}) 
wms.getSource().updateParams({'time': '2015-01-01'}) 
wms.getSource().updateParams({'time': '2014-01-01'}) 

und es wird die Datenquelle aktualisieren und das neue Bild rendern.