簡體   English   中英

我可以在 Mapbox 中使用嵌套在“case”中的“in”表達式嗎?

[英]Can I use an "in" expression nested inside "case" in Mapbox?

我正在嘗試動態更改 Mapbox 地圖上某些點的icon-size ,並且遇到了一個我似乎無法解決的問題。 圖標大小應根據給定數據點的“鍵”是否在選定鍵列表中而改變。 這是我迄今為止的代碼:

mapRef
    .getMap() // Using a React reference, getting the map itself
    .setLayoutProperty(layer, "icon-size", [
        "case",
        [
            "in",
            ["get", key],
            selectedData // Mapping an immutable list to the keys
                .toArray()
                .map(data => data[key as keyof CommonData])
        ],
        1.5,
        1
    ]
);

這似乎應該做我想做的,但是當我嘗試運行它時,我得到Error: "layers.stl-crimes.layout.icon-size[1][0]: Unknown expression "in". If you wanted a literal array, use ["literal", [...]]."

我對此感到非常困惑,因為我認為我可以在case表達式中使用in表達式。 我試過在數組中添加一個literal表達式,以及在get表達式周圍添加一個to-string表達式,但都無濟於事。 任何幫助將不勝感激,謝謝!

對於可能遇到此問題的任何人來說,這是一個版本問題。 直到 Mapbox GL JS >1.6.0 才存在in運算符; 我使用的是較早的版本。 可以在此處找到有關運算符版本控制的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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