Używam otwartych klocków 3 do utworzenia mapy z funkcjami wektorowymi u góry. Jak na razie dobrze.nakładki 3 powiększ powiększenie
Mam kilka warstw wektorowych, zgrupowanych w zmiennej o nazwie 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')];
}
})
]
})
Teraz chcę jakoś pętli zmiennych projecten, pętlę przez jego warstw jedna po drugiej, uzyskać stopień każdej warstwie funkcji, a zatrzyma się, gdy zostanie osiągnięta ostatnia warstwa. Następnie chcę powiększyć do tego połączonego zakresu.
To moja podstawowa konfiguracja (nie jestem dobry z JavaScript i pętle):
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());
Wszelkie pomysły, w jaki sposób mogę uzyskać to do pracy?
Nie znam wystarczająco dużo, aby stworzyć odpowiedź, ale myślę, że w swojej pętli można użyć ol.extent.getBottomLeft i ol.extent.getTopRight dla zakresu warstw. Przechowuj wartości minimalne lewych dolnych i maksymalnych wartości prawego górnego rogu i użyj ich, aby utworzyć nowy zakres. –
Jak? Czy możesz spróbować? – user1697335