User Adresse eingeben -> Anzeigen in GoogleMaps (Gmaps und Location richtig verwenden!)
am 13.08.2010 - 17:28 Uhr in
Hallo zusammen,
ich probiere und suche nun schon den halben Tag herum um folgendes "Problem" zu lösen:
Der Benutzer gibt in seinem Content Profile seine Strasse, PLZ, und Ort ein.
Auf seinem Profil kann man den Tab "Karte" anklicken und schon erscheint eine Google Map welche die eingegebene Adresse anzeigt.
Hört sich eigentlich sehr einfach an, zumal man schnell die Module "Gmaps" und "Location" findet.
Soviel zur Theorie. Die Praxis sieht (bei mir) leider ganz anders aus :(
Ähnliche, verwirrende Module
Neben den Modulen "Gmaps" und "Locations" finde ich auch : "Location CCK", "Geonames". Wofür benötige ich diese? "Location" ist doch schon in jedem Inhaltstyp vorhanden! Was soll ich nun nehmen? Den Sinn von Geonames habe ich auch nicht verstanden, ich weiß nur das es von gmaps benötigt wird.
So viele Untermodule in Gmaps. Welche werden benötigt?
In Gmaps gibt es zahlreiche Untermodule die man aktivieren kann. Doch welche braucht man für obiges Problem überhaupt?
Postleitzahlen Deutschland
Die Postleitzahlen-Tabelle für Deutschland finde ich in dem Modul Locations. Aber wie installiere ich diese? Über copy&paste und dann über phpmyadmin?
Schnittstelle Location-Gmaps-Karte anzeigen
Und jetzt meine Hauptfrage an der ich mir seit einigen Stunden die Zähne ausbeiße bzw. mir die Finger wundsuche. Aber ich vermute ich bin nur zu blöd, so schwer kann es doch einfach nicht sein!
Wie kann ich nun in einem Template die Karte mit den im Profil eingegebene PLZ anzeigen lassen? Komischerweise habe ich nichts dazu gefunden.
Auch dieses Videotutorial hat mir leider nicht weiterhelfen können.
Ich würde mich sehr sehr freuen wenn jemand sich die Zeit nehmen könnte und eine kleine Anleitung zum Einsatz von Google Maps schreiben würde, welche obige Fragen beantwortet. Damit wäre mir- und ich denke auch einigen Usern in der Zukunft sehr geholfen.
Vielen Dank, gruß
André
- Anmelden oder Registrieren um Kommentare zu schreiben
Module: Du brauchst Gmap +
am 13.08.2010 - 18:20 Uhr
Module:
Du brauchst Gmap + Location.
Postleitzahlen:
Ja - Die deutschen Geodaten musst Du über PHPMyAdmin einfügen in die Tabelle "zipcodes" - das geht über "Importieren"!
Google Maps API Key:
Du brauchst einen "Google Maps API Key" - (Google Suche) - diese trägst Du unter admin/settings/gmap ein.
Danach rufst Du admin/settings/location auf - wichtig ist "Map-Links" + "Geocoding options" (Tabs oben) - dort wählst Du für "Germany" jeweils (Google Maps (Terms of Use)) aus.
Du hast einen Block - der heißt "Location map" - den lässt Du irgendwo anzeigen z.B. linke Seite - nun müsste die Adresse auf der Map angezeigt werden - falls nicht - Deine Ortsdaten aus dem Profil löschen - speichern - und nochmal neu eingeben - speichern - nun müsste spätestens der Block mit der richtigen Adresse angezeigt werden da die Adressdaten eventuell erst "umgewandelt" (das passiert automatisch beim Speichern) werden müssen (in Latitude/Longitude).
Diverse weitere Anpassungsoptionen siehe admin/settings/location und admin/settings/gmap !
Gruß
Hallo, tausend Dank für deine
am 14.08.2010 - 16:21 Uhr
Hallo,
tausend Dank für deine Hilfe. Das hört sich alles plausibel und gut an, kann es aber leider erst Morgen ausprobieren.
Falls ich nicht weiterkomme, meld ich mich hier nochmal.
Aber 1 Frage hätte ich noch:
Welche Module sollte man in gmaps/location alle aktivieren?
Danke nochmals,
vg André
Hallo, jetzt habe ich es fast
am 15.08.2010 - 18:09 Uhr
Hallo,
jetzt habe ich es fast hinbekommen. Mein großes Problem war, dass ich gmaps und nicht gmap benutzt habe. Das ist mir nun endlich aufgefallen.
Aber leider habe ich es noch nicht ganz zum laufen gebracht.
Mit folgenden Problem habe ich noch zu kämpfen:
Wie kann ich eine Karte des jeweiligen Users in seinem Profil einbinden?
Da ich das Profil theme (user-profile.tpl.php), würde ich die Karte direkt im template laden. Wie kann ich das bewerkstelligen?
Dazu habe ich diese Seite gefunden. Wenn ich diesen Code nehmen würde, bräuchte ich die Koordinaten. Ich habe jetzt gelesen, dass die automatisch angelegt werden (vgl. Thread). Aber bei mir funktioniert das nicht :(
Wenn die Frage geklärt ist, habe ich es endlich geschafft :) Würde mich sehr freuen wenn mir da jemand nochmal auf die Sprünge helfen kann.
DANKE,
gruß André
http://drupal.org/node/267568
am 15.08.2010 - 20:16 Uhr
http://drupal.org/node/267568 ist für Drupal 5 (siehe oben rechts) Du nutzt doch sicher die 6er-Version also wird das höchstwahrscheinlich nicht funktionieren. Warum legst Du Dir nicht einen View an und machst darüber die Ausgabe falls der Block "Location map" nicht funktioniert?
Wo gibst Du denn die Adressdaten ein? Direkt im User-Profil unter user/1/edit oder in einem Node (content/node123)?
Für die Koordinaten nutze ich Location + importierte PLZ-Liste - wie GMAP die Koordinaten bereitstellen kann, weiß ich nicht.
Nachtrag:
Unter settings/location gibt es den Reiter "Google Map benutzen, um Längen- und Breitengrade festzulegen." - wenn man den aktiviert, erfolgt die Angabe der Koordinaten über eine MAP in die der User reinzoomen kann - ich würde allerdings trotzdem "Location + importierte PLZ-Liste" nehmen da einige User damit sicher nicht klar kommen. Mit Location braucht er nur Stadt + PLZ anzugeben und nach dem Speichern ist alles fertig - das geht ruck zuck - ewig lang in eine Minimap reinzoomen und seinen Ort zu suchen ist für Viele sicher nicht so spannend.
Nachtrag: Ruf mal map/user
am 15.08.2010 - 20:23 Uhr
Nachtrag:
Ruf mal map/user und map/node auf. Sind auf einer der beiden Karten die kleinen Marker(Symbole) zu sehen? Für die Adresse der User?
Zitat: Warum legst Du Dir
am 16.08.2010 - 21:09 Uhr
Warum legst Du Dir nicht einen View an und machst darüber die Ausgabe falls der Block "Location map" nicht funktioniert?
Danke für den super Tipp. Das klappt super :)!! Ist das schön endlich eine funktionierende Karte zu sehen. DANKE!!!
Wo gibst Du denn die Adressdaten ein? Direkt im User-Profil unter user/1/edit oder in einem Node (content/node123)?
In einer Node. Also einem Content Profile Inhaltstyp. Wenn man das Modul "Location" installiert hat, kann man ja direkt über die Konfiguration des Inhaltstyps Stadt+PLZ abfragen (ohne extra Felder anzulegen).
Für die Koordinaten nutze ich Location + importierte PLZ-Liste - wie GMAP die Koordinaten bereitstellen kann, weiß ich nicht.
Komischerweise klappt das jetzt ohne die PLZs importiert zu haben. Wenn ich die View mit der Map aufrufe wird die richtige Staße angezeigt. Traumhaft. Nur ich hoffe ich hab nichts übersehen, denn die PLZs sind ja eigentlich nicht umsonst dabei.
Ruf mal map/user und map/node auf. Sind auf einer der beiden Karten die kleinen Marker(Symbole) zu sehen? Für die Adresse der User?
map/node --> sind alle Benutzer (Marker) zu sehen
map/user --> sehe ich nur die Karte
Soweit ich gelesen habe
am 22.09.2010 - 16:54 Uhr
Soweit ich gelesen habe braucht man die Geodaten nicht hochladen, wenn man das Modul Gmap verwendet. Bei mir läuft es zwar mit den Blocks allerdings möchte ich es genau wie AndréP innerhalb eines Tabs darstellen auf einem Node. Ich kenne mich mit Views nicht so sehr aus. Gibt es da eine Vorgehensweise die funktioniert? Am liebsten würde ich den Inhalt der Blockausgabe einfach in meinem node.tpl.php einbinden. Dort habe ich auch schon die Tabs reingepackt.
Die PLZ muss man nur
am 22.09.2010 - 17:03 Uhr
Die PLZ muss man nur importieren, wenn man eine Umkreissuche machen will.
Alos es gibt den Block
am 22.09.2010 - 17:14 Uhr
Alos es gibt den Block Usermap und Authormap. Da werden die Orte automatisch dargestellt. Die kannst du doch einfach neben, über oder unter dem Userprofil anzeigen lassen
Die PLZ in der Datenbank
am 22.09.2010 - 17:16 Uhr
Die PLZ in der Datenbank brauchst du nur für die Umkreissuche
caw schrieb Alos es gibt den
am 22.09.2010 - 18:02 Uhr
Alos es gibt den Block Usermap und Authormap. Da werden die Orte automatisch dargestellt. Die kannst du doch einfach neben, über oder unter dem Userprofil anzeigen lassen
Das habe ich auch schon bemerkt. Ich habe aber das Problem, dass es nicht geanu an den Stellen angezeigt wird an denen ich es gerne im Template haben möchte. Es wird wie du schon sagtes oben unten an der Seite angeezigt. Ich benötige es allerdings in anderer Größe als nicht nur 200px hoch sondern 400px und unterhalb der Tabs. Ich möchte auf den Tab Ort klicken und dort soll dann der Ort angezeigt werden.
Wäre echt toll wenn ein Position "Variable" geben würde und man dann den Code dafür einfach einfügt. Außerdem habe ich in Drupal keine Möglichkeit gefunden bei der man die Tabs richtig organisieren kann. Also bearbeiten, hinzufügen, löschen.
Aber das Modul Devel hat gezeigt, dass die Daten longitude und laptitude verfügbar sind. Also einbinden kann ich es nun per:
<?php
if ( ($location['latitude'] != 0) && ($location['longitude'] != 0) && ($teaser != 1) )
{
$homes=array('id' => 'outfittermap',
'zoom' => 8,
'width' => '300px',
'height' => '200px',
'type' => 'Map',
'latitude' => $location['latitude'],
'longitude'=> $location['longitude'],
'markers' =>
array( array('markername' => 'blue',
'latitude' => $location['latitude'],
'longitude' => $location['longitude']
))
);
$outfittermap = theme('gmap', array('#settings' => $homes));
print $outfittermap;
}
?>