Mehr

OpenLayers3 MAP neu zeichnen/Aktualisieren

OpenLayers3 MAP neu zeichnen/Aktualisieren


Ich habe eine Funktion erstellt, um nach php zu postgis zu suchen und glaube mir, dass diese Funktion eine Datei mit den Koordinaten im GeoJSON-Format sucht.

Das Problem ist, dass Sie Ihren Browser aktualisieren müssen, um die Änderung zu sehen, wenn ich die Karte rendere und die Tabelle hinzufüge, wenn die Abfrage erneut annimmt, dass dieser Layer nicht aktualisiert wird.

Gibt es eine Möglichkeit, die Karte bei jeder Abfrage automatisch zu ändern oder zu aktualisieren?

Hier ist der Code:

var Vector= new ol.layer.Vector({ source: new ol.source.Vector({ Projektion: 'EPSG:3857', url: 'coordenadas.GeoJSON', // Im PHP-Codeformat erstellte Datei: new ol.format .GeoJSON() }), style: new ol.style.Style({ Stroke: new ol.style.Stroke({ color: 'red', lineDash:[1], width: 1})}) }); var map = new ol.Map({ target: 'map', layer: [ new ol.layer.Tile({ source: new ol.source.BingMaps({ imagerySet: 'Aerial', key:'XXXXXXXXXXXXXX' ], view : new ol.View({ center : ol.proj.transform([-0.33126.39.569658],'EPSG:4326','EPSG:3857'), zoom: 13}) }); map.renderSync(5000);

die map.renderSync()-Funktion; nicht wie es funktioniert, finde ich Dokumentation, um seine Funktionsweise zu verstehen.


Ich habe endlich eine Lösung gefunden, um einen Layer auf openlayers 3 zu aktualisieren.

Sie müssen die Parameter der Layer-Quelle wie folgt aktualisieren:

var source = yourLayer.getSource(); var params = source.getParams(); params.t = neues Datum().getMilliseconds(); source.updateParams(params);

Schau das Video: How to Add Vector Features to an OpenLayers 3 Map