好吧,我有一个doozie,所以任何帮助非常感谢。我之前在此发布过这个问题,但可能会遗漏一些背景信息,所以我会再试一次!我有四个geojson图层,每个图层都是数组格式。要访问这些图层中的信息,它看起来像这样嵌套:layers-object-features-properties。下面是数据结构的一个样本:小册子地图:按年筛选
{
"type": "Feature",
"properties": {
"info_city": "Wuerzburg",
"info_date": 2009,
"info_status": "fac"
},
我想,以滤除属性是日期,这在我的数据是场“info_date”。我写了下面的函数,随机抽取一年作为测试过滤。这将被链接到我的地图上的范围滑块栏,范围从1971年至2016年。
function filterByYear(data){
console.log(data)
f = data.filter(function(d){ return d.features.properties.info_date === '2016';})
console.log(f)
return f;
}
顺便说一句,我也尝试过这种使用underscore.js,不得要领:
f=_.filter(data, function(d) { return d.properties.info_date == 2016; });
因此,我调用这个函数在那里我索引范围滑尺,像这样,使用图层geoJsonLayers.fellows作为输入。
if (index == 2015) {
filterByYear(geoJsonLayers.fellows)
}
什么也没有发生,而在filterByYear功能,我能够CONSOLE.LOG(数据),但没有控制台的(F)。我在这里做错了什么?并且,是否有一种更容易的方法可逐年过滤,因为我真正想要做的是在用户移动范围滑块时进行过滤,即当index = 1980时,只显示其中显示“info_date”== 1980的数据。任何帮助在这里非常感谢!谢谢。
Thanks Will!但仍然没有运气。我尝试了你的建议。我认为数据可能以一种奇怪的方式嵌套,并且无法访问数据。我不确定我会如何显示。 – DiamondJoe12
你在浏览器中工作吗?在'filterByYear()'的开头,你可以通过'console.log(data)'来查看对象的结构,并找出'info_date'是如何嵌套的。 –
请问 - 谢谢,我试过这样做,我认为我对结构有更好的处理,但我仍然无法控制'filterByYear()'函数中的任何内容(在每年筛选内)。例如,当我尝试console.log'd'或'f'时,看看发生了什么,没有显示。我不确定这是为什么。因此,这似乎是它可能破裂的地方。 – DiamondJoe12