Почему некоторые плитки отсутствуют / меняются местами на моей всплывающей карте? - PullRequest
0 голосов
/ 06 мая 2019

Я загружаю карту тайлов (bing или OSM) во всплывающем окне.ИНОГДА плитки отсутствуют / меняются местами.Через несколько дней все в порядке.На многих других моих сайтах всплывающее окно (без геоджон-файла) работает правильно.

Вы видите простой пример на https://aachen -hat-energie.de / test_ww / window_test.htm .Первая карта с маркером / иконкой из геойсон-файла в порядке.Если вы нажмете «Karte», вы увидите ту же карту с иконкой во всплывающем окне.Но там НЕКОТОРЫЕ плитки некорректны, а маркер всегда отсутствует.

Я очистил кеш моего браузера (firefox), что не помогло.Есть ли кеш вместе с ajax, который я могу очистить?Почему мой ikon отсутствует?

листовка и следующий файл test_windows.js загружаются в оба htm-файла:

function show_karte(mittelpunkt, zoom, overlay, typ){

function MarkerStyle (feature,latlng) {     
return L.marker(latlng, {icon:  L.icon({iconUrl: feature.properties.markerSymbol})}).addTo(map);
    };

var scriptTag = document.getElementsByTagName('script');
scriptTag = scriptTag[scriptTag.length - 1];
var div_id = scriptTag.parentNode.id;
var osmLayer = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
var mittelpunkt = [mittelpunkt[1], mittelpunkt[0]]
var map = L.map(div_id,{layers: [osmLayer]}).setView(mittelpunkt, zoom);
$.ajax(overlay).done(function(data) {
    var data = JSON.parse(data);
    L.geoJson(data, 
            {pointToLayer: MarkerStyle
            });
    });     
};  

function  OSMKarte(name,breite,hoehe,gpsLaenge,gpsBreite,zoom,Kartentyp,geojson_datei) {
neuesFenster = window.open("Kartenfenster.htm?"+name+"&"+breite+"&"+hoehe+"&"+gpsLaenge+"&"+gpsBreite+"&"+zoom+"&"+Kartentyp+"&"+geojson_datei,'', "width="+breite+",height="+hoehe+",left=50,top=50, resizable=no, scrollbars=no, border=no");
};

Вызов htm:

 <div id="map1" style="width:583px; height: 350px;">
 <script  type="text/javascript">show_karte([6.00895041,50.79047758],18,"lieschen.geojson","R");</script>
 </div>
 <div>
 <a href="javascript:    OSMKarte('Karte',800,650,6.00895041,50.79047758,18,'R','lieschen.geojson')">Karte</a>
 </div>

Kartenfenster.htm генерирует всплывающее окно:

 <title></title>
 <head>
 <script src="../js/Leaflet/leaflet.js" ></script>
 <script src="../js/Leaflet/jquery-3.3.1.min.js"></script>
 <script src="test_window.js"></script>

    <script type="text/javascript">
     function getMap() {     
     var kette = window.location.search.slice(1);
     var params = kette.split("&");
     var name=params[0]; 
     name = name.replace(/%20/g, " ");
     var FBreite=parseInt(params[1]);
     var FHoehe=parseInt(params[2]);
     var xloc=parseFloat(params[3]);
     var yloc=parseFloat(params[4]);
     var zStufe=parseInt(params[5]);
     var Kartentyp=(params[6]);
     var geojson_datei=(params[7]);  // kann fehlen
     document.getElementsByTagName("title")[0].text =name;
     var divElement = document.createElement("div");
     var dok = document.getElementsByTagName("body")[0];
     dok.appendChild(divElement);
     var id_name = document.createAttribute("id");
     id_name.nodeValue ="map_popup";
     divElement.setAttributeNode(id_name);
     var Stil = document.createAttribute("style");
     Stil.nodeValue="position:absolute; width:"+FBreite+"px; height:"+FHoehe+"px; left: 0px; top: 0px";
     divElement.setAttributeNode(Stil);
     var jscript = document.createElement("script");
     divElement.appendChild(jscript);
     var jtext = document.createAttribute("type");
     jtext.nodeValue="text/javascript";
     jscript.setAttributeNode(jtext);
     var fkt_aufruf = document.createTextNode("show_karte([" + xloc + "," + yloc + "]," + zStufe + ",'" + geojson_datei+ "','" + Kartentyp + "');");
     jscript.appendChild(fkt_aufruf);
    };
</script>
</head>

<body onload="getMap()"></body>
</html>
...