L.GeoJSON.AJAX=L.GeoJSON.extend({ defaultAJAXparams:{ dataType:"json", callbackParam:"callback", middleware:function(f){return f;} }, initialize: function (url, options) { // (String, Object) this._urls = []; if (url) { if (typeof url === "string") { this._urls.push(url); }else if (typeof url.pop === "function") { this._urls = this._urls.concat(url) }else{ options = url url = undefined } } var ajaxParams = L.Util.extend({}, this.defaultAJAXparams); for (var i in options) { if (this.defaultAJAXparams.hasOwnProperty(i)) { ajaxParams[i] = options[i]; } } this.ajaxParams = ajaxParams; this._layers = {}; L.Util.setOptions(this, options); if(this._urls.length > 0){ this.addUrl(); } }, addUrl: function (url) { var _this = this; if(url){ if (typeof url === "string") { _this._urls.push(url); }else if (typeof url.pop === "function") { _this._urls = _this._urls.concat(url) } } var _this = this; var len = _this._urls.length; var i=0; _this.fire("beforeDataLoad"); while(i