Vraag & Antwoord

Webprogrammeren & scripting

Google Maps

3 antwoorden
  • Ik ben bezig met Google Maps, ik wil via een Geocode functie een marker aanmaken en de naam toevoegen aan de sidebar. De marker wordt aangemaakt, het desbetreffende info-venster doet het ook, alleen er wordt niets aan de sidebar toegevoegd. Ik snap er niets van. Hier de [code:1:aa8afb42eb] <!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> <title>Google Maps</title> <script src="http://maps.google.com/maps?file=api&v=2&key=**********" type="text/javascript"></script> <style> a.mainlevel:link, a.mainlevel:visited { border:1px solid #cccccc; display: block; text-align: center ; text-decoration: none; color: #FC6401; float: left; font-size: 11px; font-weight: bold; padding: 4px; color: #ff6600;} a.mainlevel:hover { background-color:#cccccc ; color: #ff6600; } </style> </head> <body onunload="GUnload()"> <div id="map" style="width: 550px; height: 450px"></div> <div id="side_bar"></div> <noscript><b>JavaScript must be enabled in order for you to use Google Maps.</b> However, it seems JavaScript is either disabled or not supported by your browser. To view Google Maps, enable JavaScript by changing your browser options, and then try again. </noscript> <script type="text/javascript"> //<![CDATA[ if (GBrowserIsCompatible()) { // this variable will collect the html which will eventually be placed in the side_bar var side_bar_html = ""; // arrays to hold copies of the markers and html used by the side_bar // because the function closure trick doesnt work there var gmarkers = []; var i = 0; // This function picks up the click and opens the corresponding info window function myclick(i) { GEvent.trigger(gmarkers[i], "click"); } // create the map var map = new GMap2(document.getElementById("map")); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng( 43.907787,-79.359741), 8); var geocoder = new GClientGeocoder(); function showAddress(address,name,html) { geocoder.getLatLng( address, function(point) { if (!point) { alert(address + " not found"); } else { var marker = new GMarker(point); GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); }); // save the info we need to use later for the side_bar gmarkers[i] = marker; // add a line to the side_bar html side_bar_html += '<a href="javascript:myclick(' + i + ')" class="mainlevel">' + name + '</a> '; i++; map.addOverlay(marker); } } ); } // add the points showAddress('New York','Stad','Mooie stad!'); // put the assembled side_bar_html contents into the side_bar div document.getElementById("side_bar").innerHTML = side_bar_html; } else { alert("Sorry, the Google Maps API is not compatible with this browser"); } // This Javascript is based on code provided by the // Blackpool Community Church Javascript Team // http://www.commchurch.freeserve.co.uk/ // http://www.econym.demon.co.uk/googlemaps/ //]]> </script> </body> </html> [/code:1:aa8afb42eb] Alvast bedankt, Wesley
  • Niemand?
  • Als ik zo even snel door je code kijk dan zie ik dat je bij initialisatie, wanneer de browser compatible is bevonden (GBrowserIsCompatible), de sidebar leeg wordt gemaakt: side_bar_html = "" en daarna document.getElementById("side_bar").innerHTML = side_bar_html. Maar ik zie nergens een punt waar je hem vult. Ik zie wel een regeltje staan in showAddress, maar die vult de sidebar niet. Wellicht bedoel je i.p.v. dit: [code:1:7a6e823823]// add a line to the side_bar html side_bar_html += '<a href="javascript:myclick(' + i + ')" class="mainlevel">' + name + '</a> ';[/code:1:7a6e823823] Maar dan iets als [code:1:7a6e823823]// add a line to the side_bar html side_bar_html = '<a href="javascript:myclick(' + i + ')" class="mainlevel">' + name + '</a> '; document.getElementById("side_bar").innerHTML += side_bar_html;[/code:1:7a6e823823] Nu zul je er denk ik wel achterkomen dat de sidebar nergens opnieuw wordt geleegd en alleen maar dingen worden toegevoegd. Dus er zal nog ergens iets moeten staan waar je dit doet. Dat laat ik even aan jou over :)

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.