Google maps geeft niet alle markers weer op de kaart het max is 10

Status
Niet open voor verdere reacties.

kkg2112

Nieuwe gebruiker
Lid geworden
4 aug 2011
Berichten
2
betste gebruikers,

Ik gebruik het maps.js script van Whelp.nl, alles werkt alleen krijk ik niet meer als 10 markers op mijn site http://gkreuk.knsbeheer.nl, heb overal naar een oplossing gezocht kan deze niet vinden, het probleem zit in het ophalen van de data uit het .XML bestand, er zal ergens een vertraging in aangebracht moeten worden d.m.v. een "setTimeout();" of setInterval() aleen weet ik niet waar ik deze moet plaatsen hier onder het script maps.js
[js]
//load Google Map
var address;
var geocoder;
var gmarkers = [];
var html;
var htmls =[];
var i = 0;
var icon;
var label;
var map;
var marker;
var markers;
var side_bar_html = "";
var xml;

function load() {
if (GBrowserIsCompatible()) {

var map = new GMap2(document.getElementById("map"));
var geocoder = new GClientGeocoder();
//geocoder.setBaseCountryCode("nl");

//add controls
map.addControl(new GMapTypeControl());
map.addControl(new GOverviewMapControl(new GSize(100,100)));

//create randomnumber to prevent caching and retrieve xml file

GDownloadUrl("xml/data.xml", function(data, responseCode) {
var xml = GXml.parse(data);

//store markers in markers array
var markers = xml.documentElement.getElementsByTagName("marker");

// create marker icon
var icon = new GIcon();
icon.image = "images/knsbeheer.png";
icon.iconSize = new GSize(24, 23);
icon.iconAnchor = new GPoint(0, 20);
icon.infoWindowAnchor = new GPoint(5, 1);

//loop over the markers array
for (var i = 0; i < markers.length; i++) {
var address = markers.getAttribute("address");
var html = GXml.value(markers.getElementsByTagName("infowindow")[0]);
var label = markers.getAttribute("label");
showAddress(map,geocoder,address,html,label,icon);
} //close for loop
}); //close GDownloadUrl
} //close GBrowserIsCompatible
} //close load

//Create marker and set up event window
function createMarker(point,html,label,icon){
var marker = new GMarker(point,icon);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);
});
// save the info we need to use later for the side_bar
gmarkers = marker;
htmls = html;
// add a line to the side_bar html
side_bar_html += '<a href="javascript:myclick(' + i + ')">' + label + '</a><br>';
document.getElementById("side_bar").innerHTML = side_bar_html;
i++;
return marker;
}

//showAddress
function showAddress(map,geocoder,address,html,label,icon) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " niet gevonden");
} else {
map.setCenter(point, 5);
var marker = createMarker(point,html+'<br/><br/>'+address,label,icon);
map.addOverlay(marker);
map.addControl(new GMapTypeControl());
}
}
);
}

// This function picks up the click and opens the corresponding info window
function myclick(i) {
GEvent.trigger(gmarkers, "click");
}
[/js]
Iemand een sugestie, alvast bedankt voor de moeite
 
Laatst bewerkt door een moderator:
Nu ben ik geen java kenner maar als het een timing issue betreft dan zou je de vertraging in onderstaande loop moeten zetten
hierin plaatst hij namelijk een marker

Code:
//loop over the markers array
 for (var i = 0; i < markers.length; i++) {
 var address = markers[i].getAttribute("address");
 var html = GXml.value(markers[i].getElementsByTagName("infowindow")[0]);
 var label = markers[i].getAttribute("label");
 showAddress(map,geocoder,address,html,label,icon);
 } //close for loop

en zelf zou ik hem dan na de showAdress aanroep zetten. Wacht hij na elke keer nadat hij een marker neer zet.

p.s. Als ik de pagina ververs verschilt het aantal. niet max 10 maar gewoon tussen de 10 en het totaal aantal (14).
 
Laatst bewerkt:
Elasar,

Heb geprobeerd om hier var timeOut = setTimeout(),500); in tevoegen maar dan krijg ik een lege site

//loop over the markers array
for (var i = 0; i < markers.length; i++) {
var address = markers.getAttribute("address");
var html = GXml.value(markers.getElementsByTagName("infowindow")[0]);
var label = markers.getAttribute("label");
showAddress(map,geocoder,address,html,label,icon);
var timeOut = setTimeout(),500); } //close for loop
 
Ik heb hetzelfde probleem, boven de 10 adressen krijg ik meldingen dat het adres niet bekend is. Heb jij het werkend gekregen=

Gr. Aldo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan