Mehr

So begrenzen Sie die Zoomstufe in OpenLayers 2.x

So begrenzen Sie die Zoomstufe in OpenLayers 2.x


Ich möchte nur 3 Zoomstufen zur Verfügung haben (von Stufe 6 bis Stufe 8).

demolayer2 = new OpenLayers.Layer.WMS( "abc… ","http://localhost:8080/geoserver/gwc/service/wms", {layers: 'def… ', transparent:"true", format: 'image /png', numZoomLevels: 3, minZoomLevel: 6 },{isBaseLayer:false}, { tileSize: new OpenLayers.Size(256,256)}); map.addLayer(demolayer2); map.addControl(neu OpenLayers.Control.LayerSwitcher({'div':OpenLayers.Util.getElement('layerswitcher')})); map.zoomToExtent(neue OpenLayers.Bounds(-4.601615515076983,39.8769407866263,-3.0527184873294764,41.16710732525929));

Eine Möglichkeit, dies zu tun (weiß nicht, ob dies die einzige Möglichkeit ist), besteht darin, ein Array verfügbarer Auflösungen über den Parameter options an den Map-Konstruktor zu übergeben. Etwas wie…

var map = new OpenLayers.Map('map', { Auflösungen: [0.02197265625, 0.0439453125, 0.17578125] });

Eine Möglichkeit, die für Sie interessanten Auflösungen zu erhalten, könnte sein:

1) Zoomen Sie Ihre Karte auf eine gewünschte Zoomstufe (ich habe es über die Konsole gemacht, indem ich ausgeführt wurde)map.zoomTo(x)woxist die Zoomstufe, an der ich interessiert war)

2) über die Konsole log dasKartenauflösungund nimm es zur Kenntnis

3) Wiederholen Sie dies für alle Zoomstufen, die Sie einschließen möchten

Hier finden Sie weiterführende Informationen.


Im OlpenSchichten 3 Sie können Ihre Ansicht einfach mit den gewünschten Zoombeschränkungen initialisieren:

var map = new ol.Map({ target: 'map', //… view: new ol.View({ maxZoom: 8, minZoom: 6, zoom: 7 }) });

Fügen Sie einfach den folgenden Code zu Ihrem Skript hinzu:

map.isValidZoomLevel = function(zoomLevel) { return ((zoomLevel != null) && (zoomLevel >= 6) && (zoomlevel <= 8)); }

Dies sollte auch durch Setzen von numZoomLevels und maxResolution möglich sein (vielleicht einfacher, als alle Auflösungen einzeln zu finden):

var map = new OpenLayers.Map('map', { numZoomLevels: 15, maxResolution: 39135.758475 });

Hinweis: Die Auflösung für eine bestimmte Zoomstufe ist die Auflösung der vorherigen Zoomstufe geteilt durch 2.


Schau das Video: OpenLayers Introduction for Beginners