【问题标题】:ArcGIS JavaScript api Map update-end stops firingArcGIS JavaScript api Map update-end 停止触发
【发布时间】:2015-11-11 16:56:48
【问题描述】:

我们有一个使用 arcgis JavaScript api 的复杂网络地图应用程序。以下代码用于通知 ui 地图图层已加载:

on(map,"update-end",function(){
    //emit event to ui module
});

map.addLayers(layers);

应用程序经常添加和删除地图图层。然而,偶尔会出现问题,尽管添加了层,但更新结束事件不会被触发,尽管层完成了加载。发生这种情况后,除非应用重新加载,否则事件不会再次触发。

有谁知道在什么情况下会发生这种情况?我们如何预防这个问题?

【问题讨论】:

    标签: javascript dojo arcgis-js-api


    【解决方案1】:

    我通常将我的map.on("update-end", endUpdateMap); 句子放在任何 map.addlayer() 之后,在您定义图层的同一 javascript 中。对我来说效果很好。

    map.on("update-end", endUpdateMap);
    
    function endUpdateMap(error) {
             esri.hide(loading);
             map.enableMapNavigation();
             map.disableDoubleClickZoom();
             map.showZoomSlider();
     }
    

    【讨论】:

      【解决方案2】:

      我遇到了这个问题,我认为 JSAPI 中实际上存在错误。如果您在更新时删除层,那么它实际上会破坏“更新开始”和“更新结束”事件,它们会完全停止触发。我会尝试在某个时候将测试用例放在一起,但我发现使用缓慢的绘图层(例如图像服务)时,问题非常普遍。

      无论如何,我必须想办法解决它,这就是我想出的:

      this.layer.setVisibility(false); // set invisible first to ensure spinner stop
      this.map.removeLayer(this.layer);
      

      【讨论】:

        猜你喜欢
        • 2018-04-11
        • 2016-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-26
        • 2016-04-02
        • 1970-01-01
        相关资源
        最近更新 更多