Anzeige - [Hier werben]

> Geocoding mit Google Map API (Koordinaten zu Adressen)
Ayom Wissensdatenbank 654 Artikel
  Aktuelles Rating:    Last Edit by Stefu @ 11.08.2008 11:11:49
Edit Post

Geocoding mit Google Map API (Koordinaten zu Adressen)

Mit der Google MAP API kann man mittels geocoding zu Adressen Koordinaten suchen.

Hier eine Beispielimplementierung, deren Ziel es ist aus einer Liste von Adressen in XML, jeweils die dazugehörigen Koordinaten zu hohlt...
Achtung! Es handelt sich hierbei nicht direkt um lauffähigen Code, sondern eine Beispielimplementierung. Mit etwas Javascript Wissen sollte man in nützlicher Frist zu einem Ergebnis kommen. XML Wissen ist grundlegend auch notwendig. Wenn kein RCP bzw. XML-RCP Wissen vorhanden ist, kann der XML-String direkt in die HTML Datei geschrieben werden, und das Resultat direkt aus dem HTML herauskopiert und gespeichert werden.

(um den Quelltext zu kopieren, klicken sie auf edit)

Das file.xml
CODE
<?xml version="1.0" encoding="ISO-8859-1"?>
<adresses>
<adress city="Signal Hill" state="CA"></adress>
<adress city="Simi Valley" state="CA"></adress>
</adresses>


Das file.html inkl. Javascript sieht so aus:
CODE

<html>

<head>
<script src="http://maps.google.com/maps?file=api&v=2&key={IHR GOOGLE API KEY}"
type="text/javascript"></script>
</head>
<body onload='loadd()'>
<pre id='res'></pre>
<div id='err'></div>
</body>
<SCRIPT language='javascript'>
var i=0;
var Alenght = 0;
var adresses = null;


function loadd()
{
loaded = true;
load();
readXml2('file.xml');
}
/**
* load markers.xml via urls */
function readXml2(url)
{
var request = GXmlHttp.create();
request.open("GET", url, true);
request.onreadystatechange = function()
{
if (request.readyState == 4)
{
var xmlDoc = request.responseXML;

adresses = xmlDoc.getElementsByTagName("adress");


for (var i = 0; i < adresses.length; i++)
{
var city = adresses[i].getAttribute("city");
var state = adresses[i].getAttribute("state");
getCoords(city, state);
}
}
}
request.send(null);
return true;
}


function getCoords(city, state)
{
geocoder.getLatLng(city+", "+state+", us", function(point)
{
if (!point)
{
document.getElementById('err').innerHTML += city+", "+state + " nicht gefunden. <br/>";
}
else
{
document.getElementById('res').innerHTML += "<adress city=""+city+"" state=""+state+"" x=""+point.x+"" y=""+point.y+""></adress>n";
}
});
}

</script>
</html>

Achtung Die Vorliegende Version hat sich nur mit Orten in den USA befasst, beachten Sie die Zeile:
CODE
geocoder.getLatLng(city+", "+state+", us", function(point)


Die Implementieren ist allerdings leicht anpassbar. Bei 5000 Orten hat Firefox nach >30min CPU time die Resultate ausgespuckt. Allerdings ist die Genauigkeit noch nicht perfekt und Adressen mit Strassengenauigkeit (z.B. Theresienweg, münchen, deutschland) sind nicht in allen Ländern möglich.

UPDATE: Bei dem endgültigen Implementierung war es notwendig die Adressen in 200er Päckchen zu zerlegen um die API nicht böse zu machen. Die Resultate hab ich ebenfalls an einen RCP geschickt der sie Serverseitig wieder gespeichert hat.


Kommentare und Diskussion:

Zu diesem Artikel gibt es eine Diskussion mit 3 Antworten

Creative Commons License Diese Seite steht (wenn nicht anders angegeben)
unter der Creative Commons Lizenz (Mehr Infos)
Diesen Artikel editieren
Neuer Artikel eröffnen
Aktuelle Themen: Betreff, (Autor) Antw. Views Letzte Aktion
2 Domains auf die gleiche Seite?
(Benjamin)
2 73 Thu 20. Jun 03:45
von Benjamin
Blur Effekt bei Bild+
(Peter909)
7 234 Wed 19. Jun 00:41
von AlexP
Was tun gegen negativ Bewertung bei WebofTrust ?
(armidalaflamme)
8 178 Tue 18. Jun 14:26
von Peter Schneider
Rich Snippets richtig implementiert?
(ONeill)
4 159 Mon 10. Jun 11:41
von ONeill
Bilder von Produkten
(anzkost)
1 153 Mon 10. Jun 00:21
von hk
Alle Diskussionen im Webmaster Forum Allgemein Forum anzeigen
Top
 
 


Neu:  Kleinanzeige pinnen  |  Kleinanzeige auf Startseite  |  Werbetarife 2013  |  VIP Mitgliedschaft (30 Tage Geld-zurück-Garantie)



Anzeigen

Textlinks kaufen oder anbieten





[Hier werben]