Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 小叶标记聚类和散列_Javascript_Leaflet_Leaflet.markercluster_Hashable - Fatal编程技术网

Javascript 小叶标记聚类和散列

Javascript 小叶标记聚类和散列,javascript,leaflet,leaflet.markercluster,hashable,Javascript,Leaflet,Leaflet.markercluster,Hashable,我有一个在集群中有很多标记的地图,还有markercluster插件(我创建它是因为在.JS文件中有一个geojson作为变量),我试图用zoom/lat/lng和Hashable.JS动态修改URL散列,但每次我用超过40000个标记的geojson加载我的站点时,似乎markercluster和hashable之间存在冲突。这就是我得到的错误: leaflet-src.js:1905 Uncaught TypeError: Cannot read property 'lat' of unde

我有一个在集群中有很多标记的地图,还有markercluster插件(我创建它是因为在.JS文件中有一个geojson作为变量),我试图用zoom/lat/lng和Hashable.JS动态修改URL散列,但每次我用超过40000个标记的geojson加载我的站点时,似乎markercluster和hashable之间存在冲突。这就是我得到的错误:

leaflet-src.js:1905 Uncaught TypeError: Cannot read property 'lat' of undefined
at L.LatLngBounds.intersects (leaflet-src.js:1905)
at NewClass._recursively (leaflet.markercluster-src.js:1763)
at NewClass._recursivelyRemoveChildrenFromMap (leaflet.markercluster-src.js:1712)
at NewClass._moveEnd (leaflet.markercluster-src.js:921)
at NewClass.fire (leaflet-src.js:587)
at NewClass.panBy (leaflet-src.js:2575)
at NewClass._tryAnimatedPan (leaflet-src.js:3770)
at NewClass.setView (leaflet-src.js:2460)
at Object.<anonymous> (index.js:85)
at change (hashable.min.js:1)
传单src.js:1905未捕获类型错误:无法读取未定义的属性“lat”
在L.LatLngBounds.intersects(传单src.js:1905)
在NewClass._递归(传单.markercluster src.js:1763)
在NewClass._recursivelyRemoveChildrenFromMap(传单.markercluster src.js:1712)
在NewClass._moveEnd(传单.markercluster src.js:921)
在NewClass.fire(src.js:587传单)
在NewClass.panBy(传单src.js:2575)
在新的课堂上.\u tryAnimatedPan(传单src.js:3770)
在NewClass.setView(单张src.js:2460)
反对。(索引js:85)
更改时(hashable.min.js:1)

我怀疑内部传单.markercluster(MCG)状态尚未完全就绪,只要标记加载仍在进行

由于 CukEdLoad 选项/模式被启用,这为HashILE提供了空间,并尝试更改MAP视图,而MCG仍然处于评估40K标记的中间位置。因此,映射触发一些

“moveend”
事件,MCG尝试显示适当的标记,但由于缺少内部值而失败,因此显示错误消息

如果可以接受,简单的解决方法是等待40k标记完成加载,然后让hashable执行其工作。例如,您可以在
addLayers
完成后使用设置为“就绪”的标志。在hashable change中,检查该标志,如果尚未就绪,请稍后检查(例如,使用
setTimeout

一些插件改进的可能性:

也许有意思的是,确保MCG在每个处理块之间始终具有有效的内部状态,以便可以随时更改映射视图。但这将明显减慢整个处理过程的持续时间


另一种可能是暂时禁用映射上的MCG事件侦听器,以便在重新处理它们时,它不会尝试读取其内部变量。

是否使用传单的
chunkedLoading
选项。markercluster?是的!这是我的群集选项:chunkedloading:true,disableClusterAtZoom 19,siperifyOnMaxZoom:false禁用
chunkedloading
时是否仍有错误?不,您是一个真正的用户,您如何解释?