如何从服务器加载Leaflet图层属性?

时间:2017-03-30 11:05:44

标签: javascript leaflet

我有自己的Leaflet图块图层扩展

L.TileLayer.Foo = L.TileLayer.extend({
    options: {
        ...
    },
    initialize: function (apiKey, options) {
        ...
        L.TileLayer.prototype.initialize.call(this, url, mergedOptions);
    },
    getAttribution: function() {
        return "hello!";
    }
});

基本上,Leaflet会在某个时刻调用所有图层的getAttribution,并构建归属控制。但是,如果我想从服务器加载归因文本(将getAttribution返回)(基于提供给apiKey的{​​{1}}),该怎么办?

我在docs

中看不到任何异步方式(从ajax成功回调调用的东西)

1 个答案:

答案 0 :(得分:1)

Leaflet没有那种功能。您需要自己实现AJAX调用,然后在xhr回调中手动添加属性。所以在getAttribution里面会是这样的:

AjaxCall.then(function(responce){
   leafletMap.attributionControl.addAttribution(responce.data.Attribution);
});