1

我对永久链接有一些问题。使用一个活动层效果很好,但如果我打开更多层然后单击永久链接,它只会显示第一个。但是图层名称在永久链接中,但未显示:/有人可以帮忙吗?

我的页面: http: //firebwoy.byethost14.com/leaflet/

有问题的代码: http: //firebwoy.byethost14.com/leaflet/map.js

function parseURL(){
    var str = window.location.search;
    if(parseURL.arguments.length == 1)
        str = parseURL.arguments[0];
    var arr = str.substring(1).split('&');
    var key = '';
    var val = '';
    for(var part in arr){
        key = arr[part].split('=')[0];
        val = decodeURI(arr[part].substring(key.length + 1));
        this[key] = val;
    }
}

var _GET = new parseURL();
plat = _GET['lat'] || 51.42;
plon = _GET['lon'] || 21.15;
pzoom = _GET['zoom'] || 11;
pol = _GET['ol'] || "";

objtype = 'none';
lat = '';
lng = '';
osmid = '';

map = new L.Map('map', { minZoom: 6, maxZoom: 18, zoomAnimation: false, fadeAnimation: true});

//var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
//    osmAttrib = 'Dane: autorzy <a href="http://osm.org" target="_blank">OpenStreetMap</a>',
//    osm = new L.TileLayer(osmUrl, {minZoom: 6, maxZoom: 18, attribution: osmAttrib, opacity: 0.5, name: 'O'});
var mqUrl = 'http://otile2.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png'
    mqAttrib = 'Dane: autorzy <a href="http://osm.org" target="_blank">OpenStreetMap</a>',
    mq = new L.TileLayer(mqUrl, {minZoom: 6, maxZoom: 18, attribution: mqAttrib, opacity: 0.5, name: 'M'});

var srodek = new L.LatLng(plat, plon);
map.setView(srodek, pzoom).addLayer(mq);
map.attributionControl.setPrefix('');

var A = new L.LayerGroup({name: A});
var B = new L.LayerGroup();
var C = new L.LayerGroup();
var D = new L.LayerGroup();
var E = new L.LayerGroup();
var F = new L.LayerGroup({name:F});
var G = new L.LayerGroup();
var H = new L.LayerGroup();

function onPermalink() {
    mapCenter=map.getCenter();
    mapZoom=map.getZoom();
    permalink.href = location.protocol + '//' + location.host + location.pathname + '?lat=' + Math.floor(mapCenter.lat * 100000)/100000 + '&lon=' + Math.floor(mapCenter.lng * 100000)/100000 + '&zoom=' + mapZoom + '&ol=' + pol;
}

var parkingrowerowy = L.icon({
    iconUrl: 'http://firebwoy.strefa.pl/stojak_ikona.png',
    iconSize: [20, 27],
    iconAnchor: [10, 27],
    popupAnchor: [0, -29]

});









// set the map's starting view
//map.setView(new L.LatLng(51.42, 21.15), 11);


map.on('dragend',onPermalink);
map.on('zoomend',onPermalink);



// include GeoJSON inside this JavaScript


map.on('layeradd',function(e)
{
    if (e.layer.options.name) {
    if (pol.indexOf(e.layer.options.name)==-1) { pol = pol + e.layer.options.name; }
    document.getElementById(e.layer.options.name).src='img/'+e.layer.options.name+'on.png';
    }
    permalink.href = location.protocol + '//' + location.host + location.pathname + '?lat=' + plat + '&lon=' + plon + '&zoom=' + pzoom + '&ol=' + pol;
});

map.on('layerremove',function(e){
    if (pol.indexOf(e.layer.options.name)>=0) { 
    if (e.layer.options.name==e.layer.options.name.toUpperCase()) {
        while (pol.search(e.layer.options.name)!=-1)
        pol = pol.replace(e.layer.options.name,'');
    }
    }
    permalink.href = location.protocol + '//' + location.host + location.pathname + '?lat=' + plat + '&lon=' + plon + '&zoom=' + pzoom + '&ol=' + pol;
});

if (pol)
    for (var poz=0;poz<pol.length;poz++)
    window[pol.charAt(poz)].addTo(map);


function imagechange(e,r) {
    if (pol.indexOf(e)==-1) {
    window[e].addTo(map);
    document.getElementById(e).src='img/'+e+'on.png';
    } else {
    document.getElementById(e).src='img/'+r+'off.png';
    map.removeLayer(window[e]);
    }
}



    //przelacznik warstw
    var basemaps = {

            "mapquest": mq
    };
    var overlays = {
        "siedem": A,
            "osiem": B,
            "dziewiec": C,
            "dziesiec": D,
            "jedenascie": E,
            "ddr": F,
        "cpr": G,
        "stojaki": H
    };
    // przelacznik warstw


layersControl = new L.Control.Layers(basemaps, overlays, {position: 'bottomleft'});
//map.addControl(layersControl);
//skala
L.control.scale({imperial: false, updateWhenIdle: true, maxWidth: 100, position: 'bottomright'}).addTo(map);

permalink.href = location.protocol + '//' + location.host + location.pathname + '?lat=' + plat + '&lon=' + plon + '&zoom=' + pzoom + '&ol=' + pol;

我认为问题在于添加新图层和图层名称,但我不知道在哪里。

4

0 回答 0