Вот что я пытаюсь достичь: я хочу объединить несколько стилей (карту, созданную пользователем в Mapbox Studio) в одну карту.
Допустим, у нас есть стиль с некоторыми базовыми слоями и наборами плиток, и другим стилем с одним набором плиток, но с цветами и другой конфигурацией стилей, и я хочу динамически комбинировать их на своей карте.
Что я пробовал
- Я добавляю первый стиль с помощью
setStyle
- Сделаем запрос к API стилей и получаю второй стиль json
- Перебираем источники второго Стиль и добавить их на карту, используя
addSource
(переименование, чтобы избежать конфликта) - Переберите слои второго стиля и добавьте их на карту usgin
addLayer
Это сработало, я получал ошибки только со слоями, которые используют «текстовое поле» и требуют, чтобы стиль имел атрибут «glyphs».
Затем я попытался динамически изменить атрибут «glyphs» в Стиль карты, но это не сработало. Ошибка сохраняется.
Error: "layers.state-label.layout.text-field: use of "text-field" requires a style "glyphs" property"
Почему вместо этого я не добавляю наборы плиток?
Поскольку я хочу получить все параметры макета присутствует в стиле.
Почему я не открыл вопрос о том, как динамически изменять глифы?
Хотя это конкретная проблема, с которой я сталкиваюсь правильно Теперь я был готов получить отзывы об общем подходе.
Это что-то выполнимое? Должен ли я считать объединение нескольких стилей на карте хорошей идеей? Есть ли лучший способ сделать это?
Заранее спасибо.
Лев ,,