简而言之,我需要由传单图层控件控制图层组,一次两到三个。在这个JSFiddle http://jsfiddle.net/knu2xs/FH9VF/3/,当更改底图时,水力叠加层需要始终保持在各种底图之上。
如果您运行并使用右上角的图层控件,您会注意到当您切换到图像时,水力叠加将如何关闭,并且除非您切换到地形并返回国家地理,否则它将保持关闭状态。这是我能够可靠地重现的行为。如果你玩它,你会发现一些非常奇怪的事情正在发生。
欢迎任何关于更好的方法来实现这一目标的意见或建议。该解决方案确实需要使用图层控件来切换底图,同时将水力覆盖保持在顶部。否则,我完全愿意接受替代解决方案。
如果您在跳到之前感到好奇JSFiddle http://jsfiddle.net/knu2xs/FH9VF/3/,这是 JavaScript...
// initialize map
var map = L.map('map', {
center: [45.7067, -121.5217], // Hood River, OR
zoom: 7
});
// hydrology overlay layer
var hydro = L.esri.tiledMapLayer('http://hydrology.esri.com/arcgis/rest/services/WorldHydroReferenceOverlay/MapServer');
// basemap layer groups so the hydro overlay always overlays the various basemaps
var nationalGeographic = L.layerGroup([
hydro,
L.esri.basemapLayer('NationalGeographic')
]),
esriTopo = L.layerGroup([
hydro,
L.esri.basemapLayer('Topographic')
]),
esriShadedRelief = L.layerGroup([
L.esri.tiledMapLayer('ShadedReliefLabels'),
hydro,
L.esri.basemapLayer('ShadedRelief')
]),
esriImagery = L.layerGroup([
hydro,
L.esri.basemapLayer('Imagery')
]);
// add default layers to map
map.addLayer(esriTopo);
// json object for layer switcher control basemaps
var baseLayers = {
"National Geographic": nationalGeographic,
"Esri Topographic": esriTopo,
"Shaded Relief": esriShadedRelief,
"Imagery": esriImagery
};
// add layer groups to layer switcher control
var controlLayers = L.control.layers(baseLayers).addTo(map);