我怎样才能得到几个kml文件的界限?我可以轻松获得一个 kml 文件,但我有点迷失了......要获得地图中所有 kml 文件的边界......
这是代码(写在php文件上下文中)
首先,我定义了所需的 kml 文件以及用于源和层的 js var(即: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.",
";
后来我把它放在地图上(所以 $layers_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);
});
}
});