1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
1344
1344
EMPFEHLEN
-
Hallo!
Ich habe Probleme mit der Google Maps API: im Array enthaltene Elemente werden nicht bzw. falsch angezeigt. Dazu mal der ganze Code.
Ich packe ja alle Details in das Array "points" und verarbeite es zu einzelnen "Markern" beim Durchlaufen einer Schleife ... Wo liegt also der Fehler? Oder sehe ich den Wald vor Lauter Bäumen nicht?HTML-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&sensor=true_or_false&key=ABQIAAAAu672sNJh4Drnghll6-dikBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxTheakK1XEJ1Dhj7tegg_KKN0DGpg" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ function load() { if (GBrowserIsCompatible()) { var map = new GMap2( document.getElementById("map")); map.addControl(new GSmallMapControl()); map.setCenter( new GLatLng(52.052491, 9.84375), 4); var points = new Array(); points[0] = new Array(); points[0]["longitude"] = "52.052491"; points[0]["latitude"] = "9.84375"; points[0]["name"] = "Test"; points[0]["option"] = "Wirtschaftsinformatik"; points[1] = new Array(); points[1]["longitude"] = "50.052491"; points[1]["latitude"] = "7.84375"; points[1]["name"] = "Test2"; points[1]["option"] = "Musik"; for(o=0;o<points.length;o++) { var marker = createMarker(new GLatLng(points[o]["longitude"] + "," + points[o]["latitude"]), points[o]["name"], points[o]["option"]); map.addOverlay(marker); } } } function createMarker(point, text, title) { var marker = new GMarker(point,{title:title}); GEvent.addListener( marker, "click", function() { marker.openInfoWindowHtml(text); }); return marker; } //]]> </script> </head> <body onload="load()" onunload="GUnload()"> <div id="map" style="width:600px;height:600px"></div> </body> </html>
Gruß, walle
-
Das funktioniert:
Zuerst mal: mach die map global verfügbar, damit du auch von anderen Funktionen aus darauf zugreifen kannst ( var map; ganz oben, ausserhalb der load(), sonst ist sie nur dort verfügbar). Das mal als hinweis...Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
var map; function load(){ if (GBrowserIsCompatible()){ map = new GMap2(document.getElementById("map")); map.addControl(new GSmallMapControl()); map.setCenter(new GLatLng(52.052491, 9.84375), 4); var points = new Array(); points[0] = new Array(); points[0]["latitude"] = "52.052491"; points[0]["longitude"] = "9.84375"; points[0]["name"] = "Test"; points[0]["option"] = "Wirtschaftsinformatik"; points[1] = new Array(); points[1]["latitude"] = "50.052491"; points[1]["longitude"] = "7.84375"; points[1]["name"] = "Test2"; points[1]["option"] = "Musik"; for(var o=0; o<points.length; o++){ var marker = addMarker(points[o]); map.addOverlay(marker); } } } function addMarker(arr) { var marker = new GMarker(new GLatLng(arr['latitude'], arr['longitude']),{title:arr['title']}); GEvent.addListener( marker, "click", function(){ marker.openInfoWindowHtml(arr['option']); }); return marker; }
Ich denke du hast latidude und longitude verwechselt, habs ausgetauscht..
Dann übergib das ganze Array an die Funktion und erstelle den Marker und GLatLng in der funktion. das hat mit scopes und referenzen in javascript zu tun, die ich selbst nicht wirklich durchschaue. aber man kann sich daran gewöhnen...
Warum erstellst du den marker in einer funktion, gibst ihn zurück und fügst ihn dann erst hinzu? so wärs effizienter:
Code :1 2 3 4 5 6 7
function addMarker(arr) { var marker = new GMarker(new GLatLng(arr['latitude'], arr['longitude']),{title:arr['title']}); GEvent.addListener( marker, "click", function(){ marker.openInfoWindowHtml(arr['option']); }); map.addOverlay(marker); }Geändert von huzmaos (10.09.09 um 00:19 Uhr)
-
Cool, danke dir!!
Hat mir auf jeden Fall einiges klarer gemacht!
Ähnliche Themen
-
Google Maps "ReverseGeocoding"-Bsp. auf mehrere Maps anwenden
Von jbender im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 30.03.10, 21:06 -
Google Maps api
Von Aurora-One im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 01.02.10, 21:15 -
Google Maps + Thickbox
Von dwex im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 04.07.09, 16:50 -
Google Maps
Von weissi im Forum PHPAntworten: 12Letzter Beitrag: 03.02.09, 08:07 -
Wanderkarte a la Google Maps
Von Ossi im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 08.03.07, 01:33





Zitieren
Login





