使用filter函数创建具有公共属性的变量(Leaflet,GeoJSON,jQuery)

时间:2017-09-12 17:39:04

标签: jquery leaflet geojson

我有大约70个点,其中包含在外部geoJSON文件中列出的关联属性。每个点都有“年”的值。我的目标是创建按钮,您可以单击以仅显示给定年份的点。例如:点击2013按钮只会使地图上显示“年”= 2013的点。

链接到我的项目:https://github.com/erinreiss/mallikaMap/tree/try3

我的尝试是将所有2013年积分都放在一个变量中,如下所示:

var trees2013_3 = L.geoJson(myJson, {filter: year2013get});

function year2013get(feature) {
  if (feature.properties.year === "2013") return true
}

然后能够对这个变量进行操作,我试图通过使按钮将所有2013点降低到不透明度来进行实验.1:

var toggle2013 = document.getElementById('button2013');
    button2013.onclick = function() {
        console.log('Show 2013 Trees!');
        console.log(trees2013_3);
        $('trees2013_3').animate({"opacity": .1});
    }

相反,我收到的错误是:

  

未捕获的TypeError:无法读取未定义的属性“year”       at Object.year2013get [as filter](script.js:59)       在e.addData(leaflet.js:8)       在e.initialize(leaflet.js:8)       在新e(leaflet.js:6)       在Object.o.geoJson(leaflet.js:8)       在script.js:55

谢谢!

0 个答案:

没有答案