var map = false; var ovMapControl = false; var geocoder = false; var mapMouseObject = false; var mapElabel = false; var docMouseX = 0; var docMouseY = 0; // Queues the URLs that needs to gel loaded var loadMouseOverlayUrls = new Array(); var mapIconTypes = new Array(); mapIconTypes[7]=new Object; mapIconTypes[7].width=12; mapIconTypes[7].height=16; mapIconTypes[7].refX=0; mapIconTypes[7].refY=15; mapIconTypes[48]=new Object; mapIconTypes[48].width=26; mapIconTypes[48].height=27; mapIconTypes[48].refX=13; mapIconTypes[48].refY=17; mapIconTypes[26]=new Object; mapIconTypes[26].width=43; mapIconTypes[26].height=44; mapIconTypes[26].refX=22; mapIconTypes[26].refY=28; mapIconTypes[44]=new Object; mapIconTypes[44].width=26; mapIconTypes[44].height=27; mapIconTypes[44].refX=13; mapIconTypes[44].refY=17; mapIconTypes[19]=new Object; mapIconTypes[19].width=20; mapIconTypes[19].height=20; mapIconTypes[19].refX=10; mapIconTypes[19].refY=16; mapIconTypes[23]=new Object; mapIconTypes[23].width=20; mapIconTypes[23].height=20; mapIconTypes[23].refX=10; mapIconTypes[23].refY=16; mapIconTypes[27]=new Object; mapIconTypes[27].width=20; mapIconTypes[27].height=20; mapIconTypes[27].refX=10; mapIconTypes[27].refY=16; mapIconTypes[13]=new Object; mapIconTypes[13].width=20; mapIconTypes[13].height=22; mapIconTypes[13].refX=0; mapIconTypes[13].refY=20; mapIconTypes[31]=new Object; mapIconTypes[31].width=20; mapIconTypes[31].height=20; mapIconTypes[31].refX=10; mapIconTypes[31].refY=16; mapIconTypes[35]=new Object; mapIconTypes[35].width=20; mapIconTypes[35].height=20; mapIconTypes[35].refX=10; mapIconTypes[35].refY=16; mapIconTypes[39]=new Object; mapIconTypes[39].width=20; mapIconTypes[39].height=20; mapIconTypes[39].refX=10; mapIconTypes[39].refY=16; mapIconTypes[43]=new Object; mapIconTypes[43].width=20; mapIconTypes[43].height=20; mapIconTypes[43].refX=10; mapIconTypes[43].refY=16; mapIconTypes[51]=new Object; mapIconTypes[51].width=20; mapIconTypes[51].height=20; mapIconTypes[51].refX=10; mapIconTypes[51].refY=16; mapIconTypes[38]=new Object; mapIconTypes[38].width=43; mapIconTypes[38].height=44; mapIconTypes[38].refX=22; mapIconTypes[38].refY=28; mapIconTypes[47]=new Object; mapIconTypes[47].width=20; mapIconTypes[47].height=20; mapIconTypes[47].refX=10; mapIconTypes[47].refY=16; mapIconTypes[4]=new Object; mapIconTypes[4].width=25; mapIconTypes[4].height=25; mapIconTypes[4].refX=0; mapIconTypes[4].refY=24; mapIconTypes[16]=new Object; mapIconTypes[16].width=23; mapIconTypes[16].height=12; mapIconTypes[16].refX=1; mapIconTypes[16].refY=11; mapIconTypes[11]=new Object; mapIconTypes[11].width=17; mapIconTypes[11].height=17; mapIconTypes[11].refX=3; mapIconTypes[11].refY=16; mapIconTypes[3]=new Object; mapIconTypes[3].width=12; mapIconTypes[3].height=16; mapIconTypes[3].refX=0; mapIconTypes[3].refY=15; mapIconTypes[30]=new Object; mapIconTypes[30].width=43; mapIconTypes[30].height=44; mapIconTypes[30].refX=22; mapIconTypes[30].refY=28; mapIconTypes[40]=new Object; mapIconTypes[40].width=26; mapIconTypes[40].height=27; mapIconTypes[40].refX=13; mapIconTypes[40].refY=17; mapIconTypes[24]=new Object; mapIconTypes[24].width=26; mapIconTypes[24].height=27; mapIconTypes[24].refX=13; mapIconTypes[24].refY=17; mapIconTypes[8]=new Object; mapIconTypes[8].width=25; mapIconTypes[8].height=25; mapIconTypes[8].refX=0; mapIconTypes[8].refY=24; mapIconTypes[1]=new Object; mapIconTypes[1].width=18; mapIconTypes[1].height=23; mapIconTypes[1].refX=0; mapIconTypes[1].refY=22; mapIconTypes[22]=new Object; mapIconTypes[22].width=43; mapIconTypes[22].height=44; mapIconTypes[22].refX=22; mapIconTypes[22].refY=28; mapIconTypes[50]=new Object; mapIconTypes[50].width=43; mapIconTypes[50].height=44; mapIconTypes[50].refX=22; mapIconTypes[50].refY=28; mapIconTypes[18]=new Object; mapIconTypes[18].width=43; mapIconTypes[18].height=44; mapIconTypes[18].refX=22; mapIconTypes[18].refY=28; mapIconTypes[36]=new Object; mapIconTypes[36].width=26; mapIconTypes[36].height=27; mapIconTypes[36].refX=13; mapIconTypes[36].refY=17; mapIconTypes[6]=new Object; mapIconTypes[6].width=34; mapIconTypes[6].height=34; mapIconTypes[6].refX=0; mapIconTypes[6].refY=33; mapIconTypes[12]=new Object; mapIconTypes[12].width=25; mapIconTypes[12].height=25; mapIconTypes[12].refX=3; mapIconTypes[12].refY=24; mapIconTypes[15]=new Object; mapIconTypes[15].width=16; mapIconTypes[15].height=16; mapIconTypes[15].refX=0; mapIconTypes[15].refY=15; mapIconTypes[21]=new Object; mapIconTypes[21].width=32; mapIconTypes[21].height=32; mapIconTypes[21].refX=17; mapIconTypes[21].refY=28; mapIconTypes[25]=new Object; mapIconTypes[25].width=32; mapIconTypes[25].height=32; mapIconTypes[25].refX=17; mapIconTypes[25].refY=28; mapIconTypes[20]=new Object; mapIconTypes[20].width=26; mapIconTypes[20].height=27; mapIconTypes[20].refX=13; mapIconTypes[20].refY=17; mapIconTypes[17]=new Object; mapIconTypes[17].width=32; mapIconTypes[17].height=32; mapIconTypes[17].refX=17; mapIconTypes[17].refY=28; mapIconTypes[37]=new Object; mapIconTypes[37].width=32; mapIconTypes[37].height=32; mapIconTypes[37].refX=17; mapIconTypes[37].refY=28; mapIconTypes[41]=new Object; mapIconTypes[41].width=32; mapIconTypes[41].height=32; mapIconTypes[41].refX=17; mapIconTypes[41].refY=28; mapIconTypes[29]=new Object; mapIconTypes[29].width=32; mapIconTypes[29].height=32; mapIconTypes[29].refX=17; mapIconTypes[29].refY=28; mapIconTypes[2]=new Object; mapIconTypes[2].width=34; mapIconTypes[2].height=34; mapIconTypes[2].refX=0; mapIconTypes[2].refY=33; mapIconTypes[33]=new Object; mapIconTypes[33].width=32; mapIconTypes[33].height=32; mapIconTypes[33].refX=17; mapIconTypes[33].refY=28; mapIconTypes[9]=new Object; mapIconTypes[9].width=25; mapIconTypes[9].height=24; mapIconTypes[9].refX=6; mapIconTypes[9].refY=22; mapIconTypes[49]=new Object; mapIconTypes[49].width=32; mapIconTypes[49].height=32; mapIconTypes[49].refX=17; mapIconTypes[49].refY=28; mapIconTypes[45]=new Object; mapIconTypes[45].width=32; mapIconTypes[45].height=32; mapIconTypes[45].refX=17; mapIconTypes[45].refY=28; mapIconTypes[10]=new Object; mapIconTypes[10].width=34; mapIconTypes[10].height=34; mapIconTypes[10].refX=7; mapIconTypes[10].refY=31; mapIconTypes[52]=new Object; mapIconTypes[52].width=26; mapIconTypes[52].height=27; mapIconTypes[52].refX=13; mapIconTypes[52].refY=17; mapIconTypes[42]=new Object; mapIconTypes[42].width=43; mapIconTypes[42].height=44; mapIconTypes[42].refX=22; mapIconTypes[42].refY=28; mapIconTypes[14]=new Object; mapIconTypes[14].width=30; mapIconTypes[14].height=15; mapIconTypes[14].refX=0; mapIconTypes[14].refY=14; mapIconTypes[32]=new Object; mapIconTypes[32].width=26; mapIconTypes[32].height=27; mapIconTypes[32].refX=13; mapIconTypes[32].refY=17; mapIconTypes[46]=new Object; mapIconTypes[46].width=43; mapIconTypes[46].height=44; mapIconTypes[46].refX=22; mapIconTypes[46].refY=28; mapIconTypes[28]=new Object; mapIconTypes[28].width=26; mapIconTypes[28].height=27; mapIconTypes[28].refX=13; mapIconTypes[28].refY=17; mapIconTypes[5]=new Object; mapIconTypes[5].width=18; mapIconTypes[5].height=23; mapIconTypes[5].refX=0; mapIconTypes[5].refY=22; mapIconTypes[34]=new Object; mapIconTypes[34].width=43; mapIconTypes[34].height=44; mapIconTypes[34].refX=22; mapIconTypes[34].refY=28; function ELabel(point, html, classname, pixelOffset, percentOpacity, overlap) { // Mandatory parameters this.point = point; this.html = html; // Optional parameters this.classname = classname||""; this.pixelOffset = pixelOffset||new GSize(0,0); if (percentOpacity) { if(percentOpacity<0){percentOpacity=0;} if(percentOpacity>100){percentOpacity=100;} } this.percentOpacity = percentOpacity; this.overlap=overlap||false; this.hidden = false; } function TextualZoomControl() { } function initElabel() { TextualZoomControl.prototype = new GControl(); TextualZoomControl.prototype.initialize = function(map) { var container = document.createElement("div"); var zoomInDiv = document.createElement("div"); this.setButtonStyle_(zoomInDiv); container.appendChild(zoomInDiv); zoomInDiv.appendChild(document.createTextNode("Kartengr"+String.fromCharCode(246)+String.fromCharCode(0xDF)+"e "+String.fromCharCode(177))); GEvent.addDomListener(zoomInDiv, "click", function() { var newHeight = $("map").getHeight() < 500 ? 700 : 328; $("map").setStyle({height: newHeight + 'px'}); var c = map.getCenter(); map.checkResize(); redrawMap(); map.panTo(c); document.cookie = 'mapSize='+newHeight; }); map.getContainer().appendChild(container); return container; } // By default, the control will appear in the top left corner of the // map with 7 pixels of padding. TextualZoomControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(220, 7)); } // Sets the proper CSS for the given button element. TextualZoomControl.prototype.setButtonStyle_ = function(button) { button.style.textDecoration = "underline"; button.style.color = "#000000"; button.style.backgroundColor = "#EEEEEE"; button.style.font = "small Arial"; button.style.fontSize = "11px"; button.style.border = "1px solid black"; button.style.padding = "1px"; button.style.marginBottom = "3px"; button.style.textAlign = "center"; button.style.textDecoration = "none"; button.style.width = "78px"; button.style.cursor = "pointer"; } ELabel.prototype = new GOverlay(); ELabel.prototype.initialize = function(map) { var div = document.createElement("div"); div.style.position = "absolute"; div.innerHTML = '
' + this.html + '
' ; map.getPane(G_MAP_FLOAT_SHADOW_PANE).appendChild(div); this.map_ = map; this.div_ = div; if (this.percentOpacity) { if(typeof(div.style.filter)=='string'){div.style.filter='alpha(opacity:'+this.percentOpacity+')';} if(typeof(div.style.KHTMLOpacity)=='string'){div.style.KHTMLOpacity=this.percentOpacity/100;} if(typeof(div.style.MozOpacity)=='string'){div.style.MozOpacity=this.percentOpacity/100;} if(typeof(div.style.opacity)=='string'){div.style.opacity=this.percentOpacity/100;} } if (this.overlap) { var z = GOverlay.getZIndex(this.point.lat()); this.div_.style.zIndex = z; } if (this.hidden) { this.hide(); } } ELabel.prototype.remove = function() { this.div_.parentNode.removeChild(this.div_); } ELabel.prototype.copy = function() { return new ELabel(this.point, this.html, this.classname, this.pixelOffset, this.percentOpacity, this.overlap); } ELabel.prototype.redraw = function(force) { var p = this.map_.fromLatLngToDivPixel(this.point); var h = parseInt(this.div_.clientHeight); this.div_.style.left = (p.x + this.pixelOffset.width) + "px"; this.div_.style.top = (p.y +this.pixelOffset.height - h) + "px"; } ELabel.prototype.show = function() { if (this.div_) { this.div_.style.display=""; this.redraw(); } this.hidden = false; } ELabel.prototype.hide = function() { if (this.div_) { this.div_.style.display="none"; } this.hidden = true; } ELabel.prototype.isHidden = function() { return this.hidden; } ELabel.prototype.supportsHide = function() { return true; } ELabel.prototype.setContents = function(html) { this.html = html; this.div_.innerHTML = '
' + this.html + '
' ; this.redraw(true); } ELabel.prototype.setPoint = function(point) { this.point = point; if (this.overlap) { var z = GOverlay.getZIndex(this.point.lat()); this.div_.style.zIndex = z; } this.redraw(true); } ELabel.prototype.setOpacity = function(percentOpacity) { if (percentOpacity) { if(percentOpacity<0){percentOpacity=0;} if(percentOpacity>100){percentOpacity=100;} } this.percentOpacity = percentOpacity; if (this.percentOpacity) { if(typeof(this.div_.style.filter)=='string'){this.div_.style.filter='alpha(opacity:'+this.percentOpacity+')';} if(typeof(this.div_.style.KHTMLOpacity)=='string'){this.div_.style.KHTMLOpacity=this.percentOpacity/100;} if(typeof(this.div_.style.MozOpacity)=='string'){this.div_.style.MozOpacity=this.percentOpacity/100;} if(typeof(this.div_.style.opacity)=='string'){this.div_.style.opacity=this.percentOpacity/100;} } } ELabel.prototype.getPoint = function() { return this.point; } ELabel.prototype.U = function() { return this.point; } ELabel.prototype.V = function() { return this.point; } ELabel.prototype.W = function() { return this.point; } ELabel.prototype.X = function() { return this.point; } ELabel.prototype.Y = function() { return this.point; } ELabel.prototype.Z = function() { return this.point; } } function registerMapLoader() { } var tileDataCache = new Array(); var ikMapTypes = false; /** initialize map **/ function loadMap() { if (GBrowserIsCompatible()) { initElabel(); ikMapTypes = getMapTypes(); mapSize = new GSize(778, (document.cookie && document.cookie.indexOf('mapSize=700') != -1) ? 700 : 328); map = new GMap2($("map"), { mapTypes: ikMapTypes, size: mapSize } ); geocoder = new GClientGeocoder(); map.enableDoubleClickZoom(); map.enableContinuousZoom(); map.addControl(new GLargeMapControl3D()); map.addControl(new TextualZoomControl()); map.addControl(new GMapTypeControl()); map.addControl(ovMapControl = new GOverviewMapControl()); initCustomMap(); Event.observe($('module_map'), 'mousemove', function(e) { docMouseX = Event.pointerX(e); docMouseY = Event.pointerY(e); }); if(typeof updateTrafficCounter == 'function') { updateTrafficCounter(); } } } // URL Liste für IK Kacheln var multiPartMapTilesUrls = new Array(); multiPartMapTilesUrls.push("http://karte.immobilien-kompass.de/servlet/getMultipartMap"); function getMultiPartTileUrlSatellite(tilePos, zoom) { return getMultiPartTileUrl(tilePos, zoom, 'sat', 1); } function getMultiPartTileUrlHybrid(tilePos, zoom) { return getMultiPartTileUrl(tilePos, zoom, 'hyb', 1); } function getMultiPartTileUrlOnlyOsm(tilePos, zoom) { return getMultiPartTileUrl(tilePos, zoom, 'map', 1); } function getMultiPartTileUrlOnlySites(tilePos, zoom) { return getMultiPartTileUrl(tilePos, zoom, 'xos', 1); } function getMultiPartTileUrlNoSites(tilePos, zoom) { return getMultiPartTileUrl(tilePos, zoom, 'xns', 1); } function getMultiPartTileUrlMapTop(tilePos, zoom) { return getMultiPartTileUrl(tilePos, zoom, 'sat', 0.7); } function getMultiPartTileUrl(tilePos, zoom, mapType, sitesOpacity) { tileUrl = 'x=' + tilePos.x; tileUrl += '&y=' + tilePos.y; tileUrl += '&zoom=' + zoom; tileUrl += '&c=' + CC_GLOBAL_SELECTED_COUNTRY; // load data for this tile if not already loaded var tileId = 'T' + tilePos.x + '_' + tilePos.y; if (mapType != "xns" && !(tileDataCache[zoom] && tileDataCache[zoom][tileId])) { loadMouseOverlayUrls.push(tileUrl); } tileUrl += '&year=' + CC_GLOBAL_SELECTED_MAP_YEAR; tileUrl += '&immoType0=' + ($('wohnanlage_einfach') && (!$('wohnanlage_einfach').checked) ? 0 : 1); tileUrl += '&immoType1=' + ($('wohnanlage_mittel') && (!$('wohnanlage_mittel').checked) ? 0 : 1); tileUrl += '&immoType2=' + ($('wohnanlage_gut') && (!$('wohnanlage_gut').checked) ? 0 : 1); tileUrl += '&immoType3=' + ($('wohnanlage_top') && (!$('wohnanlage_top').checked) ? 0 : 1); tileUrl += '&mapType=' + mapType; if ( sitesOpacity < 1 ) { tileUrl += '&opacity=' + sitesOpacity; } tileUrl += '&v=20100701'; return multiPartMapTilesUrls[tilePos.x % multiPartMapTilesUrls.length] + "?" + tileUrl; } /* parse the returned XML mouse area data */ function loadMapOverlayMouseAreasListener(data, responseCode) { try { if (responseCode == 200) { var xml = GXml.parse(data); if ( !xml.documentElement ) { // xml parser error return; } var markerListElements = xml.documentElement.getElementsByTagName("markers"); for (var markerListIndex = 0; markerListIndex < markerListElements.length; markerListIndex++) { var markerList = markerListElements[markerListIndex]; var tileId = markerList.getAttribute("tileId"); var zoom = markerList.getAttribute("zoom"); var markerElements = markerList.getElementsByTagName("*"); if (!tileDataCache[zoom]) { tileDataCache[zoom] = new Array(); } if (!tileDataCache[zoom][tileId]) { tileDataCache[zoom][tileId] = new Array(); } var objectsArray = tileDataCache[zoom][tileId]; for (var elementIndex = 0; elementIndex < markerElements.length; elementIndex++) { var marker = new Object; marker.type = markerElements[elementIndex].tagName; marker.id = parseFloat(markerElements[elementIndex].getAttribute("id")); marker.x = parseFloat(markerElements[elementIndex].getAttribute("x")); marker.y = parseFloat(markerElements[elementIndex].getAttribute("y")); marker.z = parseFloat(markerElements[elementIndex].getAttribute("z")); marker.iconType = parseFloat(markerElements[elementIndex].getAttribute("t")); marker.name = markerElements[elementIndex].getAttribute("name"); marker.point = new GLatLng(marker.y, marker.x); objectsArray.push(marker); } } } } finally { $('alertLoadStatus').hide(); // ready, start next Timeout setTimeout("loadMouseAreas()", 2000); } } function loadMouseAreas() { if ( loadMouseOverlayUrls.length == 0 ) { setTimeout("loadMouseAreas()", 2000); return; } var loadMouseOverlayUrlsCopy = loadMouseOverlayUrls; loadMouseOverlayUrls = new Array(); var postVars = ""; var zoom = map.getZoom(); // collect all requested tiles and send one single POST while (loadMouseOverlayUrlsCopy.length > 0) { if ( postVars.length > 0 ) { postVars += ","; } var nextUrl = loadMouseOverlayUrlsCopy.pop(); // make sure that the URL is valid for current map ZOOM // if it's for another ZOOM then skip the URL if ( nextUrl.indexOf('zoom=' + zoom) != -1 ) { postVars += nextUrl.replace(/&/g, "+"); } } if ( postVars.length > 0 ) { postVars += "&"; } GDownloadUrl('http://karte.immobilien-kompass.de/servlet/getMapOverlayMouseAreas?q='+encodeURI(postVars), loadMapOverlayMouseAreasListener); $('alertLoadStatus').show(); } var dontAlertRegionChangeAgainList = new Array(); function closeAlertRegionChangePopup(alertRegionId) { // hide container $('alertRegionChangeDivContainer').update(); // don't alert again for this region dontAlertRegionChangeAgainList[alertRegionId] = true; } function alertRegionChange(regionId) { if ( !dontAlertRegionChangeAgainList[regionId] ) { GDownloadUrl("/jsp/do?page=alert-region-change" + "®ionId="+regionId, function(data, status) { if ( status == 200 ) { $('alertRegionChangeDivContainer').update(data); } }); } } function checkMapControlsVisibility() { // check whether map control panel has to be disabled/enabled var zoom = map.getZoom(); if ( zoom >= 9 ) { $('mapOptionsPanel').show(); if ( $('mapLegendTable') ) { $('mapLegendTable').show(); } } else { $('mapOptionsPanel').hide(); if ( $('mapLegendTable') ) { $('mapLegendTable').hide(); } } } var lastPositionCheckTime = 0; function checkMapPosition() { if ( lastPositionCheckTime + 5000 < new Date().getTime() ) { lastPositionCheckTime = new Date().getTime(); var bounds = map.getBounds(); GDownloadUrl("/servlet/checkMapPositionObject" + "?n="+bounds.getNorthEast().lat() + "&e="+bounds.getNorthEast().lng() + "&s="+bounds.getSouthWest().lat() + "&w="+bounds.getSouthWest().lng() + "&countryId="+CC_GLOBAL_SELECTED_COUNTRY, function(data, status) { if ( data && parseInt(data) > 0) { var newRegion = parseInt(data); if ( newRegion != CC_GLOBAL_SELECTED_REGION ) { alertRegionChange(newRegion); } } }); } } function getMapTypesOSM() { var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90, -180), new GLatLng(90, 180)), 0, "© 2010 Capital, - Kartendaten CCBYSA 2010 OpenStreetMap.org contributors."); var copyrightCollection = new GCopyrightCollection('Karte'); copyrightCollection.addCopyright(copyright) // Multipart Map Tiles with background! var multipartMapOverlaySatellite = new GTileLayer(copyrightCollection , CC_GLOBAL_MIN_ZOOM, CC_GLOBAL_MAX_ZOOM); multipartMapOverlaySatellite.getTileUrl = getMultiPartTileUrlSatellite; multipartMapOverlaySatellite.isPng = function() { return true; } multipartMapOverlaySatellite.getOpacity = function() { return 1.0; }; var multipartMapOverlayHybrid = new GTileLayer(copyrightCollection , CC_GLOBAL_MIN_ZOOM, CC_GLOBAL_MAX_ZOOM); multipartMapOverlayHybrid.getTileUrl = getMultiPartTileUrlHybrid; multipartMapOverlayHybrid.isPng = function() { return true; } multipartMapOverlayHybrid.getOpacity = function() { return 1.0; }; var multipartMapOverlayOnlyOsm = new GTileLayer(copyrightCollection , CC_GLOBAL_MIN_ZOOM, CC_GLOBAL_MAX_ZOOM); multipartMapOverlayOnlyOsm.getTileUrl = getMultiPartTileUrlOnlyOsm; multipartMapOverlayOnlyOsm.isPng = function() { return false; } multipartMapOverlayOnlyOsm.getOpacity = function() { return 1.0; }; var tilelayersProjection = G_HYBRID_MAP.getProjection(); var tilelayersSatellite = [G_HYBRID_MAP.getTileLayers()[0], multipartMapOverlaySatellite]; var custommapSatellite = new GMapType(tilelayersSatellite, tilelayersProjection, "Satellit", {errorMessage:"Für diesen Kartenbereich sind momentan keine Daten verfügbar.", minResolution:CC_GLOBAL_MIN_ZOOM, maxResolution:CC_GLOBAL_MAX_ZOOM}); custommapSatellite.getMinimumResolution = function() { return CC_GLOBAL_MIN_ZOOM; }; custommapSatellite.getMaximumResolution = function() { return CC_GLOBAL_MAX_ZOOM; }; var tilelayersWithSatellite = [G_HYBRID_MAP.getTileLayers()[0], multipartMapOverlayHybrid]; var custommapWithSatellite = new GMapType(tilelayersWithSatellite, tilelayersProjection, "Hybrid", {errorMessage:"Für diesen Kartenbereich sind momentan keine Daten verfügbar.", minResolution:CC_GLOBAL_MIN_ZOOM, maxResolution:CC_GLOBAL_MAX_ZOOM}); custommapWithSatellite.getMinimumResolution = function() { return CC_GLOBAL_MIN_ZOOM; }; custommapWithSatellite.getMaximumResolution = function() { return CC_GLOBAL_MAX_ZOOM; }; var tilelayersOnlyOsm = [multipartMapOverlayOnlyOsm]; var custommapOnlyOsm = new GMapType(tilelayersOnlyOsm, tilelayersProjection, "Karte", {errorMessage:"Für diesen Kartenbereich sind momentan keine Daten verfügbar.", minResolution:CC_GLOBAL_MIN_ZOOM, maxResolution:CC_GLOBAL_MAX_ZOOM}); return [custommapSatellite, custommapWithSatellite, custommapOnlyOsm]; } function getMapTypesDefaultGoogleMaps() { var hybridLayerSet = new GTileLayer(copyrightCollection , 1, 18); hybridLayerSet.getTileUrl = function(a, b) { if ( b > 4 ) { hybridTileUrl = G_HYBRID_MAP.getTileLayers()[1].getTileUrl(a,b); if (hybridTileUrl.indexOf("imgtp") == -1) { hybridTileUrl += "&imgtp=png32"; } return hybridTileUrl; } else { return "../source/images/blank256.png"; } }; hybridLayerSet.isPng = function() { return true; }; hybridLayerSet.getOpacity = function(a, b) { return 1.0; }; var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90, -180), new GLatLng(90, 180)), 0, "© 2010 Capital"); var copyrightCollection = new GCopyrightCollection('Karte'); copyrightCollection.addCopyright(copyright) // default var multipartMapOverlayDefault = new GTileLayer(copyrightCollection , CC_GLOBAL_MIN_ZOOM, CC_GLOBAL_MAX_ZOOM); multipartMapOverlayDefault.getTileUrl = getMultiPartTileUrlSatellite; multipartMapOverlayDefault.isPng = function() { return true; } multipartMapOverlayDefault.getOpacity = function() { return 1; }; // Map Top var multipartMapOverlayMapTop = new GTileLayer(copyrightCollection , CC_GLOBAL_MIN_ZOOM, CC_GLOBAL_MAX_ZOOM); multipartMapOverlayMapTop.getTileUrl = getMultiPartTileUrlMapTop; multipartMapOverlayMapTop.isPng = function() { return true; } multipartMapOverlayMapTop.getOpacity = function() { return 1; }; // background var multipartMapOverlayBottom = new GTileLayer(copyrightCollection , CC_GLOBAL_MIN_ZOOM, CC_GLOBAL_MAX_ZOOM); multipartMapOverlayBottom.getTileUrl = getMultiPartTileUrlOnlySites; multipartMapOverlayBottom.isPng = function() { return true; } multipartMapOverlayBottom.getOpacity = function() { return 1; }; // foreground var multipartMapOverlayTop = new GTileLayer(copyrightCollection , CC_GLOBAL_MIN_ZOOM, CC_GLOBAL_MAX_ZOOM); multipartMapOverlayTop.getTileUrl = getMultiPartTileUrlNoSites; multipartMapOverlayTop.isPng = function() { return true; } multipartMapOverlayTop.getOpacity = function() { return 1; }; var tilelayersProjection = G_HYBRID_MAP.getProjection(); var tilelayersSatellite = [G_SATELLITE_MAP.getTileLayers()[0], multipartMapOverlayDefault]; var custommapSatellite = new GMapType(tilelayersSatellite, tilelayersProjection, "Satellit", {errorMessage:"Für diesen Kartenbereich sind momentan keine Daten verfügbar.", minResolution:CC_GLOBAL_MIN_ZOOM, maxResolution:CC_GLOBAL_MAX_ZOOM}); var tilelayersWithSatellite = [G_HYBRID_MAP.getTileLayers()[0], multipartMapOverlayBottom, hybridLayerSet, multipartMapOverlayTop]; var custommapWithSatellite = new GMapType(tilelayersWithSatellite, tilelayersProjection, "Hybrid", {errorMessage:"Für diesen Kartenbereich sind momentan keine Daten verfügbar.", minResolution:CC_GLOBAL_MIN_ZOOM, maxResolution:CC_GLOBAL_MAX_ZOOM}); var tilelayersOnlyOsm = [G_NORMAL_MAP.getTileLayers()[0], multipartMapOverlayMapTop]; var custommapOnlyOsm = new GMapType(tilelayersOnlyOsm, tilelayersProjection, "Karte", {errorMessage:"Für diesen Kartenbereich sind momentan keine Daten verfügbar.", minResolution:CC_GLOBAL_MIN_ZOOM, maxResolution:CC_GLOBAL_MAX_ZOOM}); return [custommapSatellite, custommapWithSatellite, custommapOnlyOsm]; } function getMapTypes() { return CC_GLOBAL_USE_OSM ? getMapTypesOSM() : getMapTypesDefaultGoogleMaps(); } function initCustomMap() { // default map type cookieMapType = 1; if ( document.cookie && document.cookie.indexOf('mapType=sat') != -1 ) { cookieMapType = 0; } else if ( document.cookie && document.cookie.indexOf('mapType=map') != -1 ) { cookieMapType = 2; } map.setCenter(new GLatLng(CC_GLOBAL_SELECTED_LAT,CC_GLOBAL_SELECTED_LON), CC_GLOBAL_SELECTED_ZOOM, ikMapTypes[cookieMapType]); ovMapControl.setMapType(ikMapTypes[cookieMapType]); GEvent.addListener(map,"maptypechanged", function(){ if ( map.getCurrentMapType() == ikMapTypes[0] ) { document.cookie = 'mapType=sat'; } else if ( map.getCurrentMapType() == ikMapTypes[1] ) { document.cookie = 'mapType=hyb'; } else if ( map.getCurrentMapType() == ikMapTypes[2] ) { document.cookie = 'mapType=map'; } ovMapControl.setMapType(map.getCurrentMapType()); }); // Watch mouse movement to detect when over a data point... GEvent.addListener(map, "mousemove", mapMouseMove ) ; // A simple opaque ELabel mapElabel = new ELabel(new GLatLng(50,11), "", "elabel"); map.addOverlay(mapElabel); mapElabel.hide(); // Watch mouse clicks to detect when user clicks on a data point... GEvent.addListener(map, "click", mapMouseClick ) ; // Hide comment overlay when user clicks into the map GEvent.addListener(map, "dragstart", function() { $('mapCommentOverlay').hide(); }) ; // Check whether user moved to a new region GEvent.addListener(map, "zoomend", function() { checkMapPosition(); checkMapControlsVisibility(); }); // Check whether user moved to a new region GEvent.addListener(map, "moveend", function() { checkMapPosition(); if(typeof updateTrafficCounter == 'function') { updateTrafficCounter() } }) ; // configure the TAG for the comment popup $("mapCommentOverlay").hide(); $("mapCommentOverlay").setStyle({ position: 'absolute', overflow: 'hidden', left: '170px', top: '700px', width: '544px', height: '220px', backgroundColor: '#FFFFFF' }); // configure the TAG for the comment Answering popup $("mapCommentAnswerOverlay").hide(); $("mapCommentAnswerOverlay").setStyle({ position: 'absolute', //overflow: 'hidden', left: '90px', top: '710px', width: '693px', height: '214px', backgroundColor: '#FFFFFF' }); // configure the TAG for the Add-Comment popup $("mapAddCommentOverlay").hide(); $("mapAddCommentOverlay").setStyle({ position: 'absolute', overflow: 'hidden', left: '220px', top: '650px', width: '702px', height: '245px', backgroundColor: '#FFFFFF' }); // configure the TAG for the Get-Link popup $("mapGetLinkOverlay").hide(); $("mapGetLinkOverlay").setStyle({ position: 'absolute', overflow: 'hidden', left: '382px', top: '700px', width: '420px', height: '130px', backgroundColor: '#FFFFFF', border:'1px solid black' }); // turn controls on or off checkMapControlsVisibility(); // Start the interval that loads the mouse areas setTimeout("loadMouseAreas()", 1500); $('alertLoadStatus').hide(); if ( document.URL.indexOf("addressNotFound") != -1 ) { alert("Adresse nicht gefunden."); } } function popupComment(objectId, posLatLon) { if ( !objectId ) { return; } GDownloadUrl("/jsp/do?page=popupMarker&listId=marker&objectId=" + objectId, function(data, responseCode) { if (responseCode != 200 ) { return; } $('mapCommentOverlay').setStyle({ left: '170px', top: (docMouseY-120)+'px', width: '544px', zIndex: '20000' }); $("mapCommentOverlay").update(data); $("mapCommentOverlay").show(); if(typeof updateTrafficCounter == 'function') { updateTrafficCounter() } }); } function popupPoi(objectId, posLatLon) { if ( !objectId ) { return; } var link = 'do?page=poi&listId=poi&objectId='+objectId; GDownloadUrl(link, function(data, httpResponseStatus) { $('mapCommentOverlay').update(data); $('mapCommentOverlay').setStyle({ left: '220px', top: (docMouseY-120)+'px', width: '322px', zIndex: '20000' }); $('mapCommentOverlay').show(); if(typeof updateTrafficCounter == 'function') { updateTrafficCounter() } }); } // Watch mouse clicks to detect when user clicks on a data point... function mapMouseClick(mouseLatLng) { if ( !mapMouseObject ) { return; } console.log(mapMouseObject); if ( mapMouseObject.type == 'm' && mapMouseObject.iconType <= 17 ) { var point = mapMouseObject.point; var id = mapMouseObject.id; popupComment(id, point); } else if ( mapMouseObject.type == 'm' ) { var point = mapMouseObject.point; var id = mapMouseObject.id; popupPoi(id, point); } else { var x = mapMouseObject.x; var y = mapMouseObject.y; var z = mapMouseObject.z; map.getDragObject().setDraggableCursor('wait'); location.href = "/servlet/goto"+ "?mapCenterX="+x+ "&mapCenterY="+y+ "&mapZoom="+z+ "&mapYear="+CC_GLOBAL_SELECTED_MAP_YEAR; } } // Watch mouse movement for proximity to a data point... function mapMouseMove(mouseLatLng) { var zoom = map.getZoom() ; var mousePx = G_NORMAL_MAP.getProjection().fromLatLngToPixel(mouseLatLng, zoom) ; var tile = 'T' + Math.floor(mousePx.x / 256) + '_' + Math.floor(mousePx.y / 256) ; if ( !(tileDataCache[zoom] && tileDataCache[zoom][tile]) ) // if not over a tile with data, skip { return ; } var tileObj = tileDataCache[zoom][tile]; for (var n = 0 ; n < tileObj.length ; n++ ) { var mapObject = tileObj[n]; if ( mapIconTypes[mapObject.iconType] ) { var pointPx = G_NORMAL_MAP.getProjection().fromLatLngToPixel(mapObject.point, zoom); var iconType = mapIconTypes[mapObject.iconType]; if ( mousePx.x >= pointPx.x - iconType.refX && mousePx.x < pointPx.x - iconType.refX + iconType.width && mousePx.y >= pointPx.y - iconType.refY && mousePx.y < pointPx.y - iconType.refY + iconType.height) { activateMarker(mapObject); // Activate the hand return; } } } deactivateMarker(); } // Activate a marker... function activateMarker(mapObj) { if ( mapMouseObject && mapObj && mapMouseObject.name == mapObj.name ) { return; } mapMouseObject = mapObj; map.getDragObject().setDraggableCursor('pointer'); mapElabel.setPoint(mapObj.point); mapElabel.setContents(mapObj.name); mapElabel.show(); } // remove the marker... function deactivateMarker() { if ( mapMouseObject ) { mapMouseObject = false; map.getDragObject().setDraggableCursor('url(http://maps.google.com/intl/en_us/mapfiles/openhand.cur),default'); mapElabel.hide(); } } function reloadMap(url) { window.location.href = url; } /** holds the instance of the comment marker */ var commentMarker = false; var projection = false; var commentIconXPos = 150; var commentIconYPos = 100; /** whether the title of the current New Marker has been changed by the user */ var newMarkerTitleText = ""; function relocateCommentMarker() { if (!commentMarker.isHidden()) { var mapHeight = $('map').getHeight(); var bounds = map.getBounds(); var markerPos = projection.fromLatLngToPixel(commentMarker.getPoint() , map.getZoom()); var mapPosX = projection.fromLatLngToPixel(bounds.getSouthWest() , map.getZoom()).x; var mapPosY = projection.fromLatLngToPixel(bounds.getNorthEast() , map.getZoom()).y; $("mapAddCommentOverlay").setStyle({ top: ((markerPos.y - mapPosY < mapHeight/2) ? (markerPos.y - mapPosY + 650) : (markerPos.y - mapPosY + 300)) + 'px', zIndex: '10000' }); } } function relocateCommentMarkerEnd() { newMarkerTitleChanged = newMarkerTitleText != document.forms['commentAppendTextForm'].Fname.value; if (!(commentMarker.isHidden() || newMarkerTitleChanged)) { geocoder.getLocations(commentMarker.getPoint(), revGeoCoderGoodresult); } } /* Called when a new marker popup opens */ function newMarkerInit() { newMarkerTitleText = ""; geocoder.getLocations(commentMarker.getPoint(), revGeoCoderGoodresult); } /* Called when users enters text into the a new marker title field */ function onNewMarkerTitleChanged() { newMarkerTitleChanged = true; } function revGeoCoderGoodresult(response) { var address = ""; if (!response || response.Status.code != 200) { // fehler... } else { place = response.Placemark[0]; address = place.address } if ( address != null && address != "" ) { document.forms['commentAppendTextForm'].Fname.value = newMarkerTitleText = address; if(typeof updateTrafficCounter == 'function') { updateTrafficCounter() } } } /** Function for creating a new comment */ function addComment() { GDownloadUrl("/jsp/do?page=popupCommentAdd", function(data, responseCode) { if (responseCode != 200 ) { return; } $("mapAddCommentOverlay").setStyle({ left: (commentIconXPos - 50 ) + 'px', top: (commentIconYPos + 650 ) + 'px', zIndex: '10000' }); $("mapAddCommentOverlay").update(data); $("mapAddCommentOverlay").show(); if ( !commentMarker ) { projection = new GMercatorProjection(20); var commentIcon = new GIcon(); commentIcon.image = "../source/images/icons/map_icon_big_kommentar_neu.png"; commentIcon.iconAnchor = new GPoint(10, 33); commentIcon.iconSize = new GSize(34, 34); commentIcon.shadow = "../source/images/icons/map_icon_big_kommentar_neu_schatten.png"; commentIcon.shadowSize = new GSize(34, 34); commentMarker = new GMarker(map.getCenter(), {draggable: true, icon: commentIcon}); GEvent.addListener(commentMarker, "drag", relocateCommentMarker); GEvent.addListener(commentMarker, "dragend", relocateCommentMarkerEnd); map.addOverlay(commentMarker); GEvent.addListener(map, "zoomend", relocateCommentMarker); map.addOverlay(commentMarker); } var center = map.getCenter(); var bounds = map.getBounds(); var point = new GLatLng(center.lat() + Math.abs(bounds.getSouthWest().lat() - center.lat())/3, center.lng() - Math.abs(bounds.getSouthWest().lng() - center.lng())/4); var mapPosX = projection.fromLatLngToPixel(bounds.getSouthWest() , map.getZoom()).x; var mapPosY = projection.fromLatLngToPixel(bounds.getNorthEast() , map.getZoom()).y; commentMarker.setPoint(projection.fromPixelToLatLng( new GPoint (mapPosX + commentIconXPos, mapPosY + commentIconYPos), map.getZoom())); commentMarker.show(); newMarkerInit(); }); } /** Submits the form for creating a new comment */ function submitFormCommentMarker() { if(typeof updateTrafficCounter == 'function') { updateTrafficCounter() } if ( commentMarker && document.forms.commentAppendTextForm) { if (document.forms['commentAppendTextForm'].Fname.value.length == 0 || document.forms['commentAppendTextForm'].FanswerText.value.length == 0) { alert("Bitte geben Sie Lagebezeichnung und Kommentar ein."); } else { center = commentMarker.getPoint(); document.forms['commentAppendTextForm'].fCenterX.value = center.lng(); document.forms['commentAppendTextForm'].fCenterY.value = center.lat(); document.forms['commentAppendTextForm'].submit(); } } } function answerMapComment(markerId) { if ( !markerId ) { return; } GDownloadUrl("/jsp/do?page=popupMarkerAnswer&listId=marker&objectId=" + markerId, function(data, responseCode) { if (responseCode != 200 ) { return; } $("mapCommentAnswerOverlay").setStyle({ top: (docMouseY-120)+'px', zIndex: '20000' }); $("mapCommentOverlay").hide(); resetRating(); $("mapCommentAnswerOverlay").update(data); $("mapCommentAnswerOverlay").show(); }); } function answerUserComment(markerId) { answerMapComment(markerId); $("mapCommentAnswerOverlay").setStyle({ top: (docMouseY-120)+'px', zIndex: '20000' }); } //*** popupMarkerZoom.jsp ************** var ratingImage1 = new Image(66,14) ratingImage1.src = "../source/images/rating1.gif" var ratingImage2 = new Image(66,14) ratingImage2.src = "../source/images/rating2.gif" var ratingImage3 = new Image(66,14) ratingImage3.src = "../source/images/rating3.gif" var ratingImage4 = new Image(66,14) ratingImage4.src = "../source/images/rating4.gif" var ratingImage5 = new Image(66,14) ratingImage5.src = "../source/images/rating5.gif" var ratingImageNoRating = new Image(66,14) ratingImageNoRating.src = "../source/images/rating-none.gif" var ratingsImagesArray = new Array(ratingImageNoRating,ratingImage1,ratingImage2,ratingImage3,ratingImage4,ratingImage5); var ratingTextsArray = new Array("","1/5","2/5","3/5","4/5","5/5"); var initializedCriterias = new Array(); var criteriaSet = new Array(); var criteriasvalues = new Array(); function displayRating(fieldId, rateId) { if (!initializedCriterias[fieldId]) { criteriasvalues[fieldId] = document.forms['commentAppendTextForm'].elements['F'+fieldId].value; initializedCriterias[fieldId] = true; } $("img"+fieldId).src = ratingsImagesArray[rateId].src; $("div"+fieldId).update(ratingTextsArray[rateId]); return true; } function restoreRating(fieldId) { if ( criteriaSet[fieldId] ) { setRating(fieldId, criteriasvalues[fieldId]); } else { $("img"+fieldId).src = ratingsImagesArray[criteriasvalues[fieldId]].src; $("div"+fieldId).update(""+ratingTextsArray[criteriasvalues[fieldId]]+""); } return true; } function setRating(fieldId, rateId) { $("img"+fieldId).src = ratingsImagesArray[rateId].src; $("div"+fieldId).update(""+ratingTextsArray[rateId]+""); criteriasvalues[fieldId] = rateId; criteriaSet[fieldId] = true; document.forms['commentAppendTextForm'].elements['F'+fieldId].value = rateId; return true; } function resetRating() { initializedCriterias = new Array(); criteriaSet = new Array(); criteriasvalues = new Array(); } function openPicturePopup(markerId, pictureWidth, pictureHeight) { var extraSpaceV = 160; var extraSpaceH = 20; var height = 300; var width = Math.round(pictureWidth * 300 / pictureHeight); window.open("/jsp/do?page=popupPicture&listId=marker&objectId=" + markerId + "&w="+width+"&h="+height, '', 'width='+(width+extraSpaceH)+',height='+(height+extraSpaceV)); if(typeof updateTrafficCounter == 'function') { updateTrafficCounter() } } //******************* Compare Region ********************************* function reloadRegionData(superRegionId){ $('divSelectDistrict').update(''); $('divSelectRegion').update(''); GDownloadUrl("/jsp/do?page=snippetRegionForm&listId=region&objectId=" + superRegionId, function(data, httpResponseStatus){ $('divSelectDistrict').update(''); $('divSelectRegion').up().update(data); }); } function reloadDistrictData(regionId){ $('divSelectDistrict').update(''); GDownloadUrl("/jsp/do?page=snippetDistrictForm&listId=region&objectId=" + regionId, function(data, httpResponseStatus){ $('divSelectDistrict').up().update(data); }); } function submitCompareForm(tab) { if ( document.forms.compareRegionDistrictForm.FdistrictId.value && document.forms.compareRegionDistrictForm.FdistrictId.value != "null" && document.forms.compareRegionDistrictForm.FregionId.value && document.forms.compareRegionDistrictForm.FregionId.value != "null" ) { var districtId = document.forms.compareRegionDistrictForm.FdistrictId.value; var newUrl = String(document.location.href); newUrl = newUrl.replace(/infrastruktur\.html/g, "vergleich-infrastruktur.html?districtId="+districtId); newUrl = newUrl.replace(/architektur\.html/g, "vergleich-architektur.html?districtId="+districtId); newUrl = newUrl.replace(/preise-prognosen\.html/g, "vergleich-preise-prognosen.html?districtId="+districtId); document.location.href=newUrl; } else { alert("Bitte w�hlen Sie einen Ort und einen Ortsteil aus."); } } //********************************************************************* function redrawMap() { if(typeof updateTrafficCounter == 'function') { updateTrafficCounter(); } map.setMapType(map.getCurrentMapType()); // store cookie values for layer visibility document.cookie = 'immoType0=' + ($('wohnanlage_einfach') && (!$('wohnanlage_einfach').checked) ? 0 : 1); document.cookie = 'immoType1=' + ($('wohnanlage_mittel') && (!$('wohnanlage_mittel').checked) ? 0 : 1); document.cookie = 'immoType2=' + ($('wohnanlage_gut') && (!$('wohnanlage_gut').checked) ? 0 : 1); document.cookie = 'immoType3=' + ($('wohnanlage_top') && (!$('wohnanlage_top').checked) ? 0 : 1); } function changeMapYear(newMapYear) { var center = map.getCenter(); document.location.href = "do?page=home&mapCenterX="+ center.lng()+"&mapCenterY="+center.lat()+"&mapZoom="+map.getZoom() + "&mapYear=" + newMapYear+"#karte"; document.cookie = 'mapYear'+newMapYear; } // **************************************************************************** function doMarkerRecommandation (replaceDivId, markerObjectId, answer) { var link = 'do?page=markerRecommendation&listId=marker&objectId='+markerObjectId+'&answer='+answer; GDownloadUrl(link, function(data, httpResponseStatus) { $(replaceDivId).update(data); if(typeof updateTrafficCounter == 'function') { updateTrafficCounter() } }); return false; } function doMarkerAlert (abusedCommentId) { var link = 'do?page=markerAlert&listId=marker&objectId='+abusedCommentId; GDownloadUrl(link, function(data, httpResponseStatus) { $('violationPopup').update(data); if(typeof updateTrafficCounter == 'function') { updateTrafficCounter() } }); return false; } function openMarkerAlertPopup (abusedCommentId) { var link = 'do?page=markerAlertDialog&listId=marker&objectId='+abusedCommentId; GDownloadUrl(link, function(data, httpResponseStatus) { $('violationPopup').update(data); $('violationPopup').setStyle({ left: (docMouseX-300)+'px', top: (docMouseY-120)+'px', zIndex: '20000' }); $('violationPopup').show(); }); return false; } function updateWaysFilter() { var url = "/servlet/filterWays"; var bounds = map.getBounds(); var pars = "lat1=" + bounds.getNorthEast().lat()+ "&lon1=" + bounds.getSouthWest().lng()+ "&lat2=" + bounds.getSouthWest().lat()+ "&lon2=" + bounds.getNorthEast().lng(); $('waysFilter').update('laden... (kann einige Minuten dauern!)'); $('waysFilter').innerHTML; var myAjax = new Ajax.Updater( "waysFilter", url, { method: "get", parameters: pars }); } function getMapWidgetCode() { var projection = new GMercatorProjection(20); var bounds = map.getBounds(); var mapPosX0 = projection.fromLatLngToPixel(bounds.getSouthWest() , map.getZoom()).x; var mapPosY0 = projection.fromLatLngToPixel(bounds.getNorthEast() , map.getZoom()).y; var mapPosX1 = projection.fromLatLngToPixel(bounds.getNorthEast() , map.getZoom()).x; var mapPosY1 = projection.fromLatLngToPixel(bounds.getSouthWest() , map.getZoom()).y; var mapZoom = map.getZoom() var xyratio = (mapPosX1 - mapPosX0) / (mapPosY1 - mapPosY0); if (xyratio > 2) { // crop wide map mapPosX0 = mapPosX0 + Math.round( (mapPosX1-mapPosX0)/2 - (280/2) ); mapPosX1 = mapPosX0+330; mapPosY0 = mapPosY0 + Math.round( (mapPosY1-mapPosY0)/2 - (300/2) ); } else { mapPosX0 = Math.round(mapPosX0 / 2) + Math.round( (mapPosX1-mapPosX0)/4 - (280/2) ); mapPosY0 = Math.round(mapPosY0 / 2) + Math.round( (mapPosY1-mapPosY0)/4 - (300/2) );; mapZoom--; } var widgetLink = "http://karte.immobilien-kompass.de/adresse/"+map.getZoom()+"/"+map.getCenter().lat()+"/"+map.getCenter().lng(); var widgetCode = "<iframe width="300" height="467" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://karte.immobilien-kompass.de/widget/"+mapZoom+"/"+mapPosX0+"/"+mapPosY0+"/staticmap-300x467.html" style="background-color:white;"></iframe>"; var data = "
"; data += "
"; data += "\"Schließen\""; data += "
"; data += "

Link in E-Mail oder Chat einfügen

"; data += ""; data += "

HTML-Code zum Einbetten in eine Webseite

"; data += ""; data += "
"; $("mapGetLinkOverlay").update(data); $("mapGetLinkOverlay").show(); }