У меня есть простая функция (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"
}
});
}