Ich beschäftige mich seit 2 Tagen mit Google Maps (API) und konnte trotz fehlender Javascript Kenntnisse (Google sei Dank!) erste Erfolge erzielen. Nach stundenlangem Rumprobieren habe ich es endlich hinbekommen, mittels etwas Javascript eine XML Datei auszulesen und die Daten auf der Karte auszugeben. Diese Daten (Orte) liegen aber leider nur als Koordinaten vor. Hier mal der Code des Scripts und der XML Datei:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>GMAPS XML TEST</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=MEINAPIKEY"
type="text/javascript"></script>
<script type="text/javascript">
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(51.165691,10.451526), 5);
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
// EIGENE MARKER
var baseIcon = new GIcon();
baseIcon.image = "GoogleMapsMarker.gif";
baseIcon.iconSize = new GSize(64, 64);
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.shadowSize = new GSize(70, 64);
baseIcon.iconAnchor = new GPoint(30, 50);
baseIcon.infoWindowAnchor = new GPoint(30, 30);
// DATEN AUS XML LADEN
GDownloadUrl("data.xml", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
map.addOverlay(new GMarker(latlng, {icon:baseIcon}));
}
});
function createListener (marker, text) {
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(text);
map.setCenter(marker.getPoint(), 14);
});
}
}
}
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="map_canvas" style="width: 500px; height: 300px"></div>
</body>
</html>
Alles anzeigen
<?xml version="1.0" encoding="utf-8" ?>
<markers>
<marker lat="51.222346" lng="6.779281"/>
<marker lat="50.947456" lng="6.959176"/>
<marker lat="48.136984" lng="11.575938"/>
<marker lat="49.136984" lng="11.575938"/>
<marker lat="52.5163" lng="13.3771"/>
</markers>
Mein Problem: Wie bekomme ich das nun hin, dass wenn in der XML Datei nur Adressen (Name, Straße, PLZ, Ort) eingetragen sind, diese mittels JS in Koordinaten umgewandelt werden und dann auf der Karte erscheinen? So wie ich das verstanden habe, nennt sich das Prozedere "Geocoding"?! Google spuckt dazu ne ganze Menge aus, aus dem ich aber leider nicht schlau werde.
Hat sich hier schonmal einer damit befasst und könnte mir eventuell unter die Arme greifen?