Hallo und Danke
Erstmal Tschuldige fürs unleserliche Einfügen des Codes!
Nun zum Inhalt:
Ich kapier das ja selber nicht so ganz... habs solange hin und her kopiert bis es ging. Okay ich erkläre es mal:
Diese Codeauszug ist aus der Function load der, soweit ich das verstanden habe, beim laden der Seite aufgerufen wird.
Das x in der function nicht existiert wusste ich nicht, klingt aber einleuchtend. Mein Problem ist: ich verstehe selber nicht so genau was die function(point) macht. Ich weiss nur das nachher in der Variable [oder function??] point nachher Koordinaten drin stehen. Spich: getLatLng übergebe ich eine Adresse, und diese Function errechnet mit die GPS-Koordinaten, die nachher in Point stehen. Ich habe es leider nicht geschafft diese Koordinaten nach der Funktion noch irgendwo greifbar zu machen.
Deshalb habe ich das setzen des Pnktes (map.addOverlay(createMarker(point, x, adresse,imageURL));) innerhalb diese Function gemacht.
DU sagst x existiert nicht... aber wieso nimmt er dann von imageURL,adresse und x immer den höchsten wert, als sei die Schleife fertig duchlaufen??
Das auskommentierte hat funktioniert ja. Aber bei diesem muss ich die fertige koordinaten übergeben, an die ich ja, wie ich oben versucht habe zu beschreiben, nachher nicht mehr dran komme.
LG
Michael
Hier nochmal das GANZE Script incl. HTML. Ich hab versucht es möglichst leserlich zu formatieren...
[CODE]
<!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">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA605BgTil4DmxL2u_1r98LBRmjsAhTEwM-0DrLbvZ_nDfDNWL6RQwmPVSpD6U3cUNJqUxN4HTyfWiSQ"
type="text/javascript"></script>
<script type="text/javascript">
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
var geocoder = new GClientGeocoder();
var baseIcon = new GIcon();
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.iconSize = new GSize(6, 7);
baseIcon.shadowSize = new GSize(6, 7);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);
function createMarker(point, index,TTtext,iconURL) {
// Create a lettered icon for this point using our icon class
var letter = String.fromCharCode("A".charCodeAt(0) + index);
var letteredIcon = new GIcon(baseIcon);
letteredIcon.image = iconURL;
// Set up our GMarkerOptions object
markerOptions = { icon:letteredIcon };
var marker = new GMarker(point, markerOptions);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(TTtext);
});
return marker;
}
map.setCenter(new GLatLng(37.4419, -122.1419), 8);
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
GDownloadUrl("datax.xml", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var x = 0; x < markers.length; x++) {
var latlng = new GLatLng(parseFloat(markers[x].getAttribute("lat")), parseFloat(markers[x].getAttribute("lng")));
var tooltext = markers[x].getAttribute("tooltext");
var imageURL =markers[x].getAttribute("image");
var adresse =markers[x].getAttribute("adresse");
geocoder.getLatLng(adresse,
function(point) {
if (!point) {
alert(address + " not found");
} else {
map.setCenter(point, 7);
map.addOverlay(createMarker(point, x, adresse,imageURL));
}
});
}
});
}}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 1200px; height: 500px"></div>
</body>
</html>
[/CODE]