Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[javascript]meerdere markers plaatsen uit xml bestand

Pagina: 1
Acties:

  • w00d
  • Registratie: Juni 2004
  • Laatst online: 26-11 11:22
Hoi,

Ik wil in google maps meerdere markers toevoegen. Ik heb een xml bestand met daarin alle adressen, geen coördinaten!. Ieder adres opzich werkt, maar ik krijg het niet voor elkaar om het xml bestand uit te lezen, adressen om te zetten in coördinaten graden en vervolgens de markers te plaatsen.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(52345801,4624582), 13);
        geocoder = new GClientGeocoder();
        
            GDownloadUrl("data.xml", function(data, responseCode) { //data.xml openen
    
              if(responseCode == 200) {
                var xml = GXml.parse(data);
                var markers = xml.documentElement.getElementsByTagName("marker"); //alle marker elementen ophalen
                for (var i = 0; i < markers.length; i++) { //loop met de lengte van het aantal markers
                    showAddress = markers[i].getAttribute("address"); //adres opvragen van de marker
                    function showAddress(address) 
                        {  geocoder.getLatLngAsync(address,function(latlng) {
                             if (!latlng){
                                alert(address + " not found");
                            } else {
                                map.setCenter(latlng, 15);
                                var marker = new GMarker(latlng);
                                map.addOverlay(marker);        
                                marker.openInfoWindowHtml(address);      
                            }    
                        }  
                        ); //sluit geocoder.get af
              } else if(responseCode == -1) {
                alert("Data request timed out. Please try later.");
              } else { 
                alert("Request resulted in error. Check XML file is retrievable.");
              }
            }
            ); //sluit GDownloadUrl af
          }
        }
    }
}


met geocoder.getLatLngAsync is het mogelijk om een adres om te zetten naar coördinaten.
Hij geeft een foutmelding terug op de regel <body onload etc > dat er een object verwacht woord.

Het XML bestand ziet er als volgt uit:
code:
1
2
3
4
5
<?xml version='1.0' encoding='utf-8'?>
<markers>
<marker address='straat,plaatsnaam' />
<marker address='straat2,plaatsnaam2' />
</markers>


iemand een idee waar ik de mis in ga?

[ Voor 9% gewijzigd door w00d op 15-08-2007 16:59 . Reden: Code aangepast ]


  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
het zou kunnen dat je functie "load" niet bekend is, omdat er een fout in zit qua haakjes en accolades...
wat doet bijvoorbeeld dat haakje in regel 27? overigens volgens mij is ook de accolade in diezelfde regel teveel

(ff snel gekeken, dus misschien zit ik er helemaal naast)

[ Voor 13% gewijzigd door P.O. Box op 15-08-2007 15:30 ]


  • w00d
  • Registratie: Juni 2004
  • Laatst online: 26-11 11:22
De haakjes kloppen, php designer maakt ze keurig rood als ze er alleen staan en groen als ze een maatje hebben

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
wat sluit regel 27 af dan?

(ik zal eens goed gaan kijken ;))

edit 2:
ohhh... ik zou ook even <?php enzo weghalen.... want je load functie is javascript, geen php

edit 3:
ik heb de code even wat beter bekeken, en volgens mij klopt er geen reet van alle haakjes en accolades... dat zou ik nog maar eens goed doorkijken... tip, maak gebruik van goed inspringen... desnoods overdreven...
maaar eerst zou ik even naar mijn edit2 kijken....

[ Voor 90% gewijzigd door P.O. Box op 15-08-2007 15:34 ]


  • w00d
  • Registratie: Juni 2004
  • Laatst online: 26-11 11:22
die <?php dingen komen door het forum zelf. Als de de code in [code] tag zet krijg je geen kleur en is het dus on overzichterlijk. Dus ik heb het even tussen [php] tags gezet, waardoor hij zelf <?php in de code zet.

Ik zal de haakjes etc even duidelijker maken.

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 14:29

sopsop

[v] [;,,;] [v]

je kunt ook code=javascript gebruiken :)

  • w00d
  • Registratie: Juni 2004
  • Laatst online: 26-11 11:22
thnxs, had al [java] en [javascript] geprobeerd, maar het was deze dus.

  • UltimateB
  • Registratie: April 2003
  • Niet online

UltimateB

Pomdiedom

Even een kleine opmerking, je gaat niet elke keer als de kaart getoond wordt de adressen opnieuw gecoderen? Je weet van de geocodeer limieten af?

"True skill is when luck becomes a habit"
SWIS


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • w00d
  • Registratie: Juni 2004
  • Laatst online: 26-11 11:22
Met dank aan Theo Bakker heb ik de oplossing gevonden. Hij heeft er meteen een handleiding / artikel over geschreven:

http://www.whelp.nl/2007/08/17/google-maps-adressen-markers/
Sorry.
Even een kleine opmerking, je gaat niet elke keer als de kaart getoond wordt de adressen opnieuw gecoderen? Je weet van de geocodeer limieten af?
Wel van gehoord, maar nog geen last van.
Pagina: 1