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

Rol*_*ndo 3 leaflet

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

var layer = e.layer;
Run Code Online (Sandbox Code Playgroud)

nat*_*der 5

layer在单击处理程序函数中声明usingvar将使其本地化,因此您将无法在单击处理程序之外访问它。如果要layer全局访问,则需要将其声明为全局变量,方法是首先在函数外声明它,或者在函数内声明它而不使用var. 以下代码使用后一种方法创建两个全局变量,一个将图层的 GeoJSON 作为对象,另一个将 GeoJSON 作为字符串:

layer.on('click', function() {
  objectOut = layer.toGeoJSON();
  textOut = JSON.stringify(objectOut);
});
Run Code Online (Sandbox Code Playgroud)

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

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