Leaflet 如何将geojson对象添加到传单中?

Leaflet 如何将geojson对象添加到传单中?,leaflet,Leaflet,我向传单层添加了外部json。当我点击geojson形状/多边形时,我想把geojson字符串拿出来。我该怎么做?我有一个对该层的引用,但我不知道如何使用属性返回geojson var layer = e.layer; 使用var在click handler函数中声明layer将使其成为本地的,因此您将无法在click handler之外访问它。如果要全局访问层,则需要先在函数外部声明它,或在函数内部声明它,而不使用var。下面的代码使用后一种方法创建两个全局变量,一个以层的GeoJSON为对

我向传单层添加了外部json。当我点击geojson形状/多边形时,我想把geojson字符串拿出来。我该怎么做?我有一个对该层的引用,但我不知道如何使用属性返回geojson

var layer = e.layer;

使用
var
在click handler函数中声明
layer
将使其成为本地的,因此您将无法在click handler之外访问它。如果要全局访问
,则需要先在函数外部声明它,或在函数内部声明它,而不使用
var
。下面的代码使用后一种方法创建两个全局变量,一个以层的GeoJSON为对象,另一个以GeoJSON为字符串:

layer.on('click',function(){
objectOut=layer.toGeoJSON();
textOut=JSON.stringify(objectOut);
});
如果您有其他例程可能在单击功能之前尝试访问这些变量,您可能希望首先在单击处理程序之外声明它们(例如,
var textOut='nothing clicked'
,等等)。下面是使用此方法的小提琴示例:


“在函数中声明(一个var)而不使用(使用关键字)var”请不要这样做。不明确地确定变量的范围实际上是JS中最糟糕的事情之一,可能会导致各种错误。这是代码评审中翻表的第二大原因,也是JS密集型面试失败的第一大原因(开玩笑,不是开玩笑)。@nathansnider我知道你的答案是2016年,但你能找到网页链接吗?