Leaflet 设置多层贴图的活动层

Leaflet 设置多层贴图的活动层,leaflet,Leaflet,我有一张有5层的传单地图,每层都有多个地图点。从5个单独的页面中,用户可以选择查看任意一个地图图层的所有地图点。所需类型通过URL传递到View_All页面。View_All页面包含传单地图,其中包含为图层和地图点动态构建的五个图层 我需要的是首先设置用户所需的地图图层为活动图层后,地图是完全建成。此外,我还需要访问层控件来确定用户何时选择了另一层,以便更新页面标题以反映所查看的信息类型 到一个准完成的页面 TIA需要任何帮助。 jdadwilson向地图添加图层控件,然后监听baselayer

我有一张有5层的传单地图,每层都有多个地图点。从5个单独的页面中,用户可以选择查看任意一个地图图层的所有地图点。所需类型通过URL传递到View_All页面。View_All页面包含传单地图,其中包含为图层和地图点动态构建的五个图层

我需要的是首先设置用户所需的地图图层为活动图层后,地图是完全建成。此外,我还需要访问层控件来确定用户何时选择了另一层,以便更新页面标题以反映所查看的信息类型

到一个准完成的页面

TIA需要任何帮助。
jdadwilson

向地图添加图层控件,然后监听
baselayerchange
事件

var overlayMaps = {
    "Cemeteries": l1, //l1,l2,... Layergroups or GeoJSON Layer
    "Churches": l2,
    "Markers": l3,
    "Schools": l4,
    "Towns": l5,
};


var text = {
    "Cemeteries": "Test Cemeteries",
    "Churches": "Test Churches",
    "Markers": "Test Markers",
    "Schools": "Test Schools",
    "Towns": "Test Towns",
}

mymap.addLayer(l3); //Acitve Layer from URL
L.DomUtil.get("textheaderid").innerHTML = text["Markers"];


L.control.layers(overlayMaps).addTo(mymap);
mymap.on('baselayerchange',function(e){
    console.log(e)
  var name = e.name;
  var str = text[e.name];
  console.log(str);
  L.DomUtil.get("textheaderid").innerHTML = str;
})


示例:

谢谢您的代码!除了一个小项目外,一切都正常。页面标题不反映与用户请求相对应的标题。请求的图层已激活,但标题不正确。我将文本[“Markers”]行更改为我能想到的所有内容,但它总是被认为是未定义的。这是对最新代码视图的更新。当您向我显示您的代码而不是没有新代码的网站时,这将非常有用;)您的重叠贴图名称如
“墓地”、“教堂”等是否与
文本中的“墓地”、“教堂”等相同?否则它找不到正确的文本,因为这是找到问题的引用。简单的修复,感谢您的评论。谢谢你的帮助。