2016-04-12 7 views
2

Wenn eine Karte wie folgt zu erstellen:Disable Zwischen Kacheln für Schicht

var map = new ol.Map({ 
    loadTilesWhileAnimating: true, 
    loadTilesWhileInteracting: true 
}) 

Openlayers 3 verwendet Zwischenplatten (d.h. zuvor geladenen niedrigeren Auflösung Fliesen) beim Zoomen und Schwenken, bis er die neuen Lade Fliesen fertig ist. Die Interimsplättchen werden hinter den echten Kacheln platziert. Das ist sehr clever und eignet sich hervorragend für opake Schichten, aber für meist transparente Schichten nicht so gut.

Wir haben derzeit eine Schicht, die aus nur ein paar Zeilen besteht, nur ein paar Pixel denken. Ein leichtes Schwenken der Karte macht diese zu riesigen Blobs, die viel Flimmern verursachen.

Gibt es eine Möglichkeit, das Erstellen dieser Interim-Kacheln nur für eine bestimmte Ebene zu deaktivieren? Es wäre enttäuschend, wenn ich beide loadTilesWhile * Eigenschaften nur wegen einer einzelnen Schicht deaktivieren müsste.

Für ein Beispiel, siehe: http://imgur.com/RbtmkpT Die linke ist normal (die rote Linie gehört mir), rechts ist nach dem Schwenken leicht.

Dies ist mit CacheSize 0 auf der Quelle und UseInterimTilesOnError false.

Update: OpenLayers 3.12 verhält sich anders. In dieser Version sind nur unbeladene Kacheln verschwommen (was zu erwarten ist), aber bereits geladene Kacheln bleiben in Ruhe. Ab 3.13 oder 3.14 hat sich dieses Verhalten geändert.

+0

Es ist schwer, ohne den entsprechenden Code zu helfen. –

+0

Hier geht es nicht so sehr um meinen Code (ich erstelle einfach eine einfache Map und füge dann zwei Kachel-Layer mit einer OSM-Quelle hinzu) sondern mehr darüber, wie OpenLayers Interim-Kacheln seit ein paar Versionen zurück bearbeitet ... –

Antwort