Mapbox GL JS: невозможно загрузить внешний файл JSON - PullRequest
0 голосов
/ 24 октября 2018

У меня есть простая функция (onclick), которую я пытаюсь создать для своей карты.Я просто пытаюсь следовать этому уроку Mapbox по добавлению текущих данных (точка json), но я не могу заставить это работать с моей картой.Пока это единственный шаг, который я пытаюсь сделать.

Я написал функцию, которая правильно запускается после щелчка (проверяется с помощью всплывающего окна с предупреждением), но больше ничего не делает, как будто она пуста.Я использую Firefox, который, как я знаю, будет отображать данные (Chrome и Edge - нет).Я определил, что я каким-то образом путаю код, пытаясь поместить его в функцию.Ниже приведен код, который я начал для моей функции с именем addMDA_toA , а моя карта называется topleftmapbox :

function addMDA_toA()
{ 

alert("Function has started.");  // verifies the function started by an alert. This works.


var url = 'https://wanderdrone.appspot.com/';
topleftmapbox.on('load', function () {
    window.setInterval(function() {
        topleftmapbox.getSource('drone').setData(url);
    }, 2000);

    topleftmapbox.addSource('drone', { type: 'geojson', data: url });
    topleftmapbox.addLayer({
        "id": "drone",
        "type": "symbol",
        "source": "drone",
        "layout": {
            "icon-image": "rocket-15"
        }
    });
});

}

Я все еще новичок в JS и Mapbox вВ общем, поэтому я считаю, что функция onload () не нужна, так как я вызываю функцию по внешнему щелчку.И поэтому я удалил его (и соответствующие скобки), насколько я могу судить, потому что я учусь - в результате код ниже, который все еще ничего не делает.Опять же, все, что я пытаюсь сделать, это получить пример Mapbox , который я ранее связал с , работающим над своей собственной картой как есть, со своей собственной функцией, чтобы я мог вызывать ее, когда захочу.Ниже была вторая попытка, которая также не сработала.Что я делаю неправильно?Я не чувствую, что что-то меняю.

function addMDA_toA(){


alert("Function has started.");




var url = 'https://wanderdrone.appspot.com/';

    window.setInterval(function() {
        topleftmapbox.getSource('drone').setData(url);
    }, 2000);

    topleftmapbox.addSource('drone', { type: 'geojson', data: url });
    topleftmapbox.addLayer({
        "id": "drone",
        "type": "symbol",
        "source": "drone",
        "layout": {
            "icon-image": "rocket-15"
        }
    });



}

1 Ответ

0 голосов
/ 25 октября 2018

Второй блок кода выше был правильный , на самом деле.Это хороший пример того, как загрузить внешний файл geoJSON.Проблема была решена после того, как я заново набрал функции и код, который их выполнял.Я посмотрел это и не было никаких проблем.Реальная проблема заключалась в беспорядочном коде , поэтому, если кто-нибудь увидит это, я хотел бы напомнить вам, чтобы код оставался чистым и читабельным, так как это может сбить с толку не только вас, но и других.

...