ArcGIS JavaScript api Map update-end 停止触发
Posted
技术标签:
【中文标题】ArcGIS JavaScript api Map update-end 停止触发【英文标题】:ArcGIS JavaScript api Map update-end stops firing 【发布时间】:2015-11-11 16:56:48 【问题描述】:我们有一个使用 arcgis javascript api 的复杂网络地图应用程序。以下代码用于通知 ui 地图图层已加载:
on(map,"update-end",function()
//emit event to ui module
);
map.addLayers(layers);
应用程序经常添加和删除地图图层。然而,偶尔会出现问题,尽管添加了层,但更新结束事件不会被触发,尽管层完成了加载。发生这种情况后,除非应用重新加载,否则事件不会再次触发。
有谁知道在什么情况下会发生这种情况?我们如何预防这个问题?
【问题讨论】:
【参考方案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);
【讨论】:
以上是关于ArcGIS JavaScript api Map update-end 停止触发的主要内容,如果未能解决你的问题,请参考以下文章
ArcGIS api for javascript—测量,测距问题
arcgis for javascript 中 如何限制地图无限缩小 ,我写map.setMinResolution() 报错
使用arcgis javascript api 开发前台应用如何导入本地地图
ArcGIS API for JavaScript 4.2学习笔记[9] 同一种视图不同数据(Map)同步