Ergebnis 1 bis 3 von 3
  1. #1
    solirocks ist offline Eroberer
    registriert
    18-03-2010
    Beiträge
    52

    XML und Google Maps

    Hallo!

    ich sollte zunächst einmal anmerken, dass ich noch keine JS-Kenntnisse habe und diesen Code "gebastelt" habe mit Hilfe des Google Tutorials. Einen Teil, "var info", habe ich selbst eingefügt und darum geht's.

    Ich möchte über die xml datei die Texte für die Marker festlegen. Allerdings scheint man in XML keine html tags verwenden zu können. Kann man aber anders lösen, das ist nicht das Problem. Viel mehr kann ich den Marker nun mit einem infoWindow versehen und dieses auch füllen, aber, es wird mit dem content des letzten markers gefüllt und nur der erste marker zeigt das infowindo an. Ich möchte aber, für jeden marker der eigenene content angezeigt wird.

    Ich programmiere VBA, html und css. Daher denke ich, dass ich den Code soweit verstanden habe. Ich habe ihn in jeder Zeile kommentiert und hoffe, dass ich recht habe.

    Code:
    GDownloadUrl("helicopter.xml", function(data) { /XML einbinden
    var xml = GXml.parse(data); //XML einbinden
    var markers = xml.documentElement.getElementsByTagName("marker"); //XML Tag marker laden
    for (var i = 0; i < markers.length; i++) { //Schleife um die Anzahl der marker-Tags zu ermitteln
    var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), //erstellen der Schreibweise Breite,Länge
                             parseFloat(markers[i].getAttribute("lng"))); //erstellen der Schreibweise Breite,Länge
    			
    var info = markers[i].getAttribute("content") + "<br>" +  //hier versuche ich den infotext für den maker zu erstellen
    		   markers[i].getAttribute("lat") + //hier versuche ich den infotext für den maker zu erstellen
    		   markers[i].getAttribute("lng"); //hier versuche ich den infotext für den maker zu erstellen
    			
    var point = new GMarker(latlng,icon); //Erstelle Punkt auf der Karte, mit Icon und Koordinaten von var latlng
    map.addOverlay(point); //Erstelle Punkt auf die Karte
    			
    GEvent.addListener(point, "click", function() {point.openInfoWindowHtml(info)}); //Klickeffekt. Öffne das Infofenster
    }
    });
    Im voraus vielen lieben Dank!

    Soli

  2. #2
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.666

    AW: XML und Google Maps

    die funktion, welche du piont als eventhandler in addListener mitgibst, greift auf point und info zu. diese enthalten aber beim klick (die for-schleife ist durchlaufen) die werte aus dem letzten durchlauf der schleife.
    lösen könntest du das über eine weitere closure.

    Code:
    function getCB(point, info)
    {
      return function() {point.openInfoWindowHtml(info);};
    }
    GEvent.addListener(point, "click", getCB(point, info));

  3. #3
    solirocks ist offline Eroberer
    registriert
    18-03-2010
    Beiträge
    52

    AW: XML und Google Maps

    Zitat Zitat von hesst Beitrag anzeigen
    die funktion, welche du piont als eventhandler in addListener mitgibst, greift auf point und info zu. diese enthalten aber beim klick (die for-schleife ist durchlaufen) die werte aus dem letzten durchlauf der schleife.
    lösen könntest du das über eine weitere closure.

    Code:
    function getCB(point, info)
    {
      return function() {point.openInfoWindowHtml(info);};
    }
    GEvent.addListener(point, "click", getCB(point, info));
    Vielen Dank. Es funktioniert wunderbar!

    Die Schleife hatte ich auch schon im Sinn, aber an der Umsetzung haderte es.

Ähnliche Themen

  1. Google Maps API: Karte in Div platzieren
    Von jilli im Forum JavaScript
    Antworten: 11
    Letzter Beitrag: 19-06-2009, 12:04
  2. Problem mit Google Maps
    Von Herr-Vorragend im Forum JavaScript
    Antworten: 9
    Letzter Beitrag: 19-02-2009, 16:22
  3. Antworten: 1
    Letzter Beitrag: 10-06-2008, 22:38
  4. Antworten: 0
    Letzter Beitrag: 06-12-2007, 21:06
  5. Beerbt Google Microsoft als IT-Supermacht?
    Von kasimir83 im Forum Smalltalk
    Antworten: 5
    Letzter Beitrag: 16-04-2004, 15:07

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •