Как я могу получить границы нескольких кмл файлов? я могу легко получить один файл kml, но я немного растерялся ... чтобы получить границы всех файлов kml, которые есть на карте ...
вот код (напишите в контексте файла php)
сначала я определяю необходимый файл kml и переменную js для источников и слоев (то есть: src_expe_pro0 expe_pro0 ...)
$pro_kml .= '
var src_expe_pro'.$j.' =new ol.source.Vector({
url: "http://www.grottes-et-karsts-de-chine.org/gkc_kml_file/pro_kml_file/'.strtolower($pro_id).'.kml",
format: new ol.format.KML()
});
var expe_pro'.$j.' = new ol.layer.Vector({
source:src_expe_pro'.$j.'
});';
$layers_pro_kml .= "expe_pro".$j.",
";
позже я помещаю это в карту (так$ layer_pro_kml может быть одним или несколькими слоями)
...
layers: [
fond_carte,
'.$layers_pro_kml.'
expe_markers
],
...
и вот идет туман ... сейчас я просто использую это, кто работает, беря границу первого слоя kml
expe_pro0.once("change", function(e){
var extension = src_expe_pro0.getExtent();
map.getView().fit(extension);
});
так что на самом деле вопрос в том, как работать с массивами (расширением), чтобы уменьшить на один массив, мы дадим мне границы всех слоев kml? есть ли в API функции или я должен играть с массивами ?? или, может быть, простой способ?
Любой совет
Спасибо
С советом Майка (спасибо) я использую это и его работу отлично ..
var extension = ol.extent.createEmpty();
map.getLayers().forEach(function(layer){
if(!layer.values_.id) {
layer.once("change", function(e){
ol.extent.extend(extension, layer.getSource().getExtent());
map.getView().fit(extension);
});
}
});