Установить активный слой многослойной карты - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть листовка с 5 слоями, каждый с несколькими точками на карте. На любой из 5 отдельных страниц пользователь может выбрать просмотр всех точек карты для любого из слоев карты. Требуемый тип передается через URL на страницу View_All. Страница View_All содержит карту Leaflet с пятью слоями, динамически построенными для слоев и точек карты.

Сначала мне нужно установить желаемый пользователем слой карты в качестве активного слоя после полного построения карты. Кроме того, мне нужно получить доступ к элементу управления слоями, чтобы определить, когда пользователь выбрал другой слой, чтобы заголовок страницы можно было обновлять, чтобы отразить тип просматриваемой информации.

Вот ссылка к почти готовой странице.

TIA за любую помощь. jdadwilson

1 Ответ

0 голосов
/ 07 февраля 2020

Добавьте на карту элемент управления слоями, а затем прослушайте событие 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;
})

Пример: https://jsfiddle.net/falkedesign/q1kmtf93/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...