Leaflet 是否可以从一开始就用重叠标记器扩展传单标记器?
我正试图融入我的项目,这是使用传单。如果我看一下,我不得不相信这是可行的,但是,我想在一个状态下加载地图,即彼此接近的标记被消耗掉,而不必单击任何组。然而,从文档中我看不出这是如何做到的,我也担心缩放事件,因为演示会在任何缩放事件上折叠组 所以,我的问题如下:如何在地图加载时使用重叠标记器展开传单的所有组,并在地图缩放时重新计算 编辑: 这就是我试图使用它的方式:Leaflet 是否可以从一开始就用重叠标记器扩展传单标记器?,leaflet,oms,Leaflet,Oms,我正试图融入我的项目,这是使用传单。如果我看一下,我不得不相信这是可行的,但是,我想在一个状态下加载地图,即彼此接近的标记被消耗掉,而不必单击任何组。然而,从文档中我看不出这是如何做到的,我也担心缩放事件,因为演示会在任何缩放事件上折叠组 所以,我的问题如下:如何在地图加载时使用重叠标记器展开传单的所有组,并在地图缩放时重新计算 编辑: 这就是我试图使用它的方式: var omsOptions = { keepSpiderfied: true, nearbyDistance: 3
var omsOptions = {
keepSpiderfied: true,
nearbyDistance: 300
};
var oms = new OverlappingMarkerSpiderfier(map, omsOptions);
for (var cachedMarkerIndex in cachedMarkers) {
oms.addMarker(cachedMarkers[cachedMarkerIndex]);
}
希望keepSpiderfied能够保持它们的蜘蛛化,但它不仅没有以蜘蛛化的方式初始化标记,而且如果我单击地图上的任意位置,它还会折叠标记。我真的不打算批评这个库,因为我相信这是一个好主意,也是作者的荣誉。但是,如果我需要的功能不受支持,那么我将不得不编写我自己的库,而不是使用这个库。直接不。。没有类方法或选项使标记蜘蛛化。关于第39行,定义了一些映射事件监听器:
@map.addEventListener(e,=>@['unsiderfy']),用于['click','zoomend']
中的e。因此,在地图的每次单击或缩放事件中,标记都会被取消。因此,您必须编写自己的库或通过添加附加选项来增强现有库
编辑(LajosÁrpád):
步骤:
this.options=opt代码>
\u类
功能
,以确保以后可以使用这些选项
if(this.options.DisableSpiderfy){
//蜘蛛侠被禁用了
返回;
}
分配给p.spiderfy
的功能
我补充说
if(this.options.disableUnsiderfy){
//Unsiderfy被禁用了
返回;
}
分配给p[“unsiderfy”]
的功能
用法示例:
`var omsOptions = {
keepSpiderfied: true,
nearbyDistance: 100,
DisableUnspiderfy: true
};
var oms;
function drawSpiderMarkers(rows, options) {
drawMarkers(rows, options); //This function draws markers by marker options
if (!oms) {
setTimeout(function() {
oms = new OverlappingMarkerSpiderfier(map, omsOptions);
for (var cachedMarkerIndex in cachedMarkers) {
oms.addMarker(cachedMarkers[cachedMarkerIndex]);
}
for (var cachedMarkerIndex in cachedMarkers) {
oms.spiderListener(cachedMarkers[cachedMarkerIndex]);
}
}, 200);
}
}`
通过这些更改,我已经达到了可以根据自己的喜好打开/关闭spiderfy/unsiderfy的程度,允许我从一开始就对所有标记进行spiderfy,而不是通过任意单击来取消spiderfy。不幸的是,这是一种黑客行为,无法与该库的未来版本兼容,但是,目前这是一个很好的解决方案。Hm为什么要扩展mapstart上的所有组?这和没有蜘蛛侠一样令人困惑。但我认为你只想为少数群体做这件事。我要一个look@Manuel,这在我的情况下是可取的,因为有许多标记,必须显示所有标记。如果用户必须单击每个组中的一个标记,那么页面就不是用户友好的,因为我正在显示要完成的工作,并且必须看到所有标记。必须在每个组中至少单击一个标记会造成麻烦,如果一个标记可能在多个组中,则在处理它们时存在冗余的危险。在演示中显示Happiness的情况下,UX最好使用单击展开方法。但就我而言,这将破坏图书馆的好处。曼纽尔,谢谢你的回答。有没有一种方法可以将咖啡脚本反转为Javascript?没关系,找到了这个:。我会尝试你的想法,再次感谢……曼纽尔,在此期间,我能够解决这个问题,但在目前的状态下无法接受你的答案。如果你允许我用遗漏的内容编辑你的答案,我会接受的。好的,很高兴看到你的解决方案!我对你如何解决这个问题很感兴趣