Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

google maps...

E

engel

Guest
moin,

ne Frage zu nem kleinen Problem:
ich möchte auf einer Seite, die User selbst anlegen können, die entsprechenden Locations mit google maps anzeigen lassen.
Sprich: im Backend wird ne Seite mit Adresse usw. angelegt, und dadurch soll die entsprechende Karte generiert werden...

Wäre nett, wenn jemand weiterhelfen könnte ne Idee hat... :flowers:

grüsse,
engel
 
Bitte in die Thematik Google Maps API einlesen, das ist sehr einfach zu bewerkstelligen.
Bitte jedoch unbedingt die rechtlichen Bedingungen beachten!
Ansonsten wird es schnell teuer.

Grüße
 
Da gibt es verschiedene Möglichkeiten:

a) Der Benutzer wählt im Backend anhand Google Maps seinen Ort aus und die Geodaten werden erzeugt (per Klick auf die Karte).

b) Der Benutzer kennt oder ermittelt seine Geodaten (z.B. mit der "normalen" Seite von Google Maps) und trägt sie dann zusammen mit der Anschrift im Backend ein.

c) Du besorgst Dir Geodaten von allen Orten, die in Frage kommen und diese werden automatisch anhand der Anschrift dem Benutzer zugeordnet.

Methode c hat aber in Abhängigkeit von der Zielgruppe entscheidende Nachteile. Wenn nur Deutschland Zielgebiet ist und die Postleitzahlen (eventuell Telefonvorwahl, ist aber ungenauer) bei den Adressen vorliegen ist das machbar. Weltweit oder durch Vergleich der Ortsnamen kannst Du die Methode vergessen.

In welche Richtung soll es gehen?
 
es bewegt sich hauptsächlich im Raum .de ... evtl. noch .ch/.at
von den jeweiligen Locations wird die komplette Anschrift, also auch die PLZ angegeben...
Das Ganze darf nich zu kompliziert werden, da ich es dort teils mit "sehr einfachen Usern" zu tun haben werde...

grüsse,
engel
 
Kostenlose Geodaten mit Postleitzahlen bekommst Du hier:
OpenGeoDb - freie Geokoordinaten-Datenbank nach Orten und PLZs - Front Page

Auf der Download-Seite wählst Du "Data" und dann die neuste Version. Die Datei muss in Deine Datenbank geladen werden.

Die Struktur der Datenbank ist zwar für Deine Anwendung etwas "oversized", aber Du kannst ja den überflüssigen Rest löschen. Aus der Datenbank brauchst Du:

Aus Tabelle "geodb_textdata" alle Zeilen, die im Feld "text_type" den Wert "500300000" enthalten. In Feld "text_val" stehen dazu die PLZ aus Deutschland. Mit dem Feld "loc_id" aus der Zeile zur PLZ gehst Du in Tabelle "geodb_coordinates" und suchst die Zeile mit der gleichen "loc_id". Diese enthält in den Feldern "lon" und "lat" die Koordinaten, die für Google Maps übernommen werden können.

Hier ein Beispiel zur Ermittelung der Geodaten zur PLZ. Als Zugangsdaten zur Datenbank (DBHost, DBUser, DBPass, DB) musst Du natürlich Deine Daten eingeben. Die PLZ ist im Beispiel als Konstante ($plz) eingetragen; Du holst Sie aus den Daten des Benutzers. Die Geodaten, die am Ende ausgegeben werden, wären Google Maps zu übergeben.
PHP:
<?php
$connect = @mysql_connect ("DBHost","DBUser","DBPass");
if(!$connect) echo "Keine Verbindung zur Datenbank.<br>";
mysql_select_db("DB",$connect);


echo "<html>\n<head>\n<title>PLZ->Geodaten</title>\n</head>\n<body>\n";
$plz='50668';                 // In $plz wird die Postleitzahl übergeben
echo "PLZ:".$plz."<br />\n";
$qry=mysql_query("SELECT geodb_coordinates.lon AS longitude,geodb_coordinates.lat AS latitude FROM geodb_coordinates,geodb_textdata WHERE (geodb_textdata.loc_id=geodb_coordinates.loc_id) AND (geodb_textdata.text_type='500300000') AND (geodb_textdata.text_val='".$plz."')");
if(mysql_num_rows($qry)>0) {
  $ptr=mysql_fetch_object($qry);
  $longitude=$ptr->longitude; // Ergebnis Longitude für Google Maps
  $latitude =$ptr->latitude;  // Ergebnis Latitude für Google Maps
  echo "Longitude:".$longitude."<br />\n";
  echo "Latitude:".$latitude."<br />\n";
} else {
  echo "Fehler: PLZ nicht gefunden.\n";
}
echo "</body>\n</html>\n";
?>

Sonst noch Fragen? ;)
 
@coder:

zwar etwas verspätet, aber: vielen lieben Dank :)
Dank deiner Hilfe konnten wir es jetzt so umsetzen, wie wir es wollten...

Thx :flowers:

grüsse,
engel
 
Zurück
Oben