CGGoogleMaps als Routenplaner, geht das

Hilfe zu Modulen und Tags
Post Reply
tholler
Forum Members
Forum Members
Posts: 104
Joined: Sat Jan 13, 2007 12:23 pm

CGGoogleMaps als Routenplaner, geht das

Post by tholler »

Hallo zusammen,

so langsam nimmt meine Seite Gestalt an. Was ich mich jetzt frage, was ich suche:

Gibt es eine Möglichkeit die GoogleMaps aus Routenplaner zu "missbrauchen"? Ich stelle mir das so vor, dass die Zieladresse festgelegt ist und man die Startadresse eingeben kann und dann die Route angezeigt bekommt. Kann z.B. auch so gehen, dass der Zielpunkt als Karte standardmäßig angezeigt wird, und sobald man eine Startadresse eingibt und START klickt, eine Route gerechnet und angezeigt wird.

Ja, ich weiß, dass es externe Routenplaner gibt, die man einbinden kann; aber wieso 2 verschiedene Kartendienste einbinden, wenn es mit einem funktioniert.

Viele Grüße
TH
hlf

Re: CGGoogleMaps als Routenplaner, geht das

Post by hlf »

Missbrauch ?  Das ist eine der Standardfunktionen.

Muster hier

http://www.athenahotellondon.co.uk/

auf die Karte klicken.
tholler
Forum Members
Forum Members
Posts: 104
Joined: Sat Jan 13, 2007 12:23 pm

Re: CGGoogleMaps als Routenplaner, geht das

Post by tholler »

hlf wrote: Missbrauch ?  Das ist eine der Standardfunktionen.

Muster hier

http://www.athenahotellondon.co.uk/

auf die Karte klicken.
WOW, das sieht ja genial aus; wie geht das??

Ich habe z.Z. eine andere Lösung, die aber nicht so elegant ist.

Seite: http://cmsms.fototeam-holler.de -> Anfahrt
hlf

Re: CGGoogleMaps als Routenplaner, geht das

Post by hlf »

Am einfachsten  Code kopieren, Key und Startadresse ändern und den Sprachschalter auf de setzen (ist dort en).

Dann müssen nur noch die DIV's erscheinen map und directions und das war es  - dauert nur ein paar Minuten.
tholler
Forum Members
Forum Members
Posts: 104
Joined: Sat Jan 13, 2007 12:23 pm

Re: CGGoogleMaps als Routenplaner, geht das

Post by tholler »

hlf wrote: Am einfachsten  Code kopieren, Key und Startadresse ändern und den Sprachschalter auf de setzen (ist dort en).

Dann müssen nur noch die DIV's erscheinen map und directions und das war es  - dauert nur ein paar Minuten.
Für einen Coder ist das vielleicht simpel, aber was ist mit den/dem normal sterblichen???

lg
TH
NaN

Re: CGGoogleMaps als Routenplaner, geht das

Post by NaN »

Der muss dann wohl auf die Hilfe eines Coders zurückgreifen.
hlf

Re: CGGoogleMaps als Routenplaner, geht das

Post by hlf »

Wer Texte schreiben kann der kann auch kopieren und einfügen und auch ändern.

Das kopieren und in den Metabereich der Seite setzen.

Code: Select all

<__script__ src=" http://maps.google.com/?file=api&v=2.x&key=ABQIAAAA5FgXE0D9yHrSjL3Yo5j4YBR3PkS3eouF4zPJyfOcgbWjbeeDVxR4UE94_8n7T2kI29RwoSp8W0A9DA" type="text/javascript"></__script>

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

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

    function load() {
      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("map"));
        map.setMapType(G_NORMAL_MAP);
        gdir = new GDirections(map, document.getElementById("directions"));
        GEvent.addListener(gdir, "load", onGDirectionsLoad);
        GEvent.addListener(gdir, "error", handleErrors);
var address="110/114 Sussex Gardens Hyde Park London W2 1UA";
		var titel="Athena Hotel";

        var zoom=17;
var point;
        geocoder = new GClientGeocoder();
        map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	showAddress(address);
      }
    }
    
    function setDirections(fromAddress, toAddress, locale) {
      gdir.load("from: " + fromAddress + " to: " + toAddress,
                { "locale": "en" });
    }
    
    function showAddress(address, popUpHtml) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " nicht gefunden");
            } else {
              map.setCenter(point, 17);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              marker.openInfoWindowHtml(titel);
            }
          }
        );
      }
    }

    function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("Start- oder auch Zieladresse konnten nicht gefunden werden. Entweder sind sie nicht bekannt, nicht eindeutig oder die Eingabe ist nicht korrekt. Bitte überprüfen Sie die Eingabe.\nError code: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("Die Route konnte nicht berechnet werden.\n Error code: " + gdir.getStatus().code);
	   
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("Bitte geben Sie eine Startadresse ein.\n Error code: " + gdir.getStatus().code);

	//   else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
	//     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);
	     
	   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("Falscher Google Maps Key. \n Error code: " + gdir.getStatus().code);

	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("Die Anfrage konnte nicht geparsed werden.\n Error code: " + gdir.getStatus().code);
	    
	   else alert("Unbekannter Fehler. Bitte überprüfen Sie die Eingabe.");
	   
	}

	function onGDirectionsLoad(){ 
          // Use this function to access information about the latest load()
          // results.

          // e.g.
	  // document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
	  // and yada yada yada...
	}


    //]]>
    </__script>
Der Key muss geändert werden (einen eigenen kann man sich kostenlos zur Domain passend bei G. holen:

Code: Select all

key=ABQIAAAA5FgXE0D9yHrSjL3Yo5j4YBR3PkS3eouF4zPJyfOcgbWjbeeDVxR4UE94_8n7T2kI29RwoSp8W0A9DA
Hier muss deine Adresse rein und dein Titel:

Code: Select all

var address="110/114 Sussex Gardens Hyde Park London W2 1UA";
		var titel="Athena Hotel";
und hier muss die Sprache auf de geändert werden:

Code: Select all

 { "locale": "en" });
Damit das läuft muss der body tag geändert werden:

Code: Select all

</__body onload="load()" onunload="GUnload()">
Am besten macht man eine Zuweisung an Smarty im Metabereich und setzt den Tag im Haupttemplate ein:

{assign var='bodytag' value=' onload="load()" onunload="GUnload()"'}

Im Haupttemplate dann

Da der bodytag in den anderen Seiten nicht gesetzt ist taucht der da auch nicht auf.

Dann den Kram in die Seite setzen und die Adresse auf deine ändern, wie auch die paar englischen Teile:

Code: Select all

<div style="width: 685px; height: 400px;" id="map">
</div>
<p> 
</p>
<p><strong><font size="3"><u>Approach:</u></font></strong>
</p>
<form onsubmit="setDirections(this.from.value, this.to.value, 'en'); return false">
<p>Start address:
<input id="fromAddress" size="25" name="from" />

<br /><smaller>Format: street, zip city, country
<br />
<input id="toAddress" value="110/114 Sussex Gardens Hyde Park London W2 1UA " size="25" name="to" type="hidden" />
<br />
<input value="Evaluate route!" name="submit" type="submit" /></smaller>
<br />
</p>
</form>
<p> 
</p>
<div style="width: 685px;" id="directions">
</div>

und fertig ist der Salat.

Also nicht so umständlich denken einfach machen.
Last edited by hlf on Tue Jul 27, 2010 3:11 pm, edited 1 time in total.
Post Reply

Return to “Module und Tags”