簡體   English   中英

如何使用 mapbox 在 GEOJSON 中訪問嵌套的 object

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM