var mapIcons = {}; var curpos = ''; var curzoom = ''; var no_update = false; var marker = ""; var map; function loadMap(lat,lng,zoom) { mapCenter = new GLatLng(lat, lng); map.setCenter(mapCenter, zoom); } function initialize() { if(GBrowserIsCompatible()) { map = new GMap2(document.getElementById('map')); mapLevel = 12; map.setUIToDefault(); map.disableScrollWheelZoom(); G_NORMAL_MAP.getMinimumResolution = function () { return 12 }; G_NORMAL_MAP.getMaximumResolution = function () { return 17 }; G_SATELLITE_MAP.getMinimumResolution = function () { return 12 }; G_SATELLITE_MAP.getMaximumResolution = function () { return 17 }; G_PHYSICAL_MAP.getMinimumResolution = function () { return 12 }; G_PHYSICAL_MAP.getMaximumResolution = function () { return 17 }; G_HYBRID_MAP.getMinimumResolution = function () { return 12 }; G_HYBRID_MAP.getMaximumResolution = function () { return 17 }; GEvent.addListener(map, "moveend", function() {infowindow_checker(map.getCenter().lat(),map.getCenter().lng(),map.getZoom(),false)}); GEvent.addListener(map, "zoomend", function() {no_update = false;}); GEvent.addListener(map, "dragend", function() {infowindow_checker(map.getCenter().lat(),map.getCenter().lng(),map.getZoom(),true)}); mapLoadIcons(); var icon = new GIcon(G_DEFAULT_ICON); icon.image = "http://chart.apis.google.com/chart?cht=mm&chs=24x32&chco=FFFFFF,008CFF,000000&ext=.png"; loadMap(51.30827400, 3.77582900,12) loadMarkers(51.30827400, 3.77582900,12,false); } function infowindow_checker(lat,lng,zoom) { if (!no_update) loadMarkers(lat,lng,zoom,false); } function loadMarkers(lat,lng,zoom,redrawpoint) { if((curpos != lat+','+lng || curzoom != zoom) || redrawpoint) { curpos = lat+','+lng; curzoom = zoom; map.clearOverlays(); loadData(); } } function parseJson (doc) { var markers = []; var jsonData = eval("(" + doc + ")"); for (var i = 0; i < jsonData.markers.length; i++) { var marker = createMarker(new GLatLng(jsonData.markers[i].lat, jsonData.markers[i].lng),jsonData.markers[i].title,jsonData.markers[i].numof,jsonData.markers[i].markertype); map.addOverlay(marker); } } function loadData() { if(map.getZoom() == 7 || map.getZoom() == 8) { GDownloadUrl("/javascript/googlemaps/json/provincies.cfm?filter_field=&filter_value=&t=alle&rand="+Math.random(), function(data, responseCode) { parseJson(data);}); } else if(map.getZoom() == 9) { var area = 'max_lng='+map.getBounds().getNorthEast().lng()+'&max_lat='+map.getBounds().getNorthEast().lat()+'&min_lng='+map.getBounds().getSouthWest().lng()+'&min_lat='+map.getBounds().getSouthWest().lat(); GDownloadUrl("/javascript/googlemaps/json/gebieden.cfm?filter_field=&filter_value=&t=alle&" + area + "&rand="+Math.random(), function(data, responseCode) { parseJson(data);}); } else if(map.getZoom() == 10 || map.getZoom() == 11) { var area = 'max_lng='+map.getBounds().getNorthEast().lng()+'&max_lat='+map.getBounds().getNorthEast().lat()+'&min_lng='+map.getBounds().getSouthWest().lng()+'&min_lat='+map.getBounds().getSouthWest().lat(); GDownloadUrl("/javascript/googlemaps/json/steden.cfm?filter_field=&filter_value=&t=alle&" + area + "&rand="+Math.random(), function(data, responseCode) { parseJson(data);}); } else if(map.getZoom() > 11) { var area = 'max_lng='+map.getBounds().getNorthEast().lng()+'&max_lat='+map.getBounds().getNorthEast().lat()+'&min_lng='+map.getBounds().getSouthWest().lng()+'&min_lat='+map.getBounds().getSouthWest().lat(); //alert("/javascript/googlemaps/json/projecten.cfm?filter_field=&filter_value=&t=alle&zoom=" + map.getZoom() + "&" + area); GDownloadUrl("/javascript/googlemaps/json/projecten.cfm?filter_field=&filter_value=&t=alle&zoom=" + map.getZoom() + "&" + area + "&rand="+Math.random(), function(data, responseCode) { parseJson(data);}); } } function createMarker(latlng, content,count,markertype) { var isize = 30; var int_count = parseInt(count.replace(".", "")); if(map.getZoom() == 7 || map.getZoom() == 8) { if(parseInt(int_count) > 500) isize = 80; else if(parseInt(int_count) > 250) isize = 68; else if(parseInt(int_count) > 100) isize = 58; else if(parseInt(int_count) > 50) isize = 46; else if(parseInt(int_count) > 20) isize = 38; else isize = 30; var markerOpts = {}; markerOpts = { "icon": mapIcons[markertype][isize], "clickable": true, "labelText": "
"+count+"
", "labelOffset": new GSize(-(isize/2), -8) }; var newPoint = latlng; var marker = new LabeledMarker(newPoint, markerOpts); GEvent.addListener(marker, "mouseover", function() {marker.setImage(mapIcons[markertype][isize].hoverImage);}); GEvent.addListener(marker, "mouseout", function() {marker.setImage(mapIcons[markertype][isize].image);}); GEvent.addListener(marker, "click", function() { window.location.href = "/nieuwbouwprojecten-" + content.toLowerCase() + "/#kaart"; // loadMap(this.getLatLng().lat(),this.getLatLng().lng(),9); }); return marker; } else if(map.getZoom() == 9 || map.getZoom() == 10) { if(parseInt(int_count) > 50) isize = 58; else if(parseInt(int_count) > 25) isize = 46; else if(parseInt(int_count) > 10) isize = 38; else isize = 30; var markerOpts = {}; markerOpts = { "icon": mapIcons[markertype][isize], "clickable": true, "labelText": "
"+count+"
", "labelOffset": new GSize(-(isize/2), -8) }; var newPoint = latlng; var marker = new LabeledMarker(newPoint, markerOpts); GEvent.addListener(marker, "mouseover", function() {marker.setImage(mapIcons[markertype][isize].hoverImage);}); GEvent.addListener(marker, "mouseout", function() {marker.setImage(mapIcons[markertype][isize].image);}); if(map.getZoom() == 9) {GEvent.addListener(marker, "click", function() {loadMap(this.getLatLng().lat(),this.getLatLng().lng(),11);});} if(map.getZoom() == 10) {GEvent.addListener(marker, "click", function() {loadMap(this.getLatLng().lat(),this.getLatLng().lng(),11);});} return marker; } else if(map.getZoom() == 11) { if(parseInt(int_count) > 30) isize = 68; else if(parseInt(int_count) > 10) isize = 58; else if(parseInt(int_count) > 5) isize = 46; else isize = 38; var markerOpts = {}; markerOpts = { "icon": mapIcons[markertype][isize], "clickable": true, "labelText": "
"+count+"
", "labelOffset": new GSize(-(isize/2), -8) }; var newPoint = latlng; var marker = new LabeledMarker(newPoint, markerOpts); GEvent.addListener(marker, "mouseover", function() {marker.setImage(mapIcons[markertype][isize].hoverImage);}); GEvent.addListener(marker, "mouseout", function() {marker.setImage(mapIcons[markertype][isize].image);}); GEvent.addListener(marker, "click", function() { window.location.href = content; // loadMap(this.getLatLng().lat(),this.getLatLng().lng(),12); }); return marker; } else if(map.getZoom() > 11) { if(markertype == 'item') var marker = new GMarker(latlng, {icon: mapIcons["markers"][markertype]}); else if(markertype == 'multiple') var marker = new GMarker(latlng, {icon: mapIcons["markers"][markertype]}); else { var markerOpts = {}; markerOpts = { "icon": mapIcons["markers"]["multiple"], "clickable": true, "labelText": "
"+count+"
", "labelOffset": new GSize(-(isize/2)+3, -26) }; var newPoint = latlng; var marker = new LabeledMarker(newPoint, markerOpts); } if(count ==1 || map.getZoom() > 11) { GEvent.addListener(marker, "click", function() { var x = parseInt(map.fromLatLngToContainerPixel(latlng).toString().replace( new RegExp( "[(]|(,.*)", "g" ), "" )); var y = parseInt(map.fromLatLngToContainerPixel(latlng).toString().replace( new RegExp( ".*?,|[)]", "g" ), "" )); if(x>550){ x = 550-((x-550)/4);y=y-50}; if(y>450){ y = 450}; var height = parseInt(map.getSize().toString().replace( new RegExp( ".*?,|[)]", "g" ), "" )); Tip(content,FIX, ['map',x+20,y-height-60-(count*36-36)],FOLLOWMOUSE,false,BGCOLOR,'#FFFFFF',BORDERCOLOR,'silver');}); } else { if(map.getZoom() > 10) { var temp_zoomLevel = map.getZoom()+2; if(temp_zoomLevel > 17) temp_zoomLevel = 17; GEvent.addListener(marker, "click", function() { loadMap(this.getLatLng().lat(),this.getLatLng().lng(),temp_zoomLevel); }); } } GEvent.addListener(marker, "infowindowopen", function() { no_update = true; }); GEvent.addListener(marker, "infowindowclose", function() { no_update = false; }); return marker; } } function mapLoadIcons() { mapIcons["circle"] = {}; radSizes = [30,38,46,58,68,80,96]; for (n = 0; n < radSizes.length; n++) { radius = radSizes[ n ]; mapIcons["circle"][ radius ] = new GIcon(); mapIcons["circle"][ radius ].image = '/javascript/googlemaps/images/markers/clusters/'+radius+'.png'; mapIcons["circle"][ radius ].hoverImage = '/javascript/googlemaps/images/markers/clusters/'+radius+'a.png'; mapIcons["circle"][ radius ].iconAnchor = new GPoint(radius / 2, radius / 2); mapIcons["circle"][ radius ].iconSize = new GSize(radius, radius); } mapIcons["markers"] = {}; mapIcons["markers"]["item"] = new GIcon(); mapIcons["markers"]["item"].image = '/javascript/googlemaps/images/markers/project/single.png'; mapIcons["markers"]["item"].iconSize = new GSize(25, 31); mapIcons["markers"]["item"].iconAnchor = new GPoint(13, 31); mapIcons["markers"]["item"].infoWindowAnchor = new GPoint(13, 12); mapIcons["markers"]["item"].shadow = '/javascript/googlemaps/images/markers/project/project-shadow.png'; mapIcons["markers"]["item"].shadowSize = new GSize(41, 31); mapIcons["markers"]["multiple"] = new GIcon(); mapIcons["markers"]["multiple"].image = '/javascript/googlemaps/images/markers/project/multiple.png'; mapIcons["markers"]["multiple"].iconSize = new GSize(25, 31); mapIcons["markers"]["multiple"].iconAnchor = new GPoint(13, 31); mapIcons["markers"]["multiple"].infoWindowAnchor = new GPoint(13, 12); mapIcons["markers"]["multiple"].shadow = '/javascript/googlemaps/images/markers/project/project-shadow.png'; mapIcons["markers"]["multiple"].shadowSize = new GSize(41, 31); mapIcons["markers"]["cluster"] = new GIcon(); mapIcons["markers"]["cluster"].image = '/javascript/googlemaps/images/markers/multiple/multiple.png'; mapIcons["markers"]["cluster"].iconSize = new GSize(25, 31); mapIcons["markers"]["cluster"].iconAnchor = new GPoint(13, 31); mapIcons["markers"]["cluster"].infoWindowAnchor = new GPoint(13, 12); mapIcons["markers"]["cluster"].shadow = '/javascript/googlemaps/images/markers/multiple/multiple-shadow.png'; mapIcons["markers"]["cluster"].shadowSize = new GSize(41, 31); } }