Как показать несколько нарисованных полигонов в Mapbox

Я хочу сделать интерактивную карту, где можно использовать полигон (область) и сохранить его. Пользователь должен иметь возможность видеть все созданные области. Поэтому мне нужно визуализировать multiPolygon с координатами, заданными сервером, а также разрешить пользователю добавлять больше.

Это мой код:

var map = new mapboxgl.Map({
    container: 'map',
    style: 'mapbox://styles/mapbox/streets-v11',
    center: coords,
});
var draw = new MapboxDraw({
    displayControlsDefault: false,
    controls: {
        polygon: true,
        trash: true
    }
});

map.addControl(draw);

map.on('load', function () {
    var multiPolygon = turf.multiPolygon([[pol1],[pol2],[pol3]]);
    // How to render multiPolygon??
});

map.on('draw.create', function (e) {
    const coords = e.features[0].geometry.coordinates;

    // Here save the coords as a new polygon
});

Но я не могу заставить этот код работать! Может кто-то мне помочь, пожалуйста??


person nash    schedule 23.01.2020    source источник


Ответы (1)


Наконец, я сделал это, добавляя каждый полигон по отдельности:

// I get areas var from server, which is an array of coordinates
map.on('load', function () {
    map.resize();
    if (areas.length) {
        areas.forEach(area => draw.add(turf.polygon(area.polygon, { id_area: area.id_area, name: area.name })));
    }
});
person nash    schedule 27.01.2020