【问题标题】:Leaflet: retrieving bounds for a KML polygon传单:检索 KML 多边形的边界
【发布时间】:2016-10-27 21:53:15
【问题描述】:

我正在使用名为 leaflet-omnivore 的 Leaflet 插件将多边形插入到 Leaflet 地图中。我使用的语法是:

var polygon = omnivore.kml('placeName.kml');
polygon.addTo(map);

这很好用;多边形出现在我的地图上。但是,一旦添加,我想缩放/平移地图以尽可能适合形状。我一直在尝试这个:

polygon.addTo(map).fitBounds();

...但这会引发错误:'fitBounds is not a function'。我也试过用这个来找到坐标:

polygon.addTo(map).getBounds().getNorthEast();

...但它会返回 'cannot read property 'lat' of undefined'

有人有什么想法吗?我难住了。文档是 here,我使用的是 Leaflet 1.0.0。

【问题讨论】:

    标签: javascript leaflet kml


    【解决方案1】:

    您必须等到.kml 加载完毕。在'ready' 事件触发后做你的事情,在文档HERE 中说明:

    var polygon = omnivore.kml('yourKML.kml');
    polygon.addTo(map);
    
    polygon.on('ready', function() {
        map.fitBounds(polygon.getBounds())
    });
    

    【讨论】:

    • 我知道这会是我忽略的事情!非常感谢你的帮助。有什么特别的事情让你知道这是一个时间问题吗? '未定义'部分可能吗? @Manuel
    • 是的,我在控制台中看到 .getBounds() 方法在 .kml 完全加载之前被调用
    猜你喜欢
    • 1970-01-01
    • 2013-04-30
    • 2013-01-23
    • 2020-05-26
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 2014-09-22
    • 2019-12-09
    相关资源
    最近更新 更多