0

Имеется несколько файлов с геоданными вида Json. Загружаю их при помощи следующего кода в js:

$.getJSON('data_obj.json')
    .done(function (geoJson) {
        objectManager.add(geoJson);
    });
$.getJSON('data.json')
    .done(function (geoJson) {
        objectManager.add(geoJson);
    });
$.getJSON('data_osv.json')
    .done(function (geoJson) {
        objectManager.add(geoJson);

        map.geoObjects.add(objectManager);
    }); 

Объекты на карте отображаются, но не все. Как правильно в js прописать ассинхронную загрузку геоданных, чтобы все объекты выводились на карте?

1 Answers1

0

Если вы на карту надо добавить результат трех вызовов, то и добавляйте их после третьего. То есть подсчитайте, что все три завершились.

let cc = 0;
function updateMap(geoJson){
    objectManager.add(geoJson);
    if(++cc == 3){
        map.geoObjects.add(objectManager);
    }
}

$.getJSON('data_obj.json', updateMap);
$.getJSON('data.json',     updateMap);
$.getJSON('data_osv.json', updateMap);
teran
  • 29,377
  • Спасибо всем. Ошибка оказывается была в одинаковых ID в разных файлах баз, и именно из-за этого файлы частично не загружались. Код приведенный здесь работает, буду использовать его. – Олег Feb 25 '20 at 08:09