![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 30.08.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !
Mam problem ze skryptem wykorzystującym GoogleMaps i XML. Skrypt działa prawidłowo pod Operą i FireFoxem, natomiast pod IE się buraczy. Po krótce co robi skrypt. Odczytuje z pliku xml dane do markerów po czym wstawia ja na mape Google. Co do IE to wypluwa taki błąd: CODE Wiersz: 12 Znak: 37 Błąd: nieprawidłowy argument Kod: 0 Tak natomiast wygląda kod: CODE var markersXML; var markers; var map; var ico; function addMarker(markerXML){ var marker = new GMarker(new GLatLng(markerXML[4],markerXML[5]), {title: markerXML[1], icon: ico}); marker.txt = "<b>"+markerXML[0]+"</b>"+"<br />"+ markerXML[1]+"<br />"+ markerXML[2]+"<br />"+ markerXML[3]; map.addOverlay(marker); new GEvent.addListener(marker,"click",function() { marker.openInfoWindowHtml(marker.txt); map.setCenter(marker.getLatLng(), 14); }); return marker; } function show(number){ markers[number].openInfoWindowHtml(markers[number].txt); map.setCenter(markers[number].getLatLng(), 14); } function drawMap(){ if(new GBrowserIsCompatible()){ map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(50.055375,19.962158), 9); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.addControl(new GScaleControl()); map.addControl(new GOverviewMapControl()); GDownloadUrl('http://localhost/oknoplastMaps/districts/mp.xml', function(data,answerCode){ if(answerCode==200){ var xml = GXml.parse(data); var temp = xml.documentElement.getElementsByTagName('agency'); markersXML = new Array(temp.length); for(var i=0; i<temp.length; i++){ var marker = new Array(5); marker[0] = temp[i].childNodes[0].textContent; marker[1] = temp[i].childNodes[1].textContent; marker[2] = temp[i].childNodes[2].textContent; marker[3] = temp[i].childNodes[3].textContent; marker[4] = parseFloat(temp[i].childNodes[4].textContent); marker[5] = parseFloat(temp[i].childNodes[5].textContent); markersXML[i] = marker; document.getElementById("addresses").innerHTML += "<b>"+marker[0]+"</b>"+"<br />"+ marker[1]+"<br />"+ marker[2]+"<br />"+ marker[3]+"<br />"+ "<a href=\"#top\" onClick=\"show("+i+");\">Pokaż na mapie</a>"+ "<br /><br />"; } ico = new GIcon(); ico.image = "http://localhost/oknoplastMaps/logo.png"; ico.shadow = "http://localhost/oknoplastMaps/logo.png"; ico.iconSize = new GSize(32, 25); ico.infoWindowAnchor = new GPoint(16,12); ico.iconAnchor = new GPoint(16,12); markers = new Array(markersXML.length); for(i=0; i<markersXML.length; i++){ markers[i] = addMarker(markersXML[i]); } }else{ alert('Błąd otwarcia pliku z danymi'); } }); } } W pliku html skrypt jest wywoływany: CODE <body onload="drawMap()" unload="GUnload()"> Metodą prób i błędów błąd pod IE znikał kiedy usunąłem tą linijkę: CODE markers[i] = addMarker(markersXML[i]); ale wtedy oczywiście nic nie działało. Dzieki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ! Udało mi się znaleźć rozwiązanie tego problemu. Może ktoś będzie miał podobny kłopot, więc je przedstawię. Otóż problem tkwi w odczycie XML'a przez IE. Zastępując linijki Kod temp[i].childNodes[0].textContent następującymi Kod GXml.value(temp[i].childNodes[0]) wszystko działa poprawnie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 30.09.2025 - 20:13 |