[英]How to access a nested object in GEOJSON with mapbox
我有一个非常大的 geojson,我正在通过 mapbox tile 服务器读取它。 我可以将数据提高到“统计”,但之后不知道如何访问对象。 又怎样
map.on('click', 'area-polygon', (e) => {
console.log(e.features[0].properties.statistics);
});
这是当前的 console.log() output;
{"runs":
{"byActivity":
{"downhill":
{"byDifficulty":
{"easy":
{"count":17,
"lengthInKm":14.4112,
"minElevation":1553.6,
"maxElevation":1999.59,
"combinedElevationChange":1996.04},
"advanced":
{"count":4,
"lengthInKm":2.33805,
"minElevation":1645.08,
"maxElevation":1936.27,
"combinedElevationChange":628.717},
"intermediate":
{"count":11,
"lengthInKm":8.24159,
"minElevation":1553.6,
"maxElevation":2000.42,
"combinedElevationChange":1542.16},
"other":
{"count":5,
"lengthInKm":2.42858,
"minElevation":1595.16,
"maxElevation":2005.37,
"combinedElevationChange":208.312}
}
}
},
"minElevation":1553.6,
"maxElevation":2005.37
},
"lifts":
{"byType":
{"chair_lift":
{"count":3,
"lengthInKm":3.82236,
"minElevation":1553.6,
"maxElevation":1998.59,
"combinedElevationChange":863.786
},
"magic_carpet":
{"count":1,
"lengthInKm":0.962681,
"minElevation":1580.79,
"maxElevation":1742.16,
"combinedElevationChange":161.378},
"gondola":
{"count":1,
"lengthInKm":2.07562,
"minElevation":1580.44,
"maxElevation":1998.42,
"combinedElevationChange":417.985}
},
"minElevation":1553.6,
"maxElevation":1998.59
},
"maxElevation":1998.59,
"minElevation":1553.6
}
那么我将如何在 byDifficulty 等下轻松访问计数? 这不起作用:
e.features[0].properties.statistics.runs.byActivity.downhill.byDifficulty.easy.count
这里有些奇怪 - 如果您的第一个日志 output 是正确的,那么您的第二个代码将起作用。
通常,Mapbox GL JS 将 GeoJSON 中的嵌套对象转换为字符串。
因此,您需要执行以下操作:
JSON.parse(e.features[0].properties.statistics).runs.byActivity.downhill.byDifficulty.easy.count
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.