[英]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.