GeoJSON - 如何从数组中读取要素?

时间:2017-01-30 07:28:02

标签: javascript json openlayers-3 geojson

我有一张地图,我正在绘制从JSON文件中获取其属性的多边形。 根据JSON文件中的特征值,每个多边形都用颜色填充。 JSON文件中的一个功能示例如下:

{
  "type": "Feature",
  "id": "767884",
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [136.875, 35.17291667],
        [136.878125, 35.17291667],
        [136.878125, 35.17083333],
        [136.875, 35.17083333],
        [136.875, 35.17291667]
      ]
    ]
  },
  "properties": {
    "parameterValue": 28
  }
},

使用以前的格式,我可以阅读parameterValue并使用以下脚本正确显示

var colors = function(feature) {
var id = feature.get('parameterValue');
fill.setColor(
...
  id >= 20.00 && id <= 50.00 ? orange:
...
  )
return style;
};

但是,我想做以下

{
  "type": "Feature",
  "id": "767884",
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [136.875, 35.17291667],
        [136.878125, 35.17291667],
        [136.878125, 35.17083333],
        [136.875, 35.17083333],
        [136.875, 35.17291667]
      ]
    ]
  },
  "properties": {
    "parameterValue0": [29, 28],
    "parameterValue1": [30, 29.5],
    "parameterValue2": [31, 21.9]
  }
},

并根据parameterValueX数组的第二个元素填充多边形。我通过以下方式尝试过:

var colors = function(feature) {
var id = feature.get('parameterValue0');
fill.setColor(
...
  id[1] >= 20.00 && id <= 50.00 ? orange:
...
  )
return style;
};

但不管有什么价值,它都会用黑色填充多边形。

这个想法是否可以实现?有人可以建议我这样做吗?

1 个答案:

答案 0 :(得分:0)

我已经解决了以下问题:

var colors = function(feature) {
var id = feature.get('parameterValue0');
var id = id[1]
fill.setColor(
...
  id >= 20.00 && id <= 50.00 ? orange:
...
  )
return style;
};