var pois = new OpenLayers.Layer.Text( “My Points”,
{ location:“./textfile.txt”,
projection: map.displayProjection
});
map.addLayer(pois);
Gibt es eine Möglichkeit einzelne POI / Layer nur ab einem bestimmten Zoomlevel anzuzeigen.
Ich habe mehrere Layer und möchte einzelne POI erst ab einem sehr hohen Zoomfaktor anzeigen.
Über einen Hinweis freue ich mich sehr.
Viele Grüße
Es geht auch über einen eigenen Style, ist allerdings ein bißchen aufwendiger.
Schau doch mal den Quelltext meines Beispiels hier an: http://www.opennet-initiative.de/newmap/
Dort wird im Style darauf reagiert, ob die Checkbox für die Beschriftungen gesetzt wurde.
Ich bin mir aber sicher, dass ich das irgendwo schon mal einfacher gesehen hatte, als Parameter vom Layer oder so…
Das ist die maximale Auflösung (in “Meter”/Pixel), bei der ein Layer sichtbar ist. Es geht los mit 156543.0399 (=Äquatorlänge/256) bei Zoom=0 und halbiert sich mit jedem Zoomlevel. “maxResolution:77” heisst z.B., dass der Layer erst ab Zoom=12 sichtbar ist, “maxResolution:612” entspricht Zoom=7.
Probier mal
var pois = new OpenLayers.Layer.Text( "My Points",
{ location:"./textfile.txt",
projection: map.displayProjection,
maxResolution: 77
});
map.addLayer(pois);
Dann sollte Dein POI-Layer erst ab Zoom 12 sichtbar sein, davor ist er auch im Layerswitcher ausgegraut.
Grüße, Max
PS: Habs an nem Beispiel probiert. Wenn Du hier ein bisschen reinzoomst, kommt ein Text-Layer mit Markern. Beim Rauszoomen verschwindet auch der GPX-Track.
Mit der Umrechnung komme ich irgendwie nicht klar.
Wenn 612 Zoom=7 sein soll ist bei mir 77 Zoom=10 .
Vielleicht habe ich nur die Umrechnung nicht verstanden.
Vielleicht kannst du zu Dokumentationszwecken nochmal eine Tabelle posten.
Ich würde mich sehr darüber freuen.
Bei Zoom=11 ist die Resolution 76.437.
Wenn Du einen Layer bei zoom 11-20 anzeigen willst, musst Du seine maximale Auflösung auf irgendwas größer als 76.437 setzen, wenn Du ihn bei 12-20 anzeigen willst auf irgendwas kleiner als 76.437.
In der Praxis würde ich aber irgendwas deutlich zwischen den Werten nehmen, also nicht (76 und 77) sondern (50 und 100) weil man weiss ja nie wie die jeweilige Anwendung rundet.