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
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: