Я пытаюсь сделать что-то, что мне кажется очень простым, но, похоже, я явно неправильно понимаю важную часть функции mapbox addlayer
.
Цель
Создавайте динамически идентифицируемые значки на основе значения данных функций (например, vale данных объектов geojson title: "walmart"
). По сути, просто добавление динамических значков магазина из изображения спрайта, когда эти местоположения запрашиваются через tilequery. изображение здесь
Проблема
Я все время получаю сообщение об ошибке при попытке использовать значения спрайта из стиля. Ошибка: util.js:349 Image "airport-11" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.
Я вижу множество ресурсов, говорящих о спрайтах, но ни один из них не обсуждает, как именно реализовать их таким образом. Я даже попытался запросить спрайт, а затем добавить значения, используя точечную нотацию, чтобы получить доступ к значениям спрайта. Это дает ошибку неопределенного и недопустимого значения.
Пример кода:
map.addLayer({
id: "tilequery-points",
type: "symbol",
source: "tilequery", // Set the layer source
layout: {
"icon-image": [
"match",
["get", "title"],
["HEB"],
"H-E-B_logo",
["Pilot Flying j"],
sprite.Pilot_Travel_Centers_logo,
// "Pilot_Travel_Centers_logo",
["Dollar General"],
"Dollar_General_logo",
["Cumberland Farms Corp"],
"Cumberland_Farms_logo (1)",
["CEFCO"],
"CEFCO-convenience-stores-Logo_510px",
["BJs Wholesale Inc"],
Вопрос
Как мне получить доступ к значениям спрайтов и не получить ошибку? !!! Спасибо за помощь! Я бы не стал спрашивать, не нужно ли мне это!
ОБНОВЛЕНИЕ
Я понял, что для использования изображений спрайтов внутри любого слоя изображения будут автоматически доступны, если они есть в вашей коллекции изображений спрайтов студии Mapbox. Путаница заключалась в том, что раньше я не мог использовать их по ссылке. Однако он должен работать автоматически.
Надеюсь, это поможет!