GoogleMaps Marker Anzeige

Hilfe zu Modulen und Tags
dylan

GoogleMaps Marker Anzeige

Post by dylan »

Hallo!

Ich habe das Modul GoogleMaps 0.1.6 installiert und eingerichtet. Es funktioniert wie gewünscht, nur eine Sache gefällt mir nicht.

In GoogleMaps lassen sich Marker einrichten, die den Standpunkt anzeigen. Ich habe früher schon mit GoogleMaps gearbeitet, und bin gewohnt, dass am Marker eine Sprechblase mit der Adresse, oder was auch immer, angezeigt wird. Mit dem Modul wird die "Sprechblase" nur auf klick geöffnet, und beinhaltet lediglich den Namen des Markers.

Lässt sich das Modul so einrichten, das die "Sprechblase (wie immer der korrekte Titel ist..?)" des Markers beim laden der Seite sofort angezeigt wird, und als Inhalt die Adresse anzeigt?

Ich hoffe ich konnte verständlich widergeben worum es geht???
nhaack

Re: GoogleMaps Marker Anzeige

Post by nhaack »

Hallo Dylan,

wenn du gewohnt bist direkt mit Google Maps im Template (richtig verstanden?) zu arbeiten, gibt es noch den Google Geocoder aus der API Plug-in Collection (http://wiki.cmsmadesimple.org/index.php ... i_geocoder). Mit diesem kannst du Adressen und Orte nach Koordinaten auflösen.

Die Daten stehen per Smarty nach Adressübergabe zur Verfügung. Die Ergebnisse werden zudem im Cache vorgehalten, damit nicht bei jedem Map-Aufruf zusätzlich auf die Server-Antwort gewartet werden muss (das Geocoding findet also serverseitig zu Lasten deiner Seitenaufbauzeit statt).

Diese Koordinaten kannst du dann normal in deinen Map Code einbetten. Wenn man aber die gewonnen Daten in das Map Javascript einbaut, muss man darauf achten die Felder jeweils außerhalb des "Literal"-Bereichs einzubauen (d.h. je nach Komplexität viel: "...JS code ...{/literal}{geo_stuff}{literal}... JS Code ...".

Vielleicht hilft dir dies ja weiter.

Beste Grüße
Nils
dylan

Re: GoogleMaps Marker Anzeige

Post by dylan »

Ich habe das Plugin in den /plugins Ordner kopiert. Leider bekomme ich in der Administration unter >Erweiterungen >Tags folgende Fehlermeldungen angezeigt:


Warning: Cannot modify header information - headers already sent by (output started at /htdocs/plugins/function.nh_api_geocoder.php:1) in /htdocs/lib/classes/class.admintheme.inc.php on line 171

Warning: Cannot modify header information - headers already sent by (output started at /htdocs/plugins/function.nh_api_geocoder.php:1) in /htdocs/lib/classes/class.admintheme.inc.php on line 174

Warning: Cannot modify header information - headers already sent by (output started at /htdocs/plugins/function.nh_api_geocoder.php:1) in /htdocs/lib/classes/class.admintheme.inc.php on line 177

Warning: Cannot modify header information - headers already sent by (output started at /htdocs/plugins/function.nh_api_geocoder.php:1) in /htdocs/lib/classes/class.admintheme.inc.php on line 178

Warning: Cannot modify header information - headers already sent by (output started at /htdocs/plugins/function.nh_api_geocoder.php:1) in /htdocs/lib/classes/class.admintheme.inc.php on line 181

Warning: Cannot modify header information - headers already sent by (output started at /htdocs/plugins/function.nh_api_geocoder.php:1) in /htdocs/lib/classes/class.admintheme.inc.php on line 186

Ich habe keine Ahnung was mir diese Meldungen sagen wollen ...
nhaack

Re: GoogleMaps Marker Anzeige

Post by nhaack »

Hi Dylan,

ich glaube da ist mir ein Fehler beim Abspeichern passiert. Habe die Datei als UTF-8 mit BOM abgespeichert. Ich habe eine anders gespeicherte Version angehängt. Einfach das ".txt" am Ende entfernen. Probier mal ob es hiermit funktioniert.

Beste Grüße
Nils
Attachments

[The extension txt has been deactivated and can no longer be displayed.]

dylan

Re: GoogleMaps Marker Anzeige

Post by dylan »

Vielen Dank, die Fehlermeldung ist damit verschwunden.

Ich habe es so in meine Seite gesetzt (key geändert):

Code: Select all

{nh_essentials}
{nh_api_geocoder location="Mozartstrasse 21 D-76453 Musterstadt"
api_key="AAAynkAABQIknEZ-N3S4B2QNu_WsfThpmv2YJqNhaJTTHb8unCsD9dDxiR-HLOkRTGEJgfdRxcIyhnjf3zuLgA"}
The object is located here: {$geoinfo[0]->gps->space_string}
Wenn ich die Seite reloade bekomme ich folgende Fehlermeldung, die sich anscheinend auf den Cache bezieht?
http://maps.google.com/maps/geo?q=mozar ... output=xml
Fatal error: Call to undefined function: get_external_xml() in .../htdocs/plugins/function.nh_api_geocoder.php on line 10
NH API ESSENTIALS 0.3 (nh_essentials) ist im /plugins - Ordner vorhanden.

Die styles der Seite sind verschwunden, die Seite wird (Quelltext) ohne header angezeigt: ... content ohne abschließenden body- u. html-Tag.

Wahrscheinlich habe ich einen Fehler in der {nh_essentials} Platzierung. Was bedeutet The object is located here: {$geoinfo[0]->gps->space_string}?
Wie binde ich das Plugin mit folgenden Angaben korrekt ein?:
- key
- adresse


Danke!
nhaack

Re: GoogleMaps Marker Anzeige

Post by nhaack »

Hallo Dylen,

tut mir leid, dass das Plug-in bei dir nicht so gut funktioniert. Ich vermute langsam, dass sich hier die falsche Version online geschlichen hat. Komme aber erst frühestens morgen Abend dazu dies zu verifizieren.

The object is located here: {$geoinfo[0]->gps->space_string}

...ist nichts weiter als ein Beispielsatz in dem eines der verfügbaren Datenfelder angezeigt wird (bei Verwendung im Template). Der Satz muss nicht vorhanden sein und dient lediglich der Veranschaulichung.

Die Fehlermeldung: Fatal error: Call to undefined function: get_external_xml() in .../htdocs/plugins/function.nh_api_geocoder.php on line 10 lässt darauf schließen, das die Funktion get_external_xml nicht verfügbar ist. Allerdings hast du ja den Tag nach dem Aufruf der {nh_essentials} aufgerufen... somit sollten sie vorhanden sein.

Bitte prüf doch nochmal ob die nh_essentials korrekt im Plug-ins-Verzeichnis vorhanden sind. Ansonsten einfach nochmal erneut herunterladen und neu in das Plug-in-Verzeichnis schreiben.

Normalerweise reicht der folgende Aufruf um die Smarty-Daten im Template parat zu haben:

{nh_essentials}
{nh_api_geocoder location="Mozartstrasse 21 D-76453 Musterstadt" api_key="DEIN_KEY"}

Dein Aufruf ist an für sich i.O. und sollte keine Fehler produzieren. Verwendest du am Anfang deines Templates den Tag {process_pagedata}? Bin mir allerdings nicht sicher ob dies eine Auswirkung hat. Welche CMSMS Version verwendest du?

Schau doch mal ob es nach einer Neuinstallation der Plug-Ins funktioniert. Ansonsten könntest du ein anderes API Plugin einmal ausprobieren um zu gucken ob diese den gleichen Fehler produzieren.

Beste Grüße
Nils
dylan

Re: GoogleMaps Marker Anzeige

Post by dylan »

Hallo Nils,

ich habe den Aufruf nun so der Seite (nicht im Template, sorry) hinzugefügt:

{nh_essentials}
{nh_api_geocoder location="Mozartstrasse 21 D-76453 Musterstadt" api_key="GoogleMap Key"}

Ich habe beide Dateien aus dem Ordner gelöscht, neu heruntergeladen, und wieder im Ordner /plugins platziert (644).
Verwendest du am Anfang deines Templates den Tag {process_pagedata}?
ist als 1st line im Template enthalten:
{process_pagedata}


...
Welche CMSMS Version verwendest du?
CMS Made Simple 1.5.3 "Arecibo"



Nach den Änderungen hat sich am Erscheinungsbild der Seite wenig geändert, die Seite wird weiterhin ohne header ausgegeben.

Die Fehlermeldung ist jetzt allerdings eine andere:
Fatal error: Call to undefined function: simplexml_load_file() in /.../htdocs/plugins/function.nh_essentials.php on line 56

Line 56 in function.nh_essentials wäre:
$get_external_xml->xml = simplexml_load_file($cache_location);

Eine ähnliche Fehlermeldung wie die der function.nh_api_geocoder ...
Ansonsten könntest du ein anderes API Plugin einmal ausprobieren um zu gucken ob diese den gleichen Fehler produzieren.
Ich habe das Modul GoogleMaps 0.1.6 installiert, das funktioniert in der Map-Ausgabe ganz gut, nur leider nicht ganz so wie gewollt, deshalb dieser Thread.
Zum testen habe ich gerade SimpleGoogleMap installiert, das funktioniert ebenso wie GoogleMaps 0.1.6 mit einer korrekten Map-Ausgabe. Nur kann ich hier auch nicht die Adresse eingeblendet lassen.

Ich habe bisher immer das script von [wof.desy.de] zum einbinden von GoogleMaps benutzt. Wie im Beispiel von wof.desy.de zu sehen ist würde mir auch die Ausgabe der Map gefallen, - mit Anzeige der Adresse.

Ich denke das mit deinem Plugin die Möglichkeit dieser Ausgabe am ehesten gegeben ist, soweit ich es zum laufen bringe ;)
nhaack

Re: GoogleMaps Marker Anzeige

Post by nhaack »

mhh... merkwürdig. Habe beide Plug-ins in eine frische Installation gesetzt und keine Probleme gehabt.


Fatal error: Call to undefined function: simplexml_load_file() in /.../htdocs/plugins/function.nh_essentials.php on line 56

Könnte darauf hindeuten, das simpleXML auf deinem System vielleicht nicht zur Verfügung steht. Biite prüfe einmal die folgenden Punkte:

1) Wird die richtige Anfrage gestellt? (wahrscheinlich ja)
In der aktuellen Version gibt nh_api_geocoder noch die URL der XML Anfrage aus. Wenn du diese URL kopierst und direkt aufrufst, müsstest du die Google API Antwort als XML sehen. Um die URL Angabe zu entfernen, einfach function.nh_api_geocoder.php Zeile 9 mit dem ECHO löschen.

2) Wird die XML Datei angefragt und im Cache abgelegt? (wahrscheinlich ja)
Das Plugin fragt die Datei erstmal als einfaceh Textdatei an und schreibt diese in den Cache. Erst dann wird mit simpleXML darauf zugegriffen. Findest du in dem angegeben Cache-Ordner (wenn keiner angegeben ist, ist es /tmp/cache)? XML Dateien mit dem Prefix "google_geocoder"? Wie groß sind die einzelnen Dateien im Schnitt? Wenn du sie öffnest, siehst du normales XML?

3) Ist SimpleXML vorhanden?
Vielleicht liegt das Problem hier? Führe doch mal phpinfo() aus und guck, ob du einen Eintrag SimpleXML findest und was darin enthalten ist. Z.B. erstelle ein UDT, dass nur den Code

Code: Select all


phpinfo();

und packe diesen Tag in eine Seite und rufe diese über das Frontend auf. Durchsuche die Seite nach "simpleXML".
- Welche Einstellungen findest du hier? Kommt simpleXML vielleicht gar nicht vor?
- Welche PHP Version benutzt du und um was für einen Server handelt es sich (Windows/IIS oder Linux/Apache oder sonst welche Kombos))?
- Bei welchem Hosting-Provider läuft die Site?


Teste doch mal diese drei Möglichkeiten und melde mal, was du jeweils herausbekommen hast. Dann können wir das Problem weiter eingrenzen.

Eigentlich hast du alles richtig gemacht und es sollte problemlos laufen. Die ersten beiden Tests zielen darauf ab, zu prüfen ob zumindest die richtigen Daten abgefragt werden und ob die XML Datei als solches im Cache gespeichert wird. Wenn das klappt, liegt das Problem wohl nicht direkt am Plugin sondern vielleicht an der Server-Konfiguration, z.B. wenn simpleXML deaktiviert wurde.
Ansonsten könntest du ein anderes API Plugin einmal ausprobieren um zu gucken ob diese den gleichen Fehler produzieren.
Ich habe das Modul GoogleMaps 0.1.6 installiert, das funktioniert in der Map-Ausgabe ganz gut, nur leider nicht ganz so wie gewollt, deshalb dieser Thread.
Zum testen habe ich gerade SimpleGoogleMap installiert, das funktioniert ebenso wie GoogleMaps 0.1.6 mit einer korrekten Map-Ausgabe. Nur kann ich hier auch nicht die Adresse eingeblendet lassen.
Ich meinte eigentlich ein anderes Plug-in aus der API Collection (z.B. Twitter oder Youtube). Funktionieren diese bei dir? Aber prüfe ruhig erstmal die drei Punkte. Andere Module mit MAPS Anbindung arbeiten meines Wissens nach nicht mit der XML Api von Google (zumindest nicht direkt auf Server-Seite).

Hoffe wir bekommen das hin

Beste Grüße
Nils
dylan

Re: GoogleMaps Marker Anzeige

Post by dylan »

Ich bin die Punkte einzeln durchgegangen ...
1) Wird die richtige Anfrage gestellt?
Ja
2) Wird die XML Datei angefragt und im Cache abgelegt? (wahrscheinlich ja)
Das Plugin fragt die Datei erstmal als einfaceh Textdatei an und schreibt diese in den Cache. Erst dann wird mit simpleXML darauf zugegriffen. Findest du in dem angegeben Cache-Ordner (wenn keiner angegeben ist, ist es /tmp/cache)? XML Dateien mit dem Prefix "google_geocoder"? Wie groß sind die einzelnen Dateien im Schnitt? Wenn du sie öffnest, siehst du normales XML?
Die Datei ist ein 8-zeiler, ... Dateigröße < 1kb (256). Nach dem Zugriff von simpleXML (s. Zitat 3): Änderung der PHP-Version) ist die Datei 2kb groß und beinhaltet alle erforderlichen Daten (!?).
3) Ist SimpleXML vorhanden?
PHP version 4.3.9, kein SimpleXML vorhanden
Bei welchem Hosting-Provider läuft die Site?
Strato. Zum Glück konnte ich in der Konfiguration die PHP-Version auf 5.2.8 ändern, nach der Änderung steht SimpleXML zur Verfügung, phpinfo:


Simplexml support enabled
Revision$Revision: 1.151.2.22.2.45 $
Schema supportenabled

Welche PHP Version benutzt du und um was für einen Server handelt es sich (Windows/IIS oder Linux/Apache oder sonst welche Kombos))?
PHP Version 5.2.8 (jetzt :), Apache/1.3.37 (Unix)

Nach dem Update der PHP-Version ist der seiten - header wieder vorhanden. Puuhhh.

Eine Map wird leider nicht ausgegeben, an Position der Map steht die URL:
http://maps.google.com/maps/geo?q=...&h ... output=xml
Das ist auch, was im Quelltext steht, - die URL. Die URL sollte wahrscheinlich irgendwo interpretiert werden, wäre das für mich sichtbar im Quelltext, z.B. per JavaScript, oder ..?

Vielen Dank, dylan
nhaack

Re: GoogleMaps Marker Anzeige

Post by nhaack »

Hi Dylan,

alles klar. Das sind soweit gute Nachrichten. Gut das du auf auf php >5 umgestellt hast und simpleXML jetzt zur Verfügung steht. Die unterschiedlichen Größen der Dateien haben mich allerdings gewundert. Die Antworten des Google Servers können unterschiedlich lang sein. Bei unterschiedlichen Orten können also durchaus unterschiedlich lange Antworten herauskommen. Wenn die XML-Datei allerdings nur 8-Zeilen lang ist, konnte i.d.R. die Adresse nicht aufgelöst werden. Hast du zum Anfragen ein real exitierende(n) Anschrift oder Ort verwendet oder die Adresse aus "Musterstadt"?

Mit der Default-Einstellung des Cachings werden die XML-Daten etwa 10 Tage im Cache vorgehalten (oder der Cache wird manuell über das Admin gelöscht [nur wenn Plugin mit Default Cache-Verzeichnis läuft]). Wenn ich das System einrichte verwende ich den cache_time parameter {... cache_time=1  ...}.

Gerade wenn am Anfang was schief geht, kannst du so verhindern, das du 10 Tage die Ergebnisse vorhältst (oder einfach nach Änderungen den CMSMS Cache löschen).
Eine Map wird leider nicht ausgegeben, an Position der Map steht die URL:
http://maps.google.com/maps/geo?q=...&h ... output=xml
Das ist auch, was im Quelltext steht, - die URL. Die URL sollte wahrscheinlich irgendwo interpretiert werden, wäre das für mich sichtbar im Quelltext, z.B. per JavaScript, oder ..?
Damit meine ich die Ausgabe des Plugins. Im Quelltext des Plug-in steht noch ein ECHO in Zeile 9 des Geocoder Plug-ins. Das habe ich noch entfernt (siehe angehängte Datei).

Eine Map gibt das Plug-in nicht aus. Es nutzt lediglich die Geocoder Schnittstelle des Maps Moduls und stelle Geo-Daten zu der Adresse per Smarty zur Verfügung. So kannst du deine Maps selbst stylen und einrichten und fügst mit dem Plug-in nur noch die Koordinaten hinzu.

Um eine Map einzubinden, gibt es verschiedene Wege. Füge einfach den Metadaten der Seite auf der du die Map sehen willst folgenden Beispiel Maps-Code hinzu:

Code: Select all


{nh_essentials}
{nh_api_geocoder location="ADRESSE" api_key="YOUR_KEY"}
    {literal}
	<__script__ src="http://maps.google.com/maps?file=api&v=2&key=YOUR_KEY" type="text/javascript"></__script>

	<__script__ type="text/javascript">

    function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng({/literal}{$geoinfo[0]->gps->comma_string}{literal}), 7);
        
        var opts = { text : "Hello World"};
        
        var marker = new PopupMarker(new GLatLng({/literal}{$geoinfo[0]->gps->comma_string}{literal}), opts);
        map.addOverlay(marker);
      }
    }

    </__script>
	{/literal}

Um die Funktion nun beim Seitenaufruf zu anzuschieben musst diese Funktion per onload="initialize()" des Body-Tags aufgerufen werden.

Dazu gibt es zwei Wege, entweder, du baust ein eigenes Template für Seiten mit Map Darstellung oder du fügst deinem Basis Template eine Option zu, den Body tag im Bedarf zu erweitern.

Dort wo in deinem Template der anfängt, tausch du dies gegen 

Jetzt kannst du zu den Seiten bei Bedarf beim Bearbeiten in das Feld "html_body_extension" einfach onload="initialize()" eintragen und die Map aus den Page-Metadaten würde geladen werden.

Als letztes musst du die Map im Content einbauen. Dazu reicht es dort einzustellen, wo du die Map hinhaben möchtest.

Jetzt müsstest du nach Seitenaufruf über das Frontend eine Map mit Marker an der richtigen Position sehen.

Wenn du jetzt öfters eine Map einbinden willst, empfehle ich dir ein eigenes Template zu bauen. Du kannst ja einfach dein normales Content-Template kopieren. Dann bauen wir ncoh ein wenig Smarty herum, so dass die API Anfragen und das JS nur da sind, wenn du in einem zusätzlichen Feld eine Adresse beim Seitenbearbeiten eingestellt hast.

1) Im Bereich des Templates folgenden Smarty-Code zum Template hinzufügen

Code: Select all


{content block="adresse" assign="var_adresse" oneline=true}
{if $var_adresse != ''}
{nh_essentials}
{nh_api_geocoder location="ADRESSE" api_key="YOUR_KEY"}
    {literal}
	<__script__ src="http://maps.google.com/maps?file=api&v=2&key=YOUR_KEY" type="text/javascript"></__script>

	<__script__ type="text/javascript">

    function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng({/literal}{$geoinfo[0]->gps->comma_string}{literal}), 7);
        
        var opts = { text : "Hello World"};
        
        var marker = new PopupMarker(new GLatLng({/literal}{$geoinfo[0]->gps->comma_string}{literal}), opts);
        map.addOverlay(marker);
      }
    }

    </__script>
	{/literal}
{/if}

2) Tag im Falle einer Adresse zum Map-Laden bewegen

Austausch von gegen

Code: Select all


</__body{if $var_adresse != ''} onLoad="initialize()"  onunload="GUnload()"{/if}>

3) Anwendung

Erstelle eine neue Seite mit dem modifizierten Template (oder ändere das Template einer Seite zu dem neuen Template).
Jetzt müsstest du ein neues Feld "Adresse" sehen. Wird dieses ausgefüllt, muss man im Content einfach an gewünschter Stelle die Map einsetzen . Dies sind dann die einzigen beiden Aktionen die später redaktionell bearbeitet werden müssen (Adresse und Map-DIV setzen). Jetzt hast du eine komfortablere Map-Einbindung wenn du öfters auf verschiedenen Seiten verschiedene Orte angeben möchtest.



Wenn du ein anderes Map-Design oder andere Controls, Zoomstufen oder was auch immer möchtest, kannst du dein JS nach deinen Wünschen anpassen.

http://code.google.com/intl/de/apis/map ... ction.html

Unter der URL gibt es eine gute deutschsprachige Erläuterung zum Einstieg in Googe Maps für Heimwerker ;) dort findest du auch noch viele Beispiele.

Hoffe die Erläuterungen helfen dir und anderen potentiellen Nutzern das Google Geocoder API Plugin besser zu verstehen.
Teste bitte nochmal ob die angehängte Version bei dir nun gut läuft, ich werde dann eine neue Version öffentlich einstellen.

Beste Grüße
Nils
Attachments

[The extension txt has been deactivated and can no longer be displayed.]

dylan

Re: GoogleMaps Marker Anzeige

Post by dylan »

Ich kriege es einfach hin, beide Varianten funktionieren bei mir nicht.


Was habe ich gemacht?
Ich habe ein eigenes Template angelegt und die Daten wie folgt eingefügt:

im header:

Code: Select all

{nh_essentials}
{nh_api_geocoder location="ADRESSE" api_key="YOUR_KEY"}
    {literal}
	<__script__ src="http://maps.google.com/maps?file=api&v=2&key=YOUR_KEY" type="text/javascript"></__script>

	<__script__ type="text/javascript">

    function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng({/literal}{$geoinfo[0]->gps->comma_string}{literal}), 7);
        
        var opts = { text : "Hello World"};
        
        var marker = new PopupMarker(new GLatLng({/literal}{$geoinfo[0]->gps->comma_string}{literal}), opts);
        map.addOverlay(marker);
      }
    }

    </__script>
	{/literal}
body-Tag:

nach dem Lesen der code.google.com/intl/de/apis/maps/documentation/introduction.html habe ich es auch noch so probiert:


Im content der Seite habe ich es an entspr. Stelle wie vorgeschlagen (?) eingesetzt (natürlich mit echten Daten, nicht Musterstadt):

{nh_essentials}
{nh_api_geocoder location="Mozartstrasse 21 D-76453 Musterstadt"
api_key="AAAynkAABQIknEZ ... 3zuLgA"}


Beim neu laden der Seite bekomme ich ain JS-alert:
Der auf dieser Website verwendete Google Maps API-Schlüssel wurde für eine andere Website registriert. Sie können unter http://code.google.com/apis/maps/ einen neuen Schlüssel für diese Website erzeugen.

Der Key ist garantiert korrekt, ich habe ihn noch mit dem Modul GoogleMaps 0.1.6 in einer Testseite platziert.

Wenn ich das alert mit "OK" akzeptiere erscheint das ganze wie folgt im Quelltext:

Code: Select all

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<__script__ src="http://maps.google.com/maps?file=api&v=2&key=YOUR_KEY" type="text/javascript"></__script>
<__script__ type="text/javascript">
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(40.43908316,3.983827), 7);
var opts = { text : "Hello World"};
var marker = new PopupMarker(new GLatLng(40.433836,3.908897), opts);
map.addOverlay(marker);
}
}
</__script>
Der Key wird anscheinend nicht übergeben? Es ist garantiert der richtige, ich weiß nicht wo der Fehler liegt?
Die zweite Möglichkeit habe ich auch probiert, leider ebenso ohne Erfolg. Ist denn mein Eintrag im content korrekt?

Danke und Gruß, Dylan
nhaack

Re: GoogleMaps Marker Anzeige

Post by nhaack »

Hallo Dylan,

naja, so langsam kommen wir ja vorwärst ;)

Wenn ich mir den erzeugten JS Code ansehe, sieht eigentlich alles prima aus. Die Koordinaten befinden sich in der Page. Das Plug-in funktioniert also schon mal. Jetzt müssen wir nur noch mal schauen, warum die MAP nicht richtig initialisiert wird.

Hast du daran gedacht deinen MAP KEY auch im Script Aufruf davor einzutragen? Also einmal Key für das Plug-in angeben und einmal in der Zeile:

Code: Select all


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

Später im Content musst du nur wirklich nur noch eintragen. Dazwischen brauchst du nichts mehr eintragen.

Hast du mal versucht die Map zunächst einmal komplett manuell einzupflegen?

Beste Grüße
Nils
dylan

Re: GoogleMaps Marker Anzeige

Post by dylan »

Bingo!
Der fehlende Key-Eintrag
war das Problem, mit eingetragenem Key funktioniert es wunderbar. Tausend Dank!

Ich hatte angenommen das der Eintrag YOUR_KEY im script src als Variable fungiert, daher hatte ich dort keinen Eintrag gemacht. Momentan wird mir halb Deutschland plus Belgien in der Map angezeigt, aber das ist nur noch Feinschliff. Die Dokumentation von google Map gibt sicher Auskunft darüber.

Tausend Dank noch einmal,
mit besten Grüßen nach Hamburg, Dylan
nhaack

Re: GoogleMaps Marker Anzeige

Post by nhaack »

Hallo Dylan,

schön das es jetzt klappt. Durch den "Selbstaufbau" der Map hast du alle Freiheiten in der Gestaltung :). Wenn du die Zoom-Stufe anpassen möchtest, einfach in der Zeile JS, die mit map.setCenter beginnt auf die gewünschte Zoomstufe ändern (letzte Zahl in der Zeile, 1 = ganz weit weg, 15 (oder so) = ganz nah dran).

Bitte setzte noch ein [Gelöst] vor deinen ersten Beitrag :)

Beste Grüße
Nils
dylan

Re: GoogleMaps Marker Anzeige

Post by dylan »

Hallo Nils,
hallo Forum,

ich lese mich seit heute morgen durch die google-Dokumentation, komme aber nicht wirklich weiter, ich vermute mal, dass es vielleicht auch nicht geht?

1. Ist es möglich im InfoWindow
document.createTextNode("M\xF6ller GmbH \n Mozartstra\xDFe 21 \n D-76453 Musterstadt"));
line-breaks unterzubringen? In meiner google-Suche habe ich dutzende Seiten gelesen, habe aber keine Lösung finden können, die in meinen Map-Aufruf passt.

Gleiches gilt für die Positionierung eines Markers. Ich habe es geschafft einen Marker hinzuzufügen, aber wenn er einmal weggeklickt ist, lässt er sich nicht wieder aufrufen. Ich blicke noch nicht so ganz durch bei der Formatierung der Map.

Ich möchte gern einen Marker für eine Adresse,
dass das Info-Window beim starten der Seite geöffnet ist,
eine mehrzeilige Adressangabe im Infow-Window wäre toll,
und die Zoom-Navigation o. links in der Map

Ich habe die Seite Karten-Overlays von googleMaps gefunden, kriege es aber nicht hin die code-Schnipsel hinzuzufügen. Bei den meisten meiner Versuche erscheint ein leeres weißes Feld im map-div.

Den Marker habe ich so hinzugefügt:

Code: Select all

{nh_essentials}
{nh_api_geocoder location="ADRESSE" api_key="YOUR_KEY"}
    {literal}
	<__script__ src="http://maps.google.com/maps?file=api&v=2&key=AAAynkAABQIknEZ-N3S4B2QNu_WsfThpmv2YJqNhaJTTHb8unCsD9dDxiR-HLOkRTGEJgfdRxcIyhnjf3zuLgA" type="text/javascript"></__script>
	<__script__ type="text/javascript">
    function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(31.908495000000001, 7.7507380000070002), 15);
map.openInfoWindow(map.getCenter(),
                   document.createTextNode("<strong>M\xF6ller GmbH</strong>\n Mozartstra\xDFe 21 \n D-76453 Musterstadt"));
        
        var opts = { text : "Hello World"};

        var marker = new GMarker(new GLatLng(31.908495000000001, 7.7507380000070002));
        map.addOverlay(marker);
GEvent.trigger(marker, "click");
      }
    }
    </__script>
	{/literal}
Meine Frage:

Hast Du vielleicht ein Muster, an dem ich mich orientieren kann, um deinem script diese Funktionen hinzuzufügen? Ganz so leicht ist es für mich dann doch nicht :)

Danke
Post Reply

Return to “Module und Tags”