Leaflet.js - 与标记碰撞

时间:2015-04-28 10:22:23

标签: leaflet

当你进入标记半径10米范围内时,我正在尝试创建一个调用事件的函数。有什么好的插件或命令吗?

我已经看到有distanceTo(),但没有找到任何好的示例或教程。

提前致谢, 卡勒

1 个答案:

答案 0 :(得分:0)

我对distanceTo()方法的理解是它返回从当前位置到给定点的距离。这将要求您知道要测量距离的点,您可以通过迭代所有标记点并计算到当前标记位置的距离来做到这一点,但如果您有很多标记,这可能需要一段时间

我建议使用leaflet-knn插件,如this post中所述。

如果这对您不起作用而且您愿意尝试使用火腿解决方案,则可以始终在标记图层下设置圆形图层,为每个圆圈提供10米的半径并设置不透明度/ fillOpacity为零。然后,您可以将悬停事件绑定到圆圈,当光标距离标记10米时会触发该圆圈。这是一个非常普遍的例子:

var styleOptions = {
    opacity: 0, //the opacity of the circle border
    fillOpacity: 0, //the opacity of the circle
    className: "circle" //class for the circles
    };  

var circle = L.circle([lat, lng], 10, styleOptions).addTo(map);
var marker = L.marker([lat, lng]).addTo(map);

//create a hover event
jQuery(".circle").mouseover(function(){
... do something ...
});