Как обновить слой в mapbox - PullRequest
       10

Как обновить слой в mapbox

0 голосов
/ 24 октября 2019

У меня вопрос по поводу mapbox - функция обновления слоя.

Сначала у меня есть исходный GeoJSON, и они могут отображаться на карте enter image description here

Мы видим переменную «пользователь» на консоли и две точки на карте.

Теперь я запрашиваю данные из моей локальной базы данных, и бэкэнд передает GEOJSON во внешний интерфейс, переменная «пользователь» имеетбыл обновлен, как мы видим из консоли.

enter image description here

Итак, теперь слой должен быть обновлен, я пишу функцию щелчка, которая при нажатииНа старом слое (точках) будут отображаться новые данные (точки).

map.on('load', function(){

        map.addSource('wifiData',{
            'type': "geojson",
            'data': {
                    "type": "FeatureCollection",
                    "features": user,
                }
        });

        map.addLayer({
            'id': 'test',
            'type': 'circle',
            'source' : 'wifiData',
            'paint':{
                'circle-color': '#00b7bf',
                'circle-radius': [
                    '/',['get','total'],50
                ],
                'circle-stroke-width': 1,
                'circle-stroke-color': '#333',
                'circle-opacity': 0.3,
            }
        });

map.on('click','test',function () {
                map.getSource('wifiData').setData(user);
            })

        });

Но на консоли отображается сообщение «Ошибка {сообщение:« Входные данные не являются допустимым объектом GeoJSON. »», не могли бы вы рассказать мне, какобновить слой на карте зависит от новых данных?

1 Ответ

2 голосов
/ 24 октября 2019

Это не верно GeoJSON. Если у вас есть несколько функций, вам нужно обернуть их в коллекцию функций

...