maps: trigger map-markers-ready event when all layers are loaded (#42718)
This commit is contained in:
parent
0633dac752
commit
cfcd6bf423
|
@ -7,7 +7,8 @@ $(function() {
|
|||
var cell = $map_widget.parents('div.cell')[0];
|
||||
var geojson_url = geojson_data.url;
|
||||
|
||||
$.getJSON(geojson_url, function(data) {
|
||||
$.getJSON(geojson_url).done(
|
||||
function(data) {
|
||||
var geo_json = L.geoJson(data, {
|
||||
onEachFeature: function(feature, layer) {
|
||||
$(cell).trigger('combo:map-feature-prepare', {'feature': feature, 'layer': layer});
|
||||
|
@ -73,8 +74,26 @@ $(function() {
|
|||
if (callback) {
|
||||
callback(geo_json);
|
||||
}
|
||||
$(cell).trigger('combo:map-markers-ready');
|
||||
geojson_data.status = 'loaded';
|
||||
}).fail(function(jqxhr, textStatus, error) {
|
||||
geojson_data.status = 'error';
|
||||
}).always(function() {
|
||||
map.trigger_markers_if_ready();
|
||||
});
|
||||
},
|
||||
trigger_markers_if_ready: function() {
|
||||
var map = this;
|
||||
var $map_widget = $(map.getContainer());
|
||||
var map_id = $map_widget.data('cell-id');
|
||||
var cell = $map_widget.parents('div.cell')[0];
|
||||
var geojson_layers = window['geojson_'+map_id];
|
||||
var loading = 0;
|
||||
for (var i=0; i<geojson_layers.length; i++) {
|
||||
if (geojson_layers[i].status == 'loading') loading++;
|
||||
}
|
||||
if (loading == 0) {
|
||||
$(cell).trigger('combo:map-markers-ready');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -194,6 +213,7 @@ $(function() {
|
|||
var geojson_layers = window['geojson_'+map_id];
|
||||
if (geojson_layers.length) {
|
||||
$.each(geojson_layers, function(idx, geojson_data) {
|
||||
geojson_data.status = 'loading';
|
||||
map.add_geojson_layer(function(geo_json) {
|
||||
var bounds = geo_json.getBounds();
|
||||
if (bounds.isValid()) {
|
||||
|
|
Loading…
Reference in New Issue