Перекрасить несколько слоев во время вызова API изображений MapBox Stati c? - PullRequest
0 голосов
/ 05 августа 2020

Я использую API изображений Mapbox stati c для создания изображений маршрутов, которые я использовал за последние несколько дней. Из-за ограничений URL-адресов я иду по маршруту набора плиток: каждый запуск загружается как источник набора плиток, у меня есть рецепт, который объединяет их все, а затем я публикую sh один набор плиток со многими слоями.

Я хотел бы иметь возможность вызывать API изображений stati c и сообщать ему (например) сделать layer_01 "красным" и [layer_02, layer_03] "серым". Настроить цвет можно с помощью addLayer, но я не могу понять, как вызвать несколько слоев из одного набора тайлов. Возможно ли это?

Если нет, нужно ли мне добавлять все слои в собственный стиль и повторно публиковать sh его с новыми цветами перед каждым вызовом? Постоянная перестройка стилей кажется невероятно обременительной.

1 Ответ

1 голос
/ 06 августа 2020

Немного сложно дать конкретный c совет, не видя вашего стиля или структуры ваших наборов тайлов.

Однако, основываясь на вашем описании вашей настройки, я считаю, что вы можете достичь цель «перекрашивать маршруты» путем создания слоя стиля маршрута на лету с помощью параметра строки запроса Stati c Image API addlayer. addlayer является мощным в первую очередь потому, что позволяет вам стилизовать данные карты во время запроса с полным использованием выражений стиля. (Примечание: эта рекомендация предполагает, что ваши линии маршрута имеют некоторые отличительные характеристики c.)

В качестве быстрого доказательства концепции, вот статический запрос изображения c, который принимает стиль mapbox/streets-v11 и добавляет новый слой стиля. Слой использует выражение match для раскрашивания дорог в зависимости от их «класса»:

https://api.mapbox.com/styles/v1/mapbox/streets-v11/static/-122,36.99,11/300x300?before_layer=road-number-shield&addlayer={%22id%22:%22road-overlay%22,%22type%22:%22line%22,%22source%22:%22composite%22,%22source-layer%22:%22road%22,%22paint%22:{%22line-color%22:%20[%22match%22,%20[%22get%22,%20%22class%22],%20%22motorway%22,%20%22%23ff0000%22,%20%22primary%22,%20%22%23FFFF00%22,%20%22secondary%22,%20%22%23FF00FF%22,%20%22street%22,%20%22%2300FFFF%22,%20%22%23FFFFFF%22],%22line-width%22:2}}&access_token=your.tk

Это дает следующий результат:

изображение карты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...