У меня есть набор значков изображений, связанных со странами, которые я использую в слое Mapbox для отображения меток богатых стран. Я следую этому примеру , который просто вставляет пробелы между значками.
Однако у меня есть 5 разных значков. Может появиться любой из них, и я хочу, чтобы интервалы всегда были одинаковыми. Поэтому я не хочу использовать подход «проверить, находится ли X в массиве», потому что я думаю, что мне придется проверять дважды: один раз для значка, а затем еще раз для пространства. В любом случае, это странный способ структурировать данные.
Я хочу вытащить заранее составленный набор изображений из переменной, например: ПОЧТИ работает! Почти:
I've tried just pulling the first item out with 'at'
, and that half works:
But it still isn't interpreting the object values. Thank you in advance!
EDIT
Thanks for the followup!
If every country had the same icons and I didn't need to do this dynamically, I could make 'text-field'
look like this:
'text-field': [
'format',
['get', 'name_x'],
'\n',
['image', 'health'], ' ',
['image', 'food'], ' ',
['image', 'fiscal'], ' ',
['image', 'management'], ' ',
['image', 'supply_chain']
],
Вот что получается в случае Сенегала. Обратите внимание на пробелы:
I have succeeded in getting dynamic generation working without spaces using the "country codes in workstream arrays" approach, which looks like this:
var managementWS = ['GMB', 'GIN'];
var healthWS = ['SEN', 'GMB'];
var supply_chainWS = ['SEN', 'GIN'];
var fiscalWS = ['SEN', 'MOZ'];
var foodWS = ['GMB', 'GIN'];
// ...
'text-field': [
'format',
['get', 'name_x'],
'\n',
['case', ['in', ['get', 'iso_alpha3'], ['literal', managementWS]], ['image', 'management'], ''],
['case', ['in', ['get', 'iso_alpha3'], ['literal', healthWS]], ['image', 'health'], ''],
['case', ['in', ['get', 'iso_alpha3'], ['literal', supply_chainWS]], ['image', 'supply_chain'], ''],
['case', ['in', ['get', 'iso_alpha3'], ['literal', fiscalWS]], ['image', 'fiscal'], ''],
['case', ['in', ['get', 'iso_alpha3'], ['literal', foodWS]], ['image', 'food'], '']
],
Результат:
Сенегал правильные значки без пробелов
Но я бы предпочел пробелы между иконками. (Если бы это можно было сделать с помощью CSS, это было бы здорово! Думаю, я мог бы добавить их в SVG 10x10, сделать их 13x10 или что-то в этом роде. Но это выглядит действительно хакерским.)