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(52.76985100, 6.23680100,12)
loadMarkers(52.76985100, 6.23680100,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);
}
}