Огонь mapbox styledata событие 3 раза, огонь мне нужен только 1 раз, как? - PullRequest
0 голосов
/ 03 октября 2019

Событие запуска карты mapbox 3 раза, огонь мне нужен только 1 раз, как?

 map.on("styledata", loadTiles);    // will fire multiple 3 times, whenever style changed.  
                                    // event.stopPropagation(); does not work.


 map.on("load", loadTiles);       // only fire 1 time. but when you change base map, use below

      map.setStyle('mapbox://styles/mapbox/' + layerId, {diff: false});

 //  on load event will not fire, which I need it fire to re-load geojson layer. 


 map.on("styledata"    // works fine, but it fire 3 same event at same time, cause load 3 times geojson layer, cause other error when you load 3 times geojson layer at same time.


    //   How to make styledata on fire 1 times instead of 3? 

1 Ответ

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

Ответ в 2019 году:

map.once ('styledata', loadTiles);// Слушатель будет вызван в первый раз, когда событие сработает после регистрации слушателя.

      map.once('styledata', loadTiles);   //The listener will be called first time the event fires after the listener is registered.


     map.on("styledata", loadTiles);    // will fire multiple 3 times, whenever style changed.  
                                // event.stopPropagation(); does not work.


     map.on("load", loadTiles);       // only fire 1 time. but when you change base map, use below

  map.setStyle('mapbox://styles/mapbox/' + layerId, {diff: false});

    //  on load event will not fire, which I need it fire to re-load geojson layer. 


       map.on("styledata"    // works fine, but it fire 3 same event at same time, cause load 3 times geojson layer, cause other error when you load 3 times geojson layer at same time.
...