2016-06-29 32 views
0

我在更新小册子地图上显示的geoJSON时遇到问题。 我正在与d3leaflet合作。每次用户选择时,callbackHandler都会收到新的geoJSONname)。在小册子地图上更新CallbackHandler中的geoJson

我的代码看起来如下:

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: ....中的值时,我发现它们有所不同。但是他们的地图不会改变。

这似乎不正确?!

回答

0

没有看到你的代码的其余部分,只检查这种提取物,我肯定会说,首先要解决的问题是摆脱围绕在回调函数的参数newName的报价...

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

+0

对不起,这是一个错字......当然,它不是一个字符串,而是一个变量名。 – Stophface

+1

好的,你可以在这里发布一个完整的例子吗? – snkashis

+0

我尽我所能地编辑了我的问题。 – Stophface

相关问题