Script gesucht, um ab einer Adresse

PH

Legendäres Mitglied
Hallo

Ich suche ein Script, das mit einer Geo-API kommuniziert, und mir Koordinaten zurückgibt wenn ich eine Adresse eingebe.

z.B. strasse=Paradeplatz nummer=1 PLZ=8001 Stadt=Zürich Land=Schweiz => 542600x245362 (Koords habe ich jetzt frei erfunden)

Kennt jemand sowas?
 
Hi,

die Google Maps API bietet für sowas einen GeoCoder an.
Alternativ könntest Du die OpenGeoDB verwenden, aber das wird dann etwas mehr Aufwand...



Gruß
Christian

Edit: Hier ein Beispiel für die Verwendung des Google GeoCoders (JavaScript)
CODE
if ( g_Geocoder )
{
g_Geocoder.getLatLng( address,
function(point)
{
if (!point)
document.getElementById ( "actionNode" ).innerHTML = '<input class="submit" type="button" value="» weiter" OnClick="VerifyData()"/>  ' + '<strong>Fehler: Adresse konnte nicht lokalisiert werden!</strong>';
else
{
document.getElementById( "lat" ).value = point.lat();
document.getElementById( "lng" ).value = point.lng();
}
} ) // local callback definition

}

 
Gibt es ein Server-seitiges Script, dass ich verwenden könnte (z.B. PHP)?

EDIT: jo, das ding mit Javascript hatte ich auch entdeckt - aber wie du sagst, ist dummy-dirty. Ich hätte da lieber etwas mit PHP, das auch mit meiner Datenabnk funktioniert, und keine CPU-time vom client braucht!
 
Genau Alain, der HTTP Request ist was ich brauche.

Jetzt braucht's nur noch ein passendes Script - muss es doch irgendwo geben?
 
Ich würde das nur mit der Kneifzange anfassen. Wenn ich die google-Nutzungsbedingungen dazu lese:

http://www.google.com/apis/maps/terms.html

QUOTE 1.1 Description of Service. The API consists of Javascript that allows You to display Google map images on your website, subject to the limitations and conditions described below. The API is limited to allowing You to display map images only, and does not provide You with the ability to access the underlying map data, any services provided by Google in connection with its maps service (such as local search or directions), or any other Google service.


Da ist nur von einem 'display map images' mit JavaScript-Zugriff die Rede. Bereits das Speichern der Daten in einer eigenen Datenbank ist außerhalb.

Ich weiß, daß das bsp. in Foren wie hier wiederholt gemacht wird, daß es entsprechende MODs dafür gibt und daß dies - aufgrund der relativ großen Verbreitung - auch google schon wissen dürfte. Ich vermute allerdings, daß es google akzeptiert, solange die Abfragen - wie in Foren - interaktiv per JavaScript sind.

Wenn allerdings jemand genauere oder andere/gegenteilige/präzisere Quellen dazu hat - nur her damit.
 
Jürgen

Ich denke, die AGB für die API sind veraltet und nicht auf den Geocoder ausgelegt.

Wenn man den Geocoder verwendet und auf der Webseite dann auch die Google Maps, ist man m.E. auf der sicheren Seite.
Die Speicherung der Koordinaten wird ja durch Google's HTTP-Request ja geradezu gefördert, und die sagen auch nicht, dass man das nicht darf.
Ausserdem dürften Koordinaten wohl "Public Domain" sein.

Die API ist beschränkt auf 50.000 Anfragen pro Key pro Tag, somit hat sich Google bereits selbst geschützt.

Ich hätte also keine Bedenken, wenn ich Google Maps auf meiner Seite einbaue, auch Daten vom Geocoder in der Datenbank abzulegen.
Vor allem vor diesem Hintergrund: QUOTE Developers are encouraged to build their own client-side caches.

Das Ablegen der Geocode-Ergebnisse ist ja eigentlich ein Cache.

Ich werde die Koordinaten dazu verwenden, in einer Query die Distanz zwischen zwei Punkten zu errechnen.
 
Eh, also der Schluß

QUOTE (PH @ Di 24.07.2007, 16:27)Vor allem vor diesem Hintergrund:
QUOTE Developers are encouraged to build their own client-side caches.

Das Ablegen der Geocode-Ergebnisse ist ja eigentlich ein Cache.


ist auf jeden Fall falsch. Das steht hier unter dem Stichwort 'Caching Geocodes', aber da handelt es sich um JavaScript, das auf einem Clientbrowser ausgeführt wird. Von da bleiben die Daten in der Sitzung dieses Nutzers - und werden noch nicht einmal zum Webserver transportiert. Das obige Zitat besagt genaugenommen, daß die API nur JavaScript-Zugriffe erlaubt. Damit ist eine serverseitige Speicherung - auch im Fall von Foren - eine Gratwanderung.

Die Technik per HttpRequest ist die Technik, das heißt nicht, daß die Technik serverseitig genutzt werden darf. Technisch ist das nichts anderes als ein 'maschinelles Auslesen' der google-Datenbank, die man damit ja auch (Datenbank mit Orts- und Straßennamen, Script setzt pro Tag 50.000 Aufrufe ab) auslesen könnte.

Ich vermute, daß es die 50.000 pro Tag verhindern, daß dies auf einer gut besuchten Seite (mit mehr als 50.000 Aufrufen pro Tag) eingebaut wird - weil es sich bei solchen Seiten um massiv kommerzielle Angebote handelt. Bei Foren und ähnlichem wird das wohl toleriert, weil einfach die Zugriffszahlen zu gering sind. Bei 1000 Nutzern, die ihre Geokoordinaten ermitteln, ist das eher Spielerei.

Und 'Public Domain' sind die Daten nicht - das ist ja kein allgemein verfügbares Wissen. Auch bei öffentlich verfügbaren Daten (wie Telefonbucheinträgen) ist es nicht gestattet, diese automatisiert auszulesen und in eine eigene Datenbank zu übernehmen.
 
QUOTE (jauer)Das obige Zitat besagt genaugenommen, daß die API nur JavaScript-Zugriffe erlaubt. Damit ist eine serverseitige Speicherung - auch im Fall von Foren - eine Gratwanderung.


Also auf der Seite
http://www.google.com/apis/maps/documentation/index.html
steht schon Mal folgendes:

QUOTE To access the Maps API geocoder directly using server-side scripting, ...

Das beweist, dass Google selbst diese Methode unterstützt, und das der AGB Passus, der sagt, dass man das nur mit Javascript darf, veraltet ist.


QUOTE weil es sich bei solchen Seiten um massiv kommerzielle Angebote handelt.

ist laut Google-AGB auch ok, solange der Endnutzer dieser Daten nichts dafür Zahlen muss, um diese Daten zu sehen.


QUOTE Und 'Public Domain' sind die Daten nicht - das ist ja kein allgemein verfügbares Wissen.

Doch, ich denke schon. Sonst hätten alle Navigationssysteme erhebliche Lizenz-Probleme. Ausserdem wurde das Koordinatensystem vor mehr als 100 Jahren erfunden, und die Koordinaten lassen sich auch schlecht patentieren, urheberrechtlich schützen oder als Marke eintragen.
Die Sender der Daten können ihre Daten unzugänglich machen, aber wenn man sie Mal hat, darf man diese auch verwenden, wie man will.


QUOTE Auch bei öffentlich verfügbaren Daten (wie Telefonbucheinträgen) ist es nicht gestattet, diese automatisiert auszulesen und in eine eigene Datenbank zu übernehmen.

Das mag in Deutschland stimmen, für die Schweiz verweise ich auf einen Bundesgerichtsentscheid:
4C.336/2004 /zga
hier nachzulesen:
http://www.bger.ch/index/juridiction/juris...urteile2000.htm
 
Dieser Satz

QUOTE (PH @ Di 24.07.2007, 18:09)Also auf der Seite
http://www.google.com/apis/maps/documentation/index.html
steht schon Mal folgendes:

QUOTE To access the Maps API geocoder directly using server-side scripting, ...

Das beweist, dass Google selbst diese Methode unterstützt, und das der AGB Passus, der sagt, dass man das nur mit Javascript darf, veraltet ist.


ist natürlich wunderbar. Damit könnte man auch bsp. zu tausend Adressdaten (also weit unter 50.000) die Geokoordinaten über ein Script ermitteln.



QUOTE (PH @ Di 24.07.2007, 18:09)Die Sender der Daten können ihre Daten unzugänglich machen, aber wenn man sie Mal hat, darf man diese auch verwenden, wie man will.


Ist das wirklich so oder bin ich da noch zu sorgenvoll?

Mir wäre es ja selbst am allerliebsten, wenn ich irgendwelche von google freigegebenen Beispiele hätte, bsp. in bezug auf die typische Verwendung in Foren: Nutzer wählen per Map-Klick ihren Standort, diese Info wird gespeichert und eine google-Map angezeigt.
 
QUOTE Damit könnte man auch bsp. zu tausend Adressdaten (also weit unter 50.000) die Geokoordinaten über ein Script ermitteln.


Das machen die ja in deren Beispielen genau so.
Wenn Du dann das Ergebnis im Zusammenspiel mit Google-Maps verwendest, wird das auch ok sein.


QUOTE Mir wäre es ja selbst am allerliebsten, wenn ich irgendwelche von google freigegebenen Beispiele hätte, bsp. in bezug auf die typische Verwendung in Foren: Nutzer wählen per Map-Klick ihren Standort, diese Info wird gespeichert und eine google-Map angezeigt.


Solange Du dann Google-Maps verwendest, würde ich wetten, dass die nichts degegen einzuwenden haben.
Das ist doch genau das Ziel des ganzen! Google-Maps zu pushen!
 
QUOTE (PH @ Di 24.07.2007, 19:27)Wenn Du dann das Ergebnis im Zusammenspiel mit Google-Maps verwendest, wird das auch ok sein.

Hehe, das Problem, das ich habe (oder nach diesem Thread wohl nicht mehr habe), ist ja, daß das Problem nur in Kombination mit google-Maps auftaucht.

Jemand gibt einen / seinen Ort bzw. eine Postleitzahl ein, da genügt mir die OpenGeoDb, um der Eingabe Geokoordinaten zuzuweisen.

Habe ich nun tausend, über ganz Deutschland verteilte Adressen, dann kann ich denen - ebenfalls per OpenGeoDb - Ortskoordinaten zuweisen, die mäßig scharf sind (Genauigkeit auf der Ebene von Postleitzahlen).

Wird jetzt das Suchergebnis (10 Kilometer im Umkreis der eingegebenen Postleitzahl) ohne google-Map angezeigt, dann ist das ok - zwar unscharf, aber es stimmt im wesentlichen.

Erst wenn ich die Daten per google-Maps anzeige, würde bsp. für eine kleine Stadt (mit einer Postleitzahl) die Position immer in der Ortsmitte sein - was angesichts von Straßenangaben für die Nutzer einer solchen Umkreissuche offenbar blöde wäre.

Sprich: Verwende ich google-Maps zur Anzeige, dann sollte ich auch den 1000 Adressen möglichst genaue Daten zuweisen, damit die Anzeige nicht inkonsistent ist. Also macht es auch Sinn, diese zu speichern. Zeige ich keine Karte an, dann genügt die OpenGeoDb.
 
Zurück
Oben