• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Variablen weiterverarbeiten...

Status
Für weitere Antworten geschlossen.

Mike²

Neues Mitglied
Hallo,

ich möchte mir einen Routenplaner per Google-Maps erstellen, der mit Variablen aus der URL gefüttert wird.

Der Routenplaner wird folgendermaßen aufgerufen:
.../routenplaner.html?start=Berlin&ziel=Hamburg

Soweit ist alles klar.

Die Variablen werden im Script wie folgt ausgelesen und mir auch korrekt angezeigt:

HTML:
x=window.location.search;
x=x.substr(1);
vars=x.split("&");
vardiv1=vars[0].split("=");
vardiv2=vars[1].split("=");

document.writeln("Von: "+vardiv1[1]+"<br>");
document.writeln("Nach: "+vardiv2[1]+"");
Nun sollte ich die beiden Variablen aber in die Routenplaner-Funktion bekommen:

HTML:
function setDirections(fromAddress, toAddress, locale) {
            gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale });
}
Hab schon einiges versucht, aber er lädt mir immer nur die Zeile, die fest definiert wurde (falls keine Variablen da sind)... :-(

HTML:
setDirections("Berlin", "Hamburg", "de_DE");
Hier noch zum Verständnis das ganze Script:

Code:
<!DOCTYPE html PUBLIC "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title>Routenplaner</title>
    <script src="http://maps.google.com/maps?file=api&v=2&key=mein KEY" type="text/javascript"></script>

    <style type="text/css">
      v\:* {
        behavior:url(#default#VML);
      }
      body {
        font-family: Verdana, Arial, sans serif;
        font-size: 11px;
        margin: 2px;
      }
      table.directions th {
    background-color:#EEEEEE;
      }

      img {
        color: #000000;
      }
    </style>

    <script type="text/javascript">
    //<![CDATA[

    var map;
    var gdir;
    var geocoder = null;
    var addressMarker;

    x=window.location.search;
    x=x.substr(1);
    vars=x.split("&");
    vardiv1=vars[0].split("=");
    vardiv2=vars[1].split("=");

    document.writeln("Von: "+vardiv1[1]+"<br>");
    document.writeln("Nach: "+vardiv2[1]+"");

    function setDirections(fromAddress, toAddress, locale) {
             gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale });
    }
    
    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));

        gdir = new GDirections(map, document.getElementById("directions"));
        GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleErrors);

        setDirections("Berlin", "Hamburg", "de_DE");
      }
    }

    function handleErrors(){
             if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
             alert("Adresse existiert nicht (evtl. mit Latitude und Longitude versuchen)!\n Fehler: " + gdir.getStatus().code);

             else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
             alert("Adresse wurde nicht gefungen (evtl. mit Latitude und Longitude versuchen)!\n Fehler: " + gdir.getStatus().code);

             else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
             alert("Adresse vollständig angeben!\n Fehler: " + gdir.getStatus().code);

             else if (gdir.getStatus().code == G_GEO_BAD_KEY)
             alert("Google Maps API Key nicht gültig! Bitte nicht kopieren! Key kann auf http://www.google.com/apis/maps/signup.html beantragt werden! \n Fehler: " + gdir.getStatus().code);

             else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
             alert("Fehler bei der Berechnung. Bitte nochmal versuchen!\n Fehler: " + gdir.getStatus().code);

             else alert("Unbekannter Fehler!\n Fehler: " + gdir.getStatus().code);
    }

    function onGDirectionsLoad(){

    }


    //]]>
    </script>

  </head>
  <body onload="load()" onunload="GUnload()">
    <br>
    <table align="center" class="directions">
    <td valign="top"><div id="map" style="width: 500px; height: 500px"></div></td>
    <td valign="top"><div id="directions" style="width: 275px"></div></td>
    </table>
  </body>
</html>
Ich hoffe es kann mir jemand helfen.
Bestimmt ist es nur eine Kleinigkeit...

Vielen Dank schonmal im Vorraus...

Mike²
 
Man bin ich ein Idiot.

Code:
    function setDirections(fromAddress, toAddress, locale) {
             gdir.load("from: " + vardiv1[1] + " to: " + vardiv2[1], { "locale": locale });
    }
Ein bisschen mehr Überlegen hat noch keinem geschadet... :-)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben