My google map won't show every mark
-
heey everybody, i need to make a google map with the markers of our customers however i'm not good at programming still at school and not really getting much programming :( however my problem is that i'm able to get a few markers on the map however not all of them and it always is a different amount that will show. i'm working adress based not with lat and longtitude. here is my script <!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=ABQIAAAAjU0EJWnWPMv7oQ-jjS7dYxTPZYElJSBeBUeMSX5xXgq6lLjHthSAk20WnZ_iuuzhMt60X_ukms-AUg" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ //load Google Map function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); var geocoder = new GClientGeocoder(); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); //create randomnumber to prevent caching and retrieve xml file //data.xml vervangen door weg naar .xml bestand GDownloadUrl("data.xml", function(data, responseCode) { var xml = GXml.parse(data); //store markers in markers array var markers = xml.documentElement.getElementsByTagName("marker"); //while loop ipv for loop var i = 0 do { var address = markers[i].getAttribute("address"); var html = markers[i].getAttribute("html"); showAddress(map,geocoder,address,html); timer(); } while (i <= 18); function timer() { i++ setTimeout("timer()",1000); } //Create marker and set up event window function createMarker(point,html){ var marker = new GMarker(point); GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); }); return marker; } //showAddress function showAddress(map,geocoder,address,html) { geocoder.getLatLng( address, function(point) { if (!point) { alert(address + " niet gevonden"); } else { map.setCenter(point, 12); var marker = createMarker(point,html+'<br/><br/>'+address); map.addOverlay(marker); } } ); } } ); //close GDownloadUrl } //close GBrowserIsCompatible } //close load //]]> </script> </head> <body onload="load()" onunload="GUnload()"> <div id="map" style="width: 1000px; height: 700px"></div> </body> </html>
-
Answer:
This is likely due to the Google API throttling the number of queries you can make. If you ask it for locations of addresses too quickly then it will deny you after the first few requests. I see you've tried to get around this with your timer() function, but the way you've written it won't actually delay the while loop (Javascript will set the timer then happily continue to the next iteration of the loop). What you need to do is bring the calls to the API inside the code that gets called by setTimeout, like this: function placeMarker(i) { var address = markers[i].getAttribute("address"), html = markers[i].getAttribute("html"); showAddress(map,geocoder,address,html); if (++i <= 18) { setTimeout( function() { placeMarker(i); }, 1000 ); } } placeMarker(0);
ronnie at Stack Overflow Visit the source
Related Q & A:
- Why won't Tumblr video show on my Tumblr?Best solution by answers.yahoo.com
- How to show Google map on the modal bootstrap?Best solution by Stack Overflow
- Why won't my signature show up in reply emails?Best solution by webapps.stackexchange.com
- Why won't my questions show up?Best solution by Yahoo! Answers
- Help, computer is on but the screen won't show?Best solution by pcsupport.about.com
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.