2016-07-18 12 views
0

Ich möchte die Pan-Map beim ersten Zoom vermeiden, wenn die Anwendung geladen wird und die Interaktion des Benutzers beginnt. Das normale Verhalten von Openlayers 3 besteht darin, dass der Benutzer (wenn er möchte) nur in der Mitte der Karte schwenken kann, aber ich muss dies beim ersten Zoom beschränken, um zu verhindern, dass Kartografie aus der bbox angezeigt wird.So vermeiden Sie die Pan-Map bei der ersten Zoomansicht

Ist es möglich, es zu tun?

Ändern des Kartenumfangs Ich habe das erwartete Ergebnis nicht erhalten.

Vielen Dank im Voraus

Antwort

0

nur relevanten Teils des Codes der Veröffentlichung

var panInteraction = new ol.interaction.DragPan(); 

    var map = new ol.Map({ 
     layers: [raster, vector], 
     interactions : [panInteraction], 
     target: 'map', 
     view: new ol.View({ 
      center: [-11000000, 4600000], 
      zoom: 4 
     }) 
    }); 

    var zoomLevel = map.getView().getZoom(); 

    if (zoomLevel == 4) { 
     panInteraction.setActive(false); 
     //alert("deactivating"); 
    } 
+0

Große Antwort. Testen Sie es, ich habe festgestellt, dass Benutzer von mobilen Geräten immer Pan-Karte verschieben möchten. Die Einschränkung sollte nur bei Desktop-Geräten funktionieren. Ist es möglich, das Pan-Steuerelement auf eine Bbox zu beschränken und die Karte nicht zu verschieben, wenn die Kartenansicht der Ausdehnung der Karte entspricht oder ihr entspricht? Etwas ähnliches wie ein "MaxPanExtent"? Nochmals vielen Dank –

+0

Obwohl ich die genaue Antwort auf diese Frage nicht kenne, denke ich, es wird einfacher sein, ol.View-Einstellungen für diese Art von Verhalten zu verwenden. Auch Methoden wie ol.exentent.containsExtent können nützlich sein, nachdem Sie die Ausdehnung durch map.getView() erhalten haben. CalculateExtent (map.getSize()); . Aber bevor Sie das versuchen, überprüfen Sie diesen Link, wenn Sie einige nützliche Informationen sammeln können: http://gis.stackexchange.com/questions/118383/openlayers-3-max-extent – x82

Verwandte Themen