Ich benutze openlayers 3, um eine Karte mit Vektorfunktionen oben zu erstellen. So weit, ist es gut.openlayers 3 Zoom auf kombiniertes Ausmaß
Ich habe mehrere Vektorebenen, gruppiert in einer Variablen namens projecten.
var projecten = new ol.layer.Group({
title: 'Projecten',
layers: [
new ol.layer.Vector({
title: 'EVZ Den Dungen',
source: new ol.source.GeoJSON(
/** @type {olx.source.GeoJSONOptions} */ ({
object: EVZDenDungen,
projection: 'EPSG:3857'
})),
style: function(feature, resolution) {
return lookup[feature.get('landschapselement')];
}
}),
new ol.layer.Vector({
title: 'EVZ Croy',
source: new ol.source.GeoJSON(
/** @type {olx.source.GeoJSONOptions} */ ({
object: EVZCroy,
projection: 'EPSG:3857'
})),
style: function(feature, resolution) {
return lookup[feature.get('landschapselement')];
}
}),
new ol.layer.Vector({
title: 'Natuurcompensatie Gasselsbroek',
source: new ol.source.GeoJSON(
/** @type {olx.source.GeoJSONOptions} */ ({
object: NatuurcompensatieGasselsbroek,
projection: 'EPSG:3857'
})),
style: function(feature, resolution) {
return lookup[feature.get('landschapselement')];
}
}),
new ol.layer.Vector({
title: 'Ebben',
source: new ol.source.GeoJSON(
/** @type {olx.source.GeoJSONOptions} */ ({
object: Ebben,
projection: 'EPSG:3857'
})),
style: function(feature, resolution) {
return lookup[feature.get('landschapselement')];
}
}),
new ol.layer.Vector({
title: 'Zionsburg',
source: new ol.source.GeoJSON(
/** @type {olx.source.GeoJSONOptions} */ ({
object: Zionsburg,
projection: 'EPSG:3857'
})),
style: function(feature, resolution) {
return lookup[feature.get('landschapselement')];
}
})
]
})
Jetzt möchte ich die projecten Variablen irgendwie Schleife durch, Schleife durch die Schichten nacheinander, um das Ausmaß der jeweiligen Feature-Layer erhalten und stoppen, wenn die letzte Schicht erreicht ist. Dann möchte ich auf diesen kombinierten Umfang zoomen.
Das ist meine Grundeinstellung (Ich bin nicht gut mit Javascript und Schleifen):
projecten.getLayers()
for (var i = 0, ii = layers.length; i < ii; ++i) {
layer = layers[i];
ol.extent.boundingExtend(extent, layer.getBounds());
}
map.getView().fitExtent(extent,map.getSize());
Alle Ideen, wie ich dies nicht erhalten zu arbeiten?
Ich weiß nicht, Extends gut genug, um eine Antwort zu erstellen, aber ich denke, in Ihrer Schleife können Sie ol.extent.getBottomLeft und ol.extent.getTopRight für die Ebene Ebene verwenden. Speichern Sie die Mindestwerte von links unten und die Höchstwerte von oben rechts und verwenden Sie diese, um Ihre neue Ausdehnung zu erstellen. –
Wie? Kannst du es versuchen? – user1697335