Leaflet.Basemaps与leaflet-providers区别
简述一下,Leaflet.Basemaps与leaflet-providers都可以完成图层切换功能,但是Leaflet.Basemaps是加载在L.Map层的,而leaflet-providers是在tilelayer加载,也就是说leaflet-providers是在同一种投影方式下进行切换。
leaflet-providers在L.Map上只有一层tilelayer,而Leaflet.Basemaps在L.Map上可以加载很多层tilelayer
如果想在L.Map层上指定不同的投影方式,只能选择使用Leaflet.Basemaps。
Leaflet.Basemaps
L.Control.Basemaps = L.Control.extend({
_map: null,
includes: L.Evented ? L.Evented.prototype : L.Mixin.Event,
options: {
position: "bottomright",
tileX: 0,
tileY: 0,
tileZ: 0,
layers: []
},
basemap: null,
basemapNodes: {},
leaflet-providers
L.TileLayer.ChinaProvider = L.TileLayer.extend({
initialize: function(type, options) { // (type, Object)
var providers = L.TileLayer.ChinaProvider.providers;
var parts = type.split('.');
var providerName = parts[0];
var mapName = parts[1];
var mapType = parts[2];
var url = providers[providerName][mapName][mapType];
options.subdomains = providers[providerName].Subdomains;
L.TileLayer.prototype.initialize.call(this, url, options);
}
});