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

时间:2016-04-06 22:59:55

标签: leaflet

我将外部json添加到了传单层。当我点击geojson形状/多边形时,我想让geojson字符串退出。我该怎么做呢?我有一个对图层的引用,但我不知道如何使用属性来恢复geojson。

var layer = e.layer;

1 个答案:

答案 0 :(得分:2)

使用layer在点击处理函数中声明var将使其成为本地,因此您将无法在点击处理程序之外访问它。如果您想全局访问layer,您可以将其声明为global variable,方法是首先在函数外声明它,或者在没有var的情况下在函数中声明它。以下代码使用后一种方法创建两个全局变量,一个将图层的GeoJSON作为对象,另一个将GeoJSON作为字符串:

layer.on('click', function() {
  objectOut = layer.toGeoJSON();
  textOut = JSON.stringify(objectOut);
});

如果在单击某个功能之前有其他可能尝试访问这些变量的例程,您可能希望首先在单击处理程序之外声明它们(例如,var textOut = 'nothing clicked'等)。以下是使用此方法的示例小提琴:

http://fiddle.jshell.net/nathansnider/pgk26r6n/