Сделайте масштабирование значка слоя символов инвариантным к размеру значка

#mapbox #mapbox-gl-js

Вопрос:

Я пытаюсь разместить шестиугольник (с центром над координатами), с которым я могу взаимодействовать, наведите/щелкните. Метод, который я использую, состоит в том, чтобы загрузить изображение(…_Hexagon.png), а затем добавить слой. В конечном счете идея состоит в том, чтобы иметь много шестиугольников над определенными областями.

Я получил желаемое взаимодействие с формой, но я хотел бы, чтобы этот слой был инвариантным при увеличении (т. Е. У меня есть шестиугольники, покрывающие площадь x квадратных километров во все времена, независимо от увеличения). Есть ли эффективный способ сделать это? Будет ли другой метод лучше? и т.д.

Заранее благодарю вас за любые советы!

Ответ №1:

Если вы действительно хотите масштабировать значок таким образом, чтобы он увеличивался при увеличении масштаба, вы можете использовать экспоненциальный масштаб:

"icon-scale": ["*", ["interpolate", ["exponential", 2], ["zoom"]], SCALE]

где SCALE какая-то константа, которую вы выбираете.

Вероятно, имеет больше смысла на самом деле генерировать данные шестиугольных полигонов (например, с использованием дерна) и отображать их.