MapBox: назначить иконку для точек - PullRequest
0 голосов
/ 12 января 2020

Я пытаюсь присвоить иконку точкам из Geo JSON. Я использую этот фрагмент:

    map.addSource('Punti di allerta', {
        type: 'geojson',
        data: source_attentionpoints, 
    });
    map.addLayer({
        'id': 'Punti di allerta',
        'type': 'circle',
        'source': 'Punti di allerta',
        'layout': {
            'icon-image': '{% static 'image/webgis/icons/warning50.png' %}',
            'icon-size': 0.5
        }
    });

Я вижу эти две ошибки, и точки не отображаются:

Ошибка: "layer.Punti di allerta.layout.icon-image: Неизвестное свойство "icon-image" "Ошибка:" Layers.Punti di allerta.layout.icon-size: неизвестное свойство "icon-size" "

Но если я использую этот фрагмент вместо предыдущего Я вижу все точки без проблем:

map.addLayer({
    'id': 'Punti di allerta',
    'type': 'circle',
    'source': 'Punti di allerta',
     'paint': {
         'circle-radius': 8,
         'circle-color': 'rgb(0,0,0)',
         'circle-opacity': 1.0,
         'circle-stroke-width': 4,
         'circle-stroke-color': 'rgb(200,200,200)',
         'circle-stroke-opacity': 1.0,
         'circle-blur': 0,
    }
});

В чем я не прав?

1 Ответ

2 голосов
/ 12 января 2020

Я нашел проблему. В моем коде есть две ошибки:

  1. 'type': 'circle' вместо 'type': 'symbol'
  2. Мне нужно это перед add.Layer:

    map.loadImage(
        '{% static 'image/webgis/icons/warning50.png' %}',
        function(error, image) {
            if (error) throw error;
            map.addImage('warning', image);
            }
    );
    
...