Einzelne POI bei Dynamic POI erst ab einem gewissen Zoomlevel anzeigen
-
Einzelne POI bei Dynamic POI erst ab einem gewissen Zoomlevel anzeigen · cbally (Gast) · 25.07.2011 15:48 · [flux]
Hallo zusammen,
ich nutze OSM zur firmeninternen Darstellung von Standorten und Informationen. Darum nutze ich das Openlayers POI layer example http://wiki.openstreetmap.org/wiki/Open … er_examplevar 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üßeChristoph
- Re: Einzelne POI bei Dynamic POI erst ab einem gewissen Zoomlevel anzeigen · !i! (Gast) · 25.07.2011 15:59 · [flux]
Hallo cbally und natürlich erst mal herzlich willkommen hier bei uns im Forum 🙂
Ich denke das ist hier was du suchst:
http://openlayers.org/dev/examples/zoomLevels.html
http://dev.openlayers.org/docs/files/Op … er-js.htmlEs 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... - Re: Einzelne POI bei Dynamic POI erst ab einem gewissen Zoomlevel anzeigen · maxbe (Gast) · 25.07.2011 17:47 · [flux]
Layer haben ein Attribut "maxResolution".
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.
- Re: Einzelne POI bei Dynamic POI erst ab einem gewissen Zoomlevel anzeigen · cbally (Gast) · 25.07.2011 20:17 · [flux]
Hallo maxbe,
das war genau das, was ich suchte.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.Vielen Dank auch für das Beispiel.
Viele Grüße
Christoph
- Re: Einzelne POI bei Dynamic POI erst ab einem gewissen Zoomlevel anzeigen · maxbe (Gast) · 25.07.2011 20:37 · [flux]
max@offler:~$␣perl␣-e␣'$res=156543.0399;print␣"zoom␣␣Resolution\n";for($i=0;$i<=20;$i++){printf("%2d␣␣␣␣%11.4f\n",$i,$res);$res=$res/2;}' zoom␣␣Resolution 0␣␣␣␣156543.0399 1␣␣␣␣␣78271.5200 2␣␣␣␣␣39135.7600 3␣␣␣␣␣19567.8800 4␣␣␣␣␣␣9783.9400 5␣␣␣␣␣␣4891.9700 6␣␣␣␣␣␣2445.9850 7␣␣␣␣␣␣1222.9925 8␣␣␣␣␣␣␣611.4962 9␣␣␣␣␣␣␣305.7481 10␣␣␣␣␣␣␣152.8741 11␣␣␣␣␣␣␣␣76.4370 12␣␣␣␣␣␣␣␣38.2185 13␣␣␣␣␣␣␣␣19.1093 14␣␣␣␣␣␣␣␣␣9.5546 15␣␣␣␣␣␣␣␣␣4.7773 16␣␣␣␣␣␣␣␣␣2.3887 17␣␣␣␣␣␣␣␣␣1.1943 18␣␣␣␣␣␣␣␣␣0.5972 19␣␣␣␣␣␣␣␣␣0.2986 20␣␣␣␣␣␣␣␣␣0.1493
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.
Grüße, Max
- Re: Einzelne POI bei Dynamic POI erst ab einem gewissen Zoomlevel anzeigen · SunCobalt (Gast) · 25.07.2011 20:42 · [flux]
weißt Du, wie sich die Mapserver Zooms in OL Stufen umrechnen lassen? Sorry, ist OT, aber ich wittere meine Chance 😉
- Re: Einzelne POI bei Dynamic POI erst ab einem gewissen Zoomlevel anzeigen · maxbe (Gast) · 25.07.2011 22:37 · [flux]
Sorry, immer wenn ich denke, ich hätte irgendwas bei Mapserver kapiert, holt mich bald darauf die Realität ein... 😉
- Re: Einzelne POI bei Dynamic POI erst ab einem gewissen Zoomlevel anzeigen · cbally (Gast) · 26.07.2011 15:27 · [flux]
Danke allen Postern,
mein Problem ist gelöst!
Viele Grüße
Christoph