【问题标题】:GeoJSON - How to read a feature from an array?GeoJSON - 如何从数组中读取特征?
【发布时间】:2017-01-30 07:28:02
【问题描述】:

我有一张地图,我在上面绘制多边形,这些多边形从 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]
  }
},

并根据parameterValueXarrays 的第二个元素填充多边形。我已经通过以下方式进行了尝试:

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

但无论值是什么,它都会用黑色填充多边形。

这个想法可以实现吗?有人可以建议我一种方法吗?

【问题讨论】:

  • 为什么不直接将 JSON 解析为对象?
  • @modernator 抱歉,我不知道如何将 JSON 解析为对象,因为我还是初学者,但会搜索一下。
  • 简单,只是" var data = JSON.parse(yourJSONResult); data.type; // 'feature' "

标签: javascript json openlayers-3 geojson


【解决方案1】:

我已经解决了如下问题:

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

【讨论】:

    猜你喜欢
    • 2016-05-11
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    相关资源
    最近更新 更多