2016-07-18 9 views
1

Ich weiß, dass diese Frage bei vielen anderen Themen diskutiert wurde. Aber ich kann immer noch keine Lösung für mein Problem finden. Keine der Quittungen sind Arbeiten für mich.So zoomen Sie zu einer Funktion von Openlayers3 (v3.17.1) map

Ein Problem ist sehr einfach. Ich habe Funktionen in meiner Openlayers3 (v3.17.1) Karte. Ich sollte auf jedes gewünschte Feature zoomen können.

Vor Zoom:

enter image description here

Nach Zoom:

enter image description here

Wie ich bereits erwähnte ich Version v3.17.1 verwenden.

var features = myLayer.getSource().getFeatures(); 
var myFirstFeature = features[0]; 

Option 1:

map.zoomToExtent(feature.geometry.getBounds()); 

Option 2:

var bounds = f.geometry.getBounds().clone(); 
    this._map.zoomToExtent(bounds,false); 
+0

Können Sie uns zeigen Sie Ihren Code, der nicht arbeiten und was genau hast du probiert? – kaycee

+0

wurde eine ursprüngliche Beschreibung aktualisiert – AlexeiBerkov

Antwort

1

gibt es viele Möglichkeiten, dies zu tun, zum Beispiel, wenn Sie nur ein Merkmal vergrößern möchten und Sie möchten Definieren Sie die Zoomstufe, die Sie verwenden können:

var ext=feature.getGeometry().getExtent(); 
var center=ol.extent.getCenter(ext); 
map.setView(new ol.View({ 
    projection: 'EPSG:4326',//or any projection you are using 
    center: [center[0] , center[1]],//zoom to the center of your feature 
    zoom: 12 //here you define the levelof zoom 
})); 

eine andere Art und Weise gibt, in dem Sie mehr als nur ein Merkmal vergrößern kann:

map.getView().fit(extent, map.getSize()); 

, dass Sie das Ausmaß Ihrer Funktion im Ausmaß angenommen oder Funktionen

+0

Ihr erster Beleg geholfen. Für mich geht das. – AlexeiBerkov