【问题标题】:Trying to filter geoJSON data using the $.getJSON function尝试使用 $.getJSON 函数过滤 geoJSON 数据
【发布时间】:2018-04-19 21:01:26
【问题描述】:

我正在尝试使用 $.getJSON 函数过滤 geoJSON 数据,但我一直坚持如何将数据过滤为我想要的,然后将其应用于 geojson = data。

下面是代码:

// Fetch the GeoJSON file

$.getJSON(config.geojson, function (data) {
  geojson = data
  features = $.map(geojson.features, function(feature) {
    return feature.properties;
  });
  featureLayer.addData(data);
  buildConfig();

【问题讨论】:

  • 你到底想做什么?另请注意,您可以随意使用普通JS进行网络请求和使用数组方法,您不需要库
  • I'm stuck on how to filter the data to what I want - 这也是我被卡住的地方,因为你没有提供样本数据和预期的输出。
  • 我只是在寻找一个通用的答案,但我想过滤到某个 feature.properties(例如:contractor = 'Tilson'),然后将其应用于 geojson = data,如那就是我的其余代码从中获取geojson数据的地方。

标签: javascript json ajax geojson getjson


【解决方案1】:

要根据特定属性(例如contractor === 'Tilson')过滤您的功能,请在其上使用filter

geojson = data.features.filter(function(feature) {
    return feature.properties.contractor === 'Tilson';
});

【讨论】:

  • 我可以在其中添加一个 IF 语句吗?
  • 也会影响这个:featureLayer.addData(data);
  • - 不,filter 不会改变数组 data。您可以将此结果存储在 filteredData 变量中,并两次都使用它而不是 data。 - 你当然可以使用 if 语句。您只需要为要保留的项目返回一个真实值。
猜你喜欢
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
  • 1970-01-01
  • 2014-12-31
  • 2012-07-23
  • 2018-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多