Hilfe - Suche - Mitglieder - Kalender
Vollansicht: GoogleMap2 v01.03.00
Forum Sefrengo.org > Downloads > Module
mvsxyz
Modulname:
---------------------------------------------------------------------------
GoogleMap2 v01.03.00


Status:
---------------------------------------------------------------------------
stable


Bechreibung:
---------------------------------------------------------------------------
Mit diesem Modul wird das Einbinden von Googlemap auf der eigenen Seite ermöglicht. Sehr gut zur Anwendung für Anfahrtsbeschreibungen.
Nötig ist nur ein Key, der bei Google kostenlos beantragt werden kann (Link direkt im Modul).
Jetzt muß nur noch eine gewünschte Adresse, ein Titel des Infowindows und den dazugehörige Text eingegeben werden.


Features:
---------------------------------------------------------------------------
- direkte Eingabe des anzuzeigenden Ortes
- Größenangabe der Karte im Modul


Autor(en):
---------------------------------------------------------------------------
pawel
FireFlyer
mvsxyz


Lizenz:
---------------------------------------------------------------------------
GPL


Benötigte Sefrengo Version:
---------------------------------------------------------------------------
>= 01.03.00 (Sefrengo 1.4 beta2)


Installation:
---------------------------------------------------------------------------
Wechseln Sie in Ihrer Sefrengo Version in den Bereich "Design->Module". Am
unteren Ende des Bereichs befindet sich ein Uploadfeld. Wählen Sie hier die
gewünschte "*.cmsmod"- Datei aus. Mit einem Klick auf das Diskettensymbol
wird das Modul in das CMS importiert. Das Modul ist nun innerhalb des CMS
nutzbar.


Dokumentation:
---------------------------------------------------------------------------
Keine vorhanden


ZITAT
Changelog legend:
# -> Bug Fix
+ -> Addition
^ -> Change
- -> Removed
! -> Note


Current versionnumber is 01.03.00 - released 07.08.2008
------------------------------------------------------------------------------------------------
+ Einstellmöglichkeiten für Kartentyp
+ Einstellmöglichkeit für Zoomstufe


Current versionnumber is 01.02.00 - released 22.07.2008
------------------------------------------------------------------------------------------------
+ Einstellmöglichkeiten für Beschriftungsfelder erstellt
+ Modul in Tabs aufgeteilt


Current versionnumber is 01.01.00 - released 14.07.2008
------------------------------------------------------------------------------------------------
# JS-Fehler: document.getElementById("sidebar_map") has no properties behoben


Current versionnumber is 01.00.00 - released 07.07.2008
------------------------------------------------------------------------------------------------
# DIV nimmt Größenangaben des Moduls an


Current versionnumber is 00.02.00 - released 05.07.2008
------------------------------------------------------------------------------------------------
# Google-Key Link => target _blank
# GoogleMapAPI-2.5 ins Modul gepackt
# Breite und Höhen können im Modul angegeben werden


Current versionnumber is 00.01.00 - released 14.12.2006
------------------------------------------------------------------------------------------------
! Erstausgabe
pawel
Wow, bin begeistert, wie sich das Modul entwickelt. Hier noch mal ein Hinweis zu der gerade gelesenen Disskussion zur letzten Version. Da stecken noch einige (lt. Changelog) unbearbeitete Ideen drin.
mvsxyz
Ja, das ist richtig. Ich habe nur die oben angegebenen Funktionen hinzugefügt, da ich diese in der Klasse gesehen und gebraucht hatte.
cosmocat
Guten Abend allerseits,

irgendwas muss ich falsch machen. Habe das Modul eingebunden, ID beantragt, eingetragen - soweit wunderbar. Leider weigert sich die Map konsequent meinen Infoboxtitel und den Infotext anzuzeigen. Weder IE6 noch FF3 zeigen den Text an. Im Sourcecode der Seite sind die Werte allerdings da. Habt ihr eine Idee?

Grüße
Kätzle
cosmocat

ok, problem gelöst: wenn man im body seines css den text auf #FFFFFF setzt kann natürlich in einer weissen infobox auch nichts erscheinen blink.gif klassische ostfriesische fahne: weisser adler auf weissem grund rolleyes.gif
cosmocat

sorry, doch nochmal eine Frage dazu. Im Sourcecode kommen sehr viele CSS Klassen zum Einsatz, z.B. class="gmapDir". Die fehlen bei mir natürlich, weshalb meine Infobox anfangs auch so leer war. Gibt es ein zentrales CSS von Google das referenziert werden muss, um das typische Look & Feel zu erhalten? Falls ja fehlt es offenbar im Modul. Falls nicht wäre es genial wenn man ähnlich wie beim Kontaktformular das Ganze durch Angabe von einzelnen CSS Klassen anpassen könnte.

Grüße & Gute Nacht,
Cosmo
gunwalt
Auf der Navigation links ist etwas verrutscht - sich überschneidene Layer?

Bei einem Update muss das Modul auf jeden Fall neu gespeichert werden, sonst gibt es im Frontend Fehlermeldungen.
pawel
Eigentlich bindet Google über die api und die styles automatisch ein (Schau mal unter view css in der Developererweiterung).
Die Darstellung der Layer ist natürlich nicht ohne Tücke (wer ab und zu noch mit Windows unterwegs ist, kann sich ja mal ein Map mit der IE 8beta ansehen smile.gif ). Das liegt aber nicht am Modul, was ja nur den Zugriff auf die GoogleAPI ein wenig erleichtert.
hylli
Dumme Frage:
Wie kriege ich die Map in meinem Inhalt zentriert?

Dem umschließenden DIV habe ich ein
QUELLTEXT
text-align:center;
mitgegeben, die Überschrift, die sich ebenfalls in diesem DIV befindet wird auch zentriert, nur eben nicht die Googlemap?

Jemand'ne Idee?

Hylli
pawel
Willst du die gesamte map zentrieren, also die Karte?
Dann nützt die text-align selbstverständlich nichts #map {width: 50%, margin: auto}
hylli
Danke schonmal für Deine Antwort.

Habe ein 2spaltiges zentriert ausgerichtetes Layout mit Header, Breadcrumb-Menü, linker Navigation und Footer.

Den Inhalt, zumindes für die Seite mit der Google-map möchte ich komplett zentrieren, daher habe ich dem umschließenden DIV ein "text-align:center;" mitgegeben.

Nun habe ich mal den Container mit der Googlemap als Modul zusätzlich mit dem von Dir angegeben CSS-Style per DIV umschlossen.

Jetzt sehe ich zwar noch Beschriftungen, Zoom etc. jedoch keine Karte mehr?!?

Hylli
andi
zeig das ganze doch mal online. text-align: center wird dir nichts bringen. dies zentriert lediglich alle inline-elemente (ausser in ie6 im quirkmodus und ie 5) in deinem div. sehr schön zu sehen auf deinem screenshot.

grundsätzlich brauchst du «1» umschliessendes div. dazu das passende css:

QUELLTEXT
#deine-id {
   margin: 0 auto;
}


gruss andi
hylli
Hast/Kriegst PN, Danke vorab für's anschauen!

Hylli
gunwalt
Ich habe verschiedene Installationen, in denen Googlemas nicht mehr läuft. Es bleibt einfach nur der weisse Fleck des Hintergrunds.
Kopf:
ZITAT
<link rel="StyleSheet" href="cms/css/style.css" type="text/css" />
<!--END head//--><script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAUk_7EYqW63deNAORIY7KWhSyNJ8d_9beVhgMWrawHP93UoEc0RTRRDBcOyPa
OMaj2C60Jf0NCJPTQ" type="text/javascript" charset="utf-8"></script><script type="text/javascript" charset="utf-8">
//<![CDATA[
/*************************************************
* Created with GoogleMapAPI 2.5
....
markers[idx].openInfoWindowHtml(from_htmls[idx]);
}
//]]>

</script>
<script language="javascript" type="text/javascript" charset="utf-8">window.onload=onLoad;</script>


Body
ZITAT
<!--START 21//--><script type="text/javascript" charset="utf-8">
//<![CDATA[
if (GBrowserIsCompatible()) {
document.write('<div id="map" style="width: 500px; height: 300px"><\/div>');
} else {
document.write('<b>Javascript must be enabled in order to use Google Maps.<\/b>');
}
//]]>
</script>
<noscript><b>Javascript must be enabled in order to use Google Maps.</b></noscript>
<!--END 21//-->


Das Modul ist korrekt eingebunden, aber .... ? Hat jemand eine Idee
hylli
In allen Browsern?

Bei FIrefox würde ich ja zunächst nach NoScript oder AdBlockPlus o.ä. schauen.

Hylli
gunwalt
ZITAT(hylli @ Fri. 17. October 2008, 14:19) *
In allen Browsern?
Bei FIrefox würde ich ja zunächst nach NoScript oder AdBlockPlus o.ä. schauen.

Derzeit in allen Browsern - gunwalt.de/download/googlemaps.html

Wenn etwas nicht läuft, schalte ich als erstes NoScript aus. Aber jetzt sitze ich an einem Rechner ohne.

hylli
Funktioniert bei mir auch nicht. SF-Cache wäre noch meine letzte Idee, ansonsten fällt mir nix mehr ein.

Hylli
pawel
Der Übeltäter ist schnell ausgemacht:
QUELLTEXT
var point = new GLatLng(,);

Es wird im js kein Punkt mitgegeben. Du hast den key für diese Domain beantragt?
Was ist bei den Seiten, wo es nicht funktioniert anders (php5?)


Möglicherweise liegt es auch am Dienst selber und das geocoding funktioniert nicht korrekt.
Mal bitte nach
QUELLTEXT
    var $lookup_service = 'GOOGLE';
    var $lookup_server = array('GOOGLE' => 'maps.google.com', 'YAHOO' => 'api.local.yahoo.com');

suchen.
Probiere mal, ob sich durch die Veränderung zu maps.google.de etwas ändern oder nutze YAHOO.
gunwalt
ZITAT(pawel @ Fri. 17. October 2008, 18:40) *
Der Übeltäter ist schnell ausgemacht:
QUELLTEXT
var point = new GLatLng(,);

Es wird im js kein Punkt mitgegeben. Du hast den key für diese Domain beantragt?
Was ist bei den Seiten, wo es nicht funktioniert anders (php5?)

PHP5 ist richtig. Der Key für die Domain stimmt.


ZITAT(pawel @ Fri. 17. October 2008, 18:40) *
Möglicherweise liegt es auch am Dienst selber und das geocoding funktioniert nicht korrekt.
Mal bitte nach
QUELLTEXT
    var $lookup_service = 'GOOGLE';
    var $lookup_server = array('GOOGLE' => 'maps.google.com', 'YAHOO' => 'api.local.yahoo.com');

suchen.
Probiere mal, ob sich durch die Veränderung zu maps.google.de etwas ändern oder nutze YAHOO.

Ich habe auf anderen Domains die Maps über AddHeader eingebunden und das geht. Das Modul Googlemaps nicht
pawel
ZITAT
Ich habe auf anderen Domains die Maps über AddHeader eingebunden und das geht.

Das heißt, der reine Javascript funktioniert, aber der php wrapper nicht. Das kann ich unter php5 so reproduzieren. Das scheint auch phoogle zu betreffen, womit ich zwischendurch experimentiert habe. Sehr seltsam.

Der Anhaltspunkt scheint php5 zu sein.
gunwalt
ZITAT(pawel @ Sat. 18. October 2008, 10:23) *
Das heißt, der reine Javascript funktioniert, aber der php wrapper nicht. Das kann ich unter php5 so reproduzieren. Das scheint auch phoogle zu betreffen, womit ich zwischendurch experimentiert habe. Sehr seltsam.


Ja. Javascript über AddHeader

ZITAT
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAUk"
type="text/javascript"></script>
<script type="text/javascript">

//<![CDATA[

function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(51.218169,6.947486), 16);
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
}
}
//]]>
</script>


HTMLCode
ZITAT
<body onload="load()" onunload="GUnload()">
und
ZITAT
<div id="map" style="width: 400px; height: 300px;">&nbsp;</div>

pawel
Addheader ist nicht so entscheidend. (Onload gehört m.E. nicht in den body).
Im Prinzip gibst du den gesamten Code mit und ermittelst keine Werte.

Aber wieso funktioniert es nur unter php5 nicht? Ich habe jetzt so eine Ahnung, wofür man Debugger braucher könnte rolleyes.gif .
amk
also ich hab hier 'ne merkwürdigkeit bei der das modul den js-krimskrams irgendwie in den doc-type reinwurschtelt!
hat irgendwer 'ne ahnung woran das liegen könnte?

ich setzte als einzig output-manipulierendes plugin noch den e-mail-schutz ein?!

QUELLTEXT
<!DOCTYPE html PU<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAKZ-0xQ3gyWOpj77dLpbiXRRd2HZ4Me81BJjFa95SXO7WgBDyrhQdM7RNdCJsn76Lolt9qPhj_DpVjg" type="text/javascript" charset="utf-8"></script><script type="text/javascript" charset="utf-8">
...
</script>
<script language="javascript" type="text/javascript" charset="utf-8">window.onload=onLoad;</script>BLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
pawel
Es liegt am Modul, Ich denke, dass
...
$link2_head = array($head);

$mod['manipulate_output'] = '$magic = "<!--END head//-->";';
$mod['manipulate_output'] .= '$start = strpos($output, $magic) + strlen($magic);';
$mod['manipulate_output'] .= '$new_output = substr($output, 0, $start);';
...
nicht richtig funktioniert, weil du vielleicht die Kommentare nicht verwendest.

Vielleicht hilft Dir das
amk
danke für die infos/tipps ... ich check das mal! smile.gif
amk
jup Pawel - nun läuft das ... nochmals danke! smile.gif

sollte vielleicht im modul konfigurierbar sein wonach gesucht bzw. wo wie was eingefügt wird ...
summerbrother
Ich hab da noch ein FR für das Modul:

Schön wäre ein Textfeld für "Html-Ausgabe vor dem Modul" und ein "Html-Ausgabe nach dem Modul"

Ansonsten klappt das Modul gut bei mir.

amk
wäre schön wenn das modul ohne file_get_contents() auskäme (vermutlich php-"allow_url_fopen"-direktive-abhängig) ...
m.e. nicht wenige provider erlauben jene php-funktionalität nicht.
bkm
ZITAT(amk @ Fri. 17. April 2009, 21:31) *
m.e. nicht wenige provider erlauben jene php-funktionalität nicht.

wenn allow_url_fopen beim provider off ist, sind meist auch alternativen off (curl etc.)
höchst nen switch bauen der alle verdächtigen abfragt , wenn dicht hilft es dann aber auch nicht.
bjoern
Das Problem hatte ich neulich auch. Aber mit curl ging es. Ich hatte meine Methode dafür unter http://forum.sefrengo.org/index.php?s=&...ost&p=15854 dokumentiert. Inzwischen weiß ich auch, das die funktioniert smile.gif
bkm
ZITAT(bjoern @ Sat. 18. April 2009, 11:18) *
Das Problem hatte ich neulich auch. Aber mit curl ging es. Ich hatte meine Methode dafür unter http://forum.sefrengo.org/index.php?s=&...ost&p=15854 dokumentiert. Inzwischen weiß ich auch, das die funktioniert smile.gif

bringt aber halt nix wenn gerade das was im modul verwendet wird bei deinem provider nicht erlaubt ist.
im core verankert (so das jeder zugreifen kann) wäre da bestimmt auch schöner.
wie auch sowas bestimmt in den core gehört.
bjoern
Es gibt garantiert immer einen Provider wo es nicht funktioniert. Paranoide Serveradmins gibts halt. Aber die Wahrscheinlichkeit, das es funktioniert, steigert sich durch die Unterstützung beider Methoden.

Deinen Ausflug zum Infomodul verstehe ich nicht. Was meinst Du damit? Das Thema hier ist Google Maps.
bkm
ZITAT(bjoern @ Sat. 18. April 2009, 12:29) *
Deinen Ausflug zum Infomodul verstehe ich nicht. Was meinst Du damit? Das Thema hier ist Google Maps.

War der Lese-Tipp der Woche wink.gif
pawel
Ich habe sowieso mal einen kompletten Rewrite auf der Agenda. Das Modul sollte ja ursprünglich mal mehr können rolleyes.gif

Für die gewünschte/ genutzte Funktionaliät ist die verwendete Klasse zu umfangreich und unnötig. Das problematische file_get_contents() wird ohnehin nur für das Geocoding genutzt.
Das muss nicht innerhalb von PHP gemacht werden. Da ohnehin Javascript nötig ist, um die Karte anzuzeigen, kann das auch ins Javascript verlagert werden, zumal damit der Seitenaufbau beschleunigt wird. Eine andere Alternative ist auch die Abfrage der Koordinaten im Backend per Javascript, die dann von Nutzer in die Maske übertragen werden kann.

webmasterFF
Hallo Leute,

auch ich habe ein Problem mit dem Modul.
Hab den API benatragt, das Modul eingebunden und alles ist wunderbar. Bis auf eine Kleinigkeit: Der Besucher meiner Website kann irgendwie nicht die Route berechnen lassen.
Hab ich da irgendwas falsch gemacht? Sprich: Bei mir erscheint die Infobox überhaupt nicht.

Weitere Frage: Kann ich irgendwo im Modul die Schriftfarbe anpassen?

DANKE
webmasterFF
Hallo,

also meine letzte Frage hat sich von selbst erledigt. Hate das selbe Problem wie einer der Schreiber vorher mit dem css-style.

Mir ist aber eine weitere Frage gekommen: Kann man das irgendwie einstellen bzw. umschreiben im Modul dass die Blase mit der Beschriftung immer da ist wenn die Karte angezeigt wird? Momentan öffnet sich ja die Blase mit Klick auf den Ballon.

Geht das irgendwie?

Danke und Grüße
pawel
Geht. Allerdings nicht über das Modul.
Die Direction ist m.E. zwar auswählbar, damit wird aber im Output nichts gemacht.

Im Javascript wird ja das GEvent so erzeugt:
QUELLTEXT
      GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(WINDOW_HTML);
      });


GEvent ist ein Objekt, was die Maps API mitbringt. Der Code regelt das bei einem Klick das Ereignis ausgelöst wird.
Um zusätzlich gleich das Infofenster zu öffen, wiederhole ieinfach danach den Code
QUELLTEXT
marker.openInfoWindowHtml(WINDOW_HTML);


Für mich ist es mittlerweile einfacher direkt das Javascript zu schreiben, um auch alle Möglichkeiten abzudecken. Wenn ich das Modul umschreibe, dann mit schlanken JS-Output. Das momentane Modul werde ich nicht weiterentwickeln.

webmasterFF
Aha, danke Pawel !

Nur wo muss ich den von dir genannten letzten Code dann genau einfügen?

Vielen Dank
webmaster FF
webmasterFF
Weiteres Problem mit dem Modul.

Ich habe auf meiner Seite das DoiMenu als Navigation eingebaut. Komischerweise musste ich feststellen: Sobald ich das Modul "GoogleMap" aktiviere, fällt das DoiMenu aus, d.h. es wir nicht mehr angezeigt im Frontend und Online.
Kann es sein dass das JS mit dem des DoiMenu irgendwie nicht zurecht kommt oder umgekehrt?

Hat dazu jemand ne Idee??

Gruß
webmasterFF
webmasterFF
Pawel: Hast du dazu eine Idee?
pawel
Ohne es zu sehen, kann ich nur raten. Eigentlich beinflussen sich die beiden JS nicht. Es kann nur sein, das falsch in den <head> eingefügt wird.
Nutze für den Übergang JS direkt. Ich nehme in der Regel folgende kleine Javascriptdatei (z.b. als maps.js nach dem Googlekeyaufruf)

QUELLTEXT
//Googlemap

function load() {
var WINDOW_HTML = "<p class='infowindow'><strong>Und hier finden Sie uns:<br /></strong> Fahren Sie mit der Strassenbahn.<p>";
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(Lat,Lon), 15);
    map.addControl(new GSmallMapControl());
         var marker = new GMarker(new GLatLng(Lat,Lon));
        map.addOverlay(marker);
        GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(WINDOW_HTML);
      });
      marker.openInfoWindowHtml(WINDOW_HTML);
    }
    }

// Aufruf der load-Funktion beim Laden
window.onload = load;
document.write('<link rel="stylesheet" href="cms/css/maps.css" type="text/css" />');


Ersetze Lat und Lon einfach durch deine Koordinaten, die Du hiermit einfach herausfindest. In das Layout gehört dann noch
QUELLTEXT
<div id="map">Bei aktiviertem Javascript ist hier eine Karte zu sehen</div>
.

Dann kannst Du Dir das Modul sparen. Hier ein Livebeispiel.
gunwalt
ZITAT(pawel @ Sat. 18. October 2008, 10:23) *
Das heißt, der reine Javascript funktioniert, aber der php wrapper nicht. Das kann ich unter php5 so reproduzieren. Das scheint auch phoogle zu betreffen, womit ich zwischendurch experimentiert habe. Sehr seltsam.

Der Anhaltspunkt scheint php5 zu sein.

Ich packe gerade noch einmal die Maps Geschichte mit php5 an. Es funktioniert nach wie vor nicht, bzw. Php-Änderungen von 5.28 nach 4.48 zaubern die Karte hervor. Sonst wird am System nichts verändert. Es werden offenbar keine Koordinaten ausgegeben.

PHP4.48
QUELLTEXT
var points = [];
var markers = [];
var counter = 0;
var to_htmls = [];
var from_htmls = [];
var map = null;
function onLoad() {
if (GBrowserIsCompatible()) {
var mapObj = document.getElementById("map");
if (mapObj != "undefined" && mapObj != null) {
map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(51.244456, 6.818511), 14, G_NORMAL_MAP);
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GScaleControl());
var point = new GLatLng(51.2444558,6.8185105);
var marker = createMarker(point,"Ihr Weg zu uns","<div id=\"gmapmarker\">Der Weg zu uns<\/div>", 0,"");
map.addOverlay(marker);
}


PHP5.28
QUELLTEXT
var points = [];
var markers = [];
var counter = 0;
var to_htmls = [];
var from_htmls = [];
var map = null;
function onLoad() {
if (GBrowserIsCompatible()) {
var mapObj = document.getElementById("map");
if (mapObj != "undefined" && mapObj != null) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GScaleControl());
var point = new GLatLng(,);
var marker = createMarker(point,"Ihr Weg zu uns","<div id=\"gmapmarker\">Der Weg zu uns<\/div>", 0,"");
map.addOverlay(marker);
pawel
Habe ich jetzt erst gesehen.
Ich denke das es nicht an der PHP-Version liegt, sondern daran, on die url_wrapper aktiviert sind. Unter PHP 4 war das meistens der Fall unter 5 standardmäßig meistens nicht. Dann funktioniert file_get_content nicht und muss mit cURL umgangen werden.
mvsxyz
Kleiner Bugfix für das file_get_contents() Problem findet ihr in der Version 1.3.1 als Beta.
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.