Ответ 1
Проблема заключается в том, что начальная точка вашего стиля в Mapbox Studio, выбранном вами шаблоне, не содержит глифов/спрайтов, на которые вы ссылаетесь в макете слоя. Если вы перейдете к тому же стилю, который они используют в примере, который вы использовали:
mapbox://styles/mapbox/streets-v8
вы увидите, что появятся маркеры. Это потому, что они были добавлены в этот стиль. Если вы вернетесь к своему стилю, они снова исчезнут.
Здесь console.log вашего стиля спрайтов:
И здесь console.log улиц Mapbox справляется:
Как вы можете видеть, у вас есть только два, в то время как у mapbox есть десятки (больше, чем на скриншоте). Вы можете использовать те, которые у вас есть, просто используя имена свойств: default_marker
и secondary_marker
:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-77.03238901390978, 38.913188059745586]
},
"properties": {
"title": "Mapbox DC",
"marker-symbol": "default_marker"
}
}
map.addLayer({
"id": "markers",
"source": "markers",
"type": "symbol",
"layout": {
"icon-image": "{marker-symbol}",
"text-field": "{title}",
"text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"],
"text-offset": [0, 0.6],
"text-anchor": "top"
}
});
Пример для Plunker: http://plnkr.co/edit/W7pfGHVBzJj8U3AmPyzf?p=preview
Если вам нужно больше, вам нужно добавить спрайты/глифы, которые вы хотите использовать в своем стиле в студии Mapbox. К сожалению, это имеет мало общего с "программированием", поскольку оно связано с Mapbox Studio, которое является программным инструментом и, таким образом, является "оффтопическим" здесь в stackoverflow.
Если вам даже не нужны спрайты/глифы, вы можете также использовать свойства type: circle
и paint
для создания простых кругов:
map.addLayer({
"id": "markers",
"source": "markers",
"type": "circle",
"paint": {
"circle-radius": 10,
"circle-color": "#007cbf"
}
});
Пример для Plunker: http://plnkr.co/edit/QDtIBtDIimKy6TUmKxcC?p=preview
Подробнее о стилях и спрайтах можно найти здесь: