在传单映射上更新CallbackHandler中的geoJson

时间:2016-06-29 15:17:04

标签: javascript d3.js callback leaflet

我在更新传单上的显示geoJSON时遇到问题。 我正在使用d3leaflet。每次用户选择时,callbackHandler都会收到新的geoJSONname}。

我的代码如下所示:

someCallbackHandler("name", function("newName") {
     var newJson = JSON.parse(newName);
     // then its basically this
     https://bost.ocks.org/mike/leaflet/
     ...
 });

显示第一个geoJson。但是,每当用户选择显示另一个时,地图就不会更新。 是什么导致了这种行为? 由于displayfunction嵌套在callbackHandler中,因此每次发送新geoJson时都会引发它。或者我错过了什么?

修改

很难发布代码的完整示例,因为它有很多依赖... 我把它缩小到这一点。 到目前为止我发现的是,当callbackHandler第一次踢,console.log(newJson)给了我一个Object。当callbackHandler踢出第二,第三,第四......时间时,我得到了: {crs: {type: "name", properties: ... "FeatureCollection", features: Array}。当我检查Object / {crs: {type: ....中的值时,我发现它们是不同的。但他们的地图并没有改变。

这似乎不正确?!

1 个答案:

答案 0 :(得分:0)

如果没有看到你的其余代码,只检查这个提取,我肯定会说要解决的第一个问题就是摆脱回调函数中newName参数周围的引号......

应该看起来像someCallbackHandler("name", function(newName) {