// Höfum map breytuna global svo við getum referencað hana utan init fallsins var map = null; // Aðrar global variables var markers = null; // Öllum wfs layerum er bætt við þetta array sem síðan er bætt við client select gaurinn var client_select_wfs_arr = []; var client_select = null; var viewLink; function initmap() { map = new OpenLayers.Map('map', { maxExtent: new OpenLayers.Bounds(143000,255000,866000,735000), units:'m', panDuration: 100, controls: [ new OpenLayers.Control.Navigation( {dragPanOptions: {enableKinetic: true}} )], maxResolution: '180/256', scales:[6800000,3400000,1700000,1000000,500000,250000,100000,50000,25000,10000,5000,2000,1000], projection:"EPSG:3057", theme: null }); OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3; var atlas = new OpenLayers.Layer.TMS('Kort', ['http://tc0.loftmyndir.is/tc_r/tilecache.py','http://tc1.loftmyndir.is/tc_r/tilecache.py','http://tc2.loftmyndir.is/tc_r/tilecache.py','http://tc3.loftmyndir.is/tc_r/tilecache.py'], { layername:'atlas', type:'jpeg', kortasja: 'mini.loftmyndir.is', serviceVersion:'', isBaseLayer: true, displayInLayerSwitcher:true, attribution: ' © Loftmyndir ehf. Allur réttur áskilinn.', transitionEffect:'resize', scales: [6800000,3400000,1700000,1000000,500000,250000,100000,50000,25000,10000,5000,2000], //maxExtent: new OpenLayers.Bounds(143000,255000,866000,735000), //bbox: new OpenLayers.Bounds(143000,255000,866000,735000), //scales:[1700000,1000000,500000,250000,100000,50000,25000,10000,5000,2000,1000,500,250], buffer:1}); map.addLayers([atlas]); map.addControl(new OpenLayers.Control.Attribution()); var myndkort_old = new OpenLayers.Layer.TMS('Loftmynd', ['http://mini.loftmyndir.is/tiles/'], { layername:'myndkort_old', type:'jpeg', kortasja: 'mini.loftmyndir.is', serviceVersion:'', isBaseLayer: true, displayInLayerSwitcher:true, attribution: ' © Loftmyndir ehf. Allur réttur áskilinn.', transitionEffect:'resize', scales: [6800000,3400000,1700000,1000000,500000,250000,100000,50000,25000,10000,5000,2000,1000], //maxExtent: new OpenLayers.Bounds(143000,255000,866000,735000), //bbox: new OpenLayers.Bounds(143000,255000,866000,735000), //scales:[1700000,1000000,500000,250000,100000,50000,25000,10000,5000,2000,1000,500,250], buffer:1}); map.addLayers([myndkort_old]); map.addControl(new OpenLayers.Control.Attribution()); var VegirMyndkort_scales = [6800000,3400000,1700000,1000000,500000,250000,100000,50000,25000,10000,5000,2000,1000,500,250]; var VegirMyndkort = new OpenLayers.Layer.WMS.Untiled("VegirMyndkort", ["http://geoserver.loftmyndir.is/wms/service"], {layers: 'LM_vegir_ornefni', styles: '', format:'image/png', transparent: true}, {singleTile:true, 'visibility':false, 'displayInLayerSwitcher':true, 'isBaseLayer': false, scales: VegirMyndkort_scales, unsupportedBrowsers: []}); map.addLayers([VegirMyndkort]); var skamyndir_scales = [6800000,3400000,1700000,1000000,500000,250000,100000,50000,25000,10000,5000,2000,1000,500,250]; var skamyndir = new OpenLayers.Layer.WMS.Untiled("Skámyndir", ["http://mini.loftmyndir.is/proxies/geoserver.php?"], {layers: 'loftmyndir:lm_skamyndir_flokkur', styles: '', format:'image/png', transparent: true}, {singleTile:true, 'visibility':false, 'displayInLayerSwitcher':true, 'isBaseLayer': false, scales: skamyndir_scales, unsupportedBrowsers: []}); map.addLayers([skamyndir]); var vefmyndavelar_scales = [6800000,3400000,1700000,1000000,500000,250000,100000,50000,25000,10000,5000,2000,1000,500,250]; var vefmyndavelar = new OpenLayers.Layer.WMS.Untiled("Vefmyndavélar", ["http://mini.loftmyndir.is/proxies/geoserver.php?"], {layers: 'loftmyndir:lm_vefmynd_join_vefmynd_group', styles: '', format:'image/png', transparent: true}, {singleTile:true, 'visibility':false, 'displayInLayerSwitcher':true, 'isBaseLayer': false, scales: vefmyndavelar_scales, unsupportedBrowsers: []}); map.addLayers([vefmyndavelar]); var poi_scales = [100000, 50000, 25000, 10000, 5000, 2000, 1000, 500, 250]; var poi = new OpenLayers.Layer.WMS.Untiled("POI", ["http://mini.loftmyndir.is/proxies/geoserver.php?"], {layers: 'lm_poi_ordered_scales', styles: 'lm_poi_16x', format:'image/png', transparent: true}, {singleTile:true, 'visibility':false, 'displayInLayerSwitcher':true, 'isBaseLayer': false, scales: poi_scales, unsupportedBrowsers: []}); map.addLayers([poi]); var panoLinurWMS_scales = [6800000,3400000,1700000,10000000,500000,250000,100000, 50000, 25000, 10000, 5000, 2000, 1000, 500, 250]; var panoLinurWMS = new OpenLayers.Layer.WMS.Untiled("GotumyndirWMS", ["http://mini.loftmyndir.is/proxies/geoserver.php?"], {layers: 'loftmyndir:lm_pano_vegir_birta_union', styles: '', format:'image/png', transparent: true}, {singleTile:true, 'visibility':false, 'displayInLayerSwitcher':true, 'isBaseLayer': false, scales: panoLinurWMS_scales, unsupportedBrowsers: []}); map.addLayers([panoLinurWMS]); // CONTROLS SEM EKKI ER HÆGT AÐ TAKA ÚT var scalebar = new OpenLayers.Control.ScaleBar({ maxWidth: 300, minWidth: 200, divisions: 2, // default is 2 subdivisions: 5 // default is 2 }); map.addControl(scalebar); //$j(".olControlLayerSwitcher").hide();$j(".olControlPanZoom").hide(); map.addControl(new OpenLayers.Control.PanZoomBar({'div':OpenLayers.Util.getElement('LM_panzoombar')})); doTheFunkyBar(); /*layerSwitcher = new OpenLayers.Control.LayerSwitcher(); map.addControl(layerSwitcher); layerSwitcher.minimizeControl();*/ /* Hrannar 30.05.11 layerSwitcher = new OpenLayers.Control.newLayerSwitcher(); map.addControl(layerSwitcher); layerSwitcher.minimizeControl(); */ //map.zoomToMaxExtent(); if( !isPermalink ){ //ef ekki er kallað með permalinkgenereruðu urli annars sér permalink control um þetta //upphafsstaðsetningu og zoom var lonlat = new OpenLayers.LonLat(470000 ,500000); var startZoom = 2; if ($j(window).width() > 1600) startZoom = startZoom+1; // fyrir stærri skjái map.setCenter(lonlat, startZoom ,false,false); } // CONTROLS SEM HÆGT ER AÐ TAKA ÚT markers = new OpenLayers.Layer.Markers("Merki",{'displayInLayerSwitcher':false}); map.addLayer(markers); initControls(); onAppResize(); //map.updateSize(); } function zoomToStartPosition(){ var lonlat = new OpenLayers.LonLat(470000 ,500000); map.setCenter(lonlat, 2,false,false); } function initAjax() { try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch(e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e2) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch(e3) { alert("Your browser does not support AJAX!"); } } } } /****************************** sendAJAXRequest ****/ function sendAJAXRequest(url, callback) { initAjax(); xmlHttp.onreadystatechange = callback; xmlHttp.open("GET",url,true); xmlHttp.send(null); } function sendSyncAJAXRequest(url) { initAjax(); //xmlHttp.onreadystatechange = callback; xmlHttp.open("GET",url,false); xmlHttp.send(null); return xmlHttp.responseText; //alert(xmlHttp.responseText); } /*function moveEndHandler(evt){ }*/ function setBM( targetZoomLevel ){ // map.layers[0].params.LAYERS = theBM[targetZoomLevel]; } function initSlider(){ //Texti fyrir um mini.loftmyndir.is var subHeader1 = "
Leitaðu eftir heimilisföngum, örnefnum eða áhugaverðum stöðum
"; var subHeadertxt1 = "
Þú slærð inn það leitarorð sem þú hefur í huga og mini.loftmyndir.is reynir að finna það fyrir þig hvort sem það er veitingastaður, heimilsfang, pósthús, foss, apótek eða bara fjall.
"; var subHeader2 = "
Vegvísun, finndu bestu leiðina
"; var subHeadertxt2 = "
Þú getur notað mini.loftmyndir.is til að finna leiðir milli tveggja staða með þvi að slá inn heimilisföng eða hægri-smella á kortið til að setja upphafs og endapunkta.
"; var subHeader3 = "
Deildu kortinu með vinum þínum
"; var subHeadertxt3 = "
Þegar þú hefur fundið staðinn sem þú varst að leita af getur þú deilt honum með öðrum með því að pósta honum á Facebook eða Twitter eða í tölvupósti.
"; var subHeader4 = "
Val um hefðbundið kort eða loftmynd
"; var subHeadertxt4 = "
Þú getur skipt á milli loftmynda og landakorts til að glöggva sig betur á aðstæðum. Á mini.loftmyndir.is eru loftmyndir sem ná yfir allt landið. Það skiptir því ekki máli hvort þú ert að skoða Reykjavík eða ert uppi á hálendi.
"; $j("#sliderAccordion").append("

Vegvísun

"); $j("#sliderAccordion").append("

Leitarniðurstöður

"); //$j("#sliderAccordion").append("

Þekjur

"); $j("#sliderAccordion").append("

Um mini.loftmyndir.is

" + subHeader1 + subHeadertxt1 + subHeader2 + subHeadertxt2 + subHeader3 + subHeadertxt3 + subHeader4 + subHeadertxt4 + "

"); } $j(document).ready(function() { initializeSliderClick(); // hafa spalta lokaðan í upphafi // ok ekki hafa það þannig!!!! ..eða ekki $j("a#sliderPanelBtn").click(); }); function initializeSliderClick() { $j("a#sliderPanelBtn").click(function(e) { e.preventDefault(); var slidepx=$j("div#sliderPanel").width() + 10; var duration = 250; if ( !$j("div#sliderPanel").is(':animated') ) { //if (parseInt($j("div#sliderPanel").css('marginLeft'), 10) < slidepx) { if ($j('#sliderPanelBtn').hasClass('close')) { $j("div#LM_panzoombar").animate({ left: "+=250px" }, duration ); $j("div.olControlScaleBar").animate({ left: "+=250px" }, duration ); $j(this).removeClass('close').html(''); margin = "+=" + slidepx; } else { $j(this).addClass('close').html(''); margin = "-=" + slidepx; $j("div#LM_panzoombar").animate({ left: "-=250px" }, duration ); $j("div.olControlScaleBar").animate({ left: "-=250px" }, duration ); } $j("div#sliderPanel").animate({ marginLeft: margin }, { duration: 'slow', easing: 'easeOutQuint' }); } }); var leToolBarMover = setTimeout(function(){grabZoomBarAndMove();}, 1000); } function grabZoomBarAndMove(){ //$j(".olControlScaleBar").hide(); $j(".olControlScaleBar").css("left", "270px"); //$j(".olControlScaleBar").fadeIn(); } function updateWhenLSIsUpdated(){ var pzbControl = map.getControlsBy("CLASS_NAME","OpenLayers.Control.PanZoomBar")[0]; pzbControl.destroy(); map.addControl(new OpenLayers.Control.PanZoomBar({'div':OpenLayers.Util.getElement('LM_panzoombar')})); // Hér á að tryggja að customisering á panzoombar haldist við layer breytinguna doTheFunkyBar(); if( $j("#sliderPanelBtn").hasClass("close") ){ $j(".LM_PanZoomBarContainer").css("left","0px"); $j("#LM_panzoombar").css("left","0px"); }else{ $j(".LM_PanZoomBarContainer").css("left","350px"); $j("#LM_panzoombar").css("left","350px"); } }/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ contextMenu.js.php ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ /** * Class: ContextMenu * Version: 1.00.A * URL: http://www.openjs.com/scripts/ui/context_menu/ * This library lets you create context menus(or right click menu as some call them) in your web pages. You can specify any * list element as the menu. You can also set a context for the menu - or use the document - for a global context menu. * This library supports multiple context menus for different contetxts. * Example: ContextMenu.set("menu-id"); * ContextMenu.set("menu-element-id", "context-element-id"); */ // Hrannar var rightClickMousePosX = 0; var rightClickMousePosY = 0; var ContextMenu = { "max_width" : false, // The width, "max_height": false, // and height of the current window - to make sure that the menu dont go outside that limit. "menu" : "", "context" : "", "active_menu":"", // This will have the id of the current shown menu //Functions "_init":function() { var body = document.getElementsByTagName("body")[0]; ContextMenu.max_width = body.clientWidth || body.offsetWidth; ContextMenu.max_height= body.clientHeight|| body.offsetHeight; // Hrannar: Kommentað út en veit ekki til hvers þessi event er eða hvers vegna þetta virkar // alveg eins og áður. Sennilega einhver conflict í IE8 þar sem resize eventinn er registeraður annarsstaðar //ContextMenu._addEvent(window,"resize",ContextMenu._init); }, /** * This function binds a context menu list to the right click event. * Arguments: menu_id - The ID of the ul/Li list that should be used as the Menu * context_id - [OPTIONAL] The ID of the element that would serve as the context for this menu. If none is specified, it defaults to 'document' * Example: ContextMenu.set("menu-id"); * ContextMenu.set("menu-element-id", "context-element-id"); */ "set": function(menu_id, context_id) { if(!ContextMenu.max_width) {ContextMenu._init();} //Initalize the library if its not already done. if(!context_id) {context_id = document;} else if(typeof(context_id) == "string") {context_id = document.getElementById(context_id);} ContextMenu._addEvent(context_id, "contextmenu", function(e) { ContextMenu._stopEvent(e); //We don't want the browsers Context menu appearing - so disable it. ContextMenu.menu = menu_id; ContextMenu.context = context_id; ContextMenu._handleRightClick(e); }); }, "_handleRightClick":function(e) { e=e||window.event; var left= parseInt(e.clientX); var top = parseInt(e.clientY); // Hrannar rightClickMousePosX = parseInt(e.clientX); rightClickMousePosY = parseInt(e.clientY); //We should have the width and hight of the menu to caluclate the menu position correctly. // That why I did not used visility:hidden instead of display:none to hide the menu. // If it was display:none, getting this values would be not so easy. var menu = document.getElementById(ContextMenu.menu); var width = menu.clientWidth || menu.offsetWidth ; var height= menu.clientHeight || menu.offsetHeight ; //If the context menu goes of the window, make sure it stays in. if(ContextMenu.max_width < left + width) left= left - width; if(ContextMenu.max_height< top + height) top = top - height; if(top < 0) top = 0; if(left< 0) left= 0; ContextMenu.show(ContextMenu.menu, left, top); }, /** * Show the given list as the context menu at the provided coordinates * Arguments: menu_id - The ID of the ul/Li list that should be used as the Menu * left - The x value of where the menu should appear * top - The y value. * Example: ContextMenu.show("menu-id", 200, 350); */ "show": function(menu_id, left, top) { ContextMenu.hide(); //Remove any existing menus. left=left||0;top=top||0;//Default values for top and left var menu = document.getElementById(menu_id); menu.style.top = top + "px"; menu.style.left= left + "px"; menu.style.visibility= "visible"; setTimeout("ContextMenu._addEvent(document,'click', ContextMenu.hide);", 200); ContextMenu.active_menu = menu_id; }, /** * Hides the currently displayed menu. * Example: ContextMenu.hide(); */ "hide": function() { if(!ContextMenu.active_menu) return; ContextMenu._removeEvent(document,"click", ContextMenu.hide); document.getElementById(ContextMenu.active_menu).style.visibility = "hidden"; ContextMenu.active_menu = ""; }, /////////////////////////////// Library Functions /////////////////////////////// "_stopEvent": function(e) { e=e||window.event; e.cancelBubble = true; e.returnValue = false; if(e.stopPropagation) e.stopPropagation(); if(e.preventDefault) e.preventDefault(); return false; }, "_addEvent" :function(ele,type,func,capture) { if(typeof ele == "string") ele = document.getElementById(ele); if(ele.attachEvent) {return ele.attachEvent('on' + type, func);} else if(ele.addEventListener) {ele.addEventListener(type, func, false);} else {ele['on' + type] = func;} }, "_removeEvent": function(ele, type, func) { if(typeof ele == "string") ele = document.getElementById(ele); if(ele.removeEventListener) ele.removeEventListener(type, func, false); else if(ele.detachEvent) ele.detachEvent('on' + type, func); else if(ele['on' + type]) delete ele['on' + type]; } };//// // function initDialog(){ var dialogCode = ''; $j("body").append(dialogCode); } function openDialog(titleName, dialogText, isModal, isResizable, isDraggable){ $j('#lm_dialog_content').html(dialogText); $j('#lm_dialog').dialog({ modal: isModal, resizable: isResizable, draggable: isDraggable, width: 'auto', title:titleName }); $j('#lm_dialog').dialog('open'); } function closeDialog(){ $j('#lm_dialog_content').html("Vantar texta"); $j('#lm_dialog').dialog('close'); } //// // // Nokkrar global breytur tengdar leitinni. var noResultsToDisplay = 12; // fjöldi niðurstaðna sem eru birtar í einu var sResultsOffset = 0; // Hliðrun fyrir flettingar í leitarniðurstöðum var maxPagesInList = 10; // Hve margar flettisíður eru sýndar function submitMapSearch() { log("submitMapSearch called"); $j("#sliderAccordion").accordion("activate", false); theKeyTheKey = $j('#searchInputString').val(); $j.getJSON('db/mapSearchQueryDB.php?searchType=string&searchString=' + theKeyTheKey, displayMapSearchResults); } function submitMapSearchId(theId) { log("submitMapSearch called"); if( $j("#sliderPanelBtn").hasClass("close") == false) { log("panel is open"); $j("#sliderAccordion").accordion("activate", false); } $j.getJSON('db/mapSearchQueryDB.php?searchType=id&searchString=' + theId, displayMapSearchResultsId); } //Yfirskrifað til að taka við hliðrun og fjölda niðurstaðna /*function submitMapSearch(offset, noResults) { log("submitMapSearch called with params"); $j("#sliderAccordion").accordion("activate", false); theKeyTheKey = $j('#searchInputString').val(); $j.getJSON('db/mapSearchQueryDB.php?searchString=' + theKeyTheKey + '&noResults=' + noResultsToDisplay + '&offset=' + sResultsOffset, displayMapSearchResults); }*/ function displayMapSearchResultsId(data) { jQuery.each(data, function(index,item) { //Byrjum á merkerunum markers.clearMarkers(); var size = new OpenLayers.Size(32, 32); var offset = new OpenLayers.Pixel(-(size.w / 2 ), -(size.h)); var leMarker = new OpenLayers.Marker(); // Tryggjum að hægt sé að smella á markerana með því færa þá upp í Z-index markers.setZIndex(10000); var in_options = { 'internalProjection': map.baseLayer.projection, 'externalProjection': new OpenLayers.Projection("EPSG:3057") }; var gj = new OpenLayers.Format.GeoJSON(in_options); var gjItem = gj.read(item.thegeomjson); //features.push(gj.read(item.geom)); // add marker var icon_url = 'img/teiknibola.png'; var icon = new OpenLayers.Icon(icon_url, size, offset); // Sækjum miðpunkt geometríunnar til að hægt sé að setja marker á línur og polygona var markerLonLat = gjItem[0].geometry.getBounds().getCenterLonLat(); leMarker = new OpenLayers.Marker(new OpenLayers.LonLat(markerLonLat.lon, markerLonLat.lat), icon); leMarker.markerLonLat = markerLonLat; leMarker.events.register("click", leMarker, function(evt) { zoomToXY(this.markerLonLat.lon,this.markerLonLat.lat,11) }); markers.addMarker(leMarker); // Loka slidernum ef hann er opinn if (!$j('#sliderPanelBtn').hasClass('close')) { $j("a#sliderPanelBtn").click(); } //vectors.addFeatures(gjItem); //debugger; //Það er aðeins ein leitarniðurstaða og því súmmum við niður á hana. var centerLonLat = gjItem[0].geometry.getBounds().getCenterLonLat(); var x = centerLonLat.lon; var y = centerLonLat.lat; if(item.flokkur_hlutar == 'Póstfang') zoomToXY( x , y , 11); else zoomToXY( x , y , 7); }); } function displayMapSearchResults(data) { var noPages; var displayedResults = 0; // Reiknum út fjölda blaðsíðna noPages = Math.ceil(data[0].totalresults/noResultsToDisplay); log("noPages:" + noPages); if (data.length > 10) { displayedResults = noResultsToDisplay; //noPages = 1; } else { displayedResults = data.length; } // Reiknum út fjölda blaðsíðna var firstPageInList = 1; // Hér skoðum við hvort og niðurstöður eru fleiri en hámarksniðurstöður til birtingar // og bætum þá inn í tólum til að fletta niðurstöðunum. var htmlString = ""; if ( data[0].totalresults < noResultsToDisplay ) { // Niðurstöður eru færri en hámarks fjöldi niðurstaðna í lista þ.a. við getum haft þetta einfalt htmlString += '
Niðurstöður 1-' + displayedResults + ' (af ' + data[0].totalresults + ')
'; } else { // find out witch page we're on var currentPage = ((sResultsOffset+noResultsToDisplay)/noResultsToDisplay); log("currentpage:" + currentPage); //Set the first page in list according to what page we are on var firstResultNoInList = (sResultsOffset*noResultsToDisplay)+1; var lastResultNoInList = (sResultsOffset*noResultsToDisplay)+noResultsToDisplay; if (currentPage == noPages) lastResultNoInList = data[0].totalresults; // Síðasta síðan er ekki full var hreinsaTakki = ''; htmlString += '
Niðurstöður ' + firstResultNoInList + '-' + lastResultNoInList + ' (af ' + data[0].totalresults + ') | ' + hreinsaTakki; } htmlString += '

'; var features = []; // To hold return features (markers) var in_options = { 'internalProjection': map.baseLayer.projection, 'externalProjection': new OpenLayers.Projection("EPSG:3057") }; jQuery.each(data, function(index,item){ // finnum flokkinn var resultType = "nadazippiddy"; var addressTxt = ""; var street = ""; if(item.street) street = item.street + ", "; var zip = ""; if(item.zip) zip = item.zip + " "; var city = ""; if(item.city) city = item.city; switch(item.type) { case "poi": resultType = item.poi_theme_id; addressTxt = street + zip + city; break; case "postfong": resultType = "postfong"; addressTxt = zip + item.city; break; case "ornefni_punkt": resultType = "ornefni_punkt" addressTxt = city; break; case "ornefni_lin": resultType = "ornefni_lin" addressTxt = city; break; default: //code to be executed if n is different from case 1 and 2 } // Create a feature from each search item var gj = new OpenLayers.Format.GeoJSON(in_options); features.push(gj.read(item.the_geomjson)); var centerLonLat = features[index][0].geometry.getBounds().getCenterLonLat(); var x = centerLonLat.lon; var y = centerLonLat.lat; //var x = features[index][0].geometry.x; //var y = features[index][0].geometry.y; htmlString += '
'; htmlString += '
'; htmlString += '
'; htmlString += '
'; if(resultType == "postfong") htmlString += ''; else htmlString += ''; htmlString += '
' + addressTxt; /* Tekið út þar sem upplýsingarnar eiga frekar heima í hoverbólu if (item.type == 'poi') { if(item.phone) { htmlString += '
sími: ' + item.phone; } if(item.webpage) { htmlString += ' ' + item.webpage + ''; } }*/ htmlString += '
'; htmlString += '
'; var typeToken; switch (item.type) { case ("postfong"): typeToken = "-P-"; break; case ("ornefni_punkt"): typeToken = "-OP-"; break; case ("ornefni_lin"): typeToken = "-OL-"; break; case ("poi"): typeToken = "-POI-"; break; default: typeToken = "-DOA-"; } // Here's where we piece together the HTML //htmlString += typeToken + " " + item.searchkeyword + "
"; }); if ( data[0].totalresults > noResultsToDisplay ) { htmlString +='
'; //if(displayedResults < ) if (currentPage > 1) { if (currentPage > 2) { htmlString += ' << '; } htmlString += '   <   '; } for(i=1;i<=noPages;i++) { if( i == currentPage) htmlString += '' + i + ' '; else if(i < 10) htmlString += '' +i + ' '; if(noPages > 10) { // Do something to handle all these pages } } htmlString += '   > '; htmlString += '   >>
'; } // Sendum niðurstöðurnar í spaltann vinstramegin $j("#searchResultPanel").html(htmlString); // opna spalta //$j('#suggestions').hide(); //$j("#sliderAccordion").accordion("activate", false); $j("#sliderAccordion").accordion("activate", 1); var bounds; if(features) { if(features.constructor != Array) { features = [features]; } //Byrjum á merkerunum markers.clearMarkers(); var size = new OpenLayers.Size(24, 27); var offset = new OpenLayers.Pixel(-(size.w / 2 ), -(size.h)); // Setti sprite-inn í ótímabundna frystingu þar sem útfærslan virtist tímafrek //var icon = new OpenLayers.Icon('img/routing/places_sprite_ovi.png', size, offset); var leMarker = new OpenLayers.Marker(); // Tryggjum að hægt sé að smella á markerana með því færa þá upp í Z-index markers.setZIndex(10000); for(var i=0; i 1) { map.zoomToExtent(bounds); if(map.getZoom() > 10) map.zoomTo(10); } else { //Það er aðeins ein leitarniðurstaða og því súmmum við niður á hana. var centerLonLat = features[0][0].geometry.getBounds().getCenterLonLat(); var x = centerLonLat.lon; var y = centerLonLat.lat; //debugger; if(data[0].type == "postfong") zoomToXY( x , y , 11); else zoomToXY( x , y , 7); } } else { alert('Villa kom upp. ID virkar ekki'); } } function clearSearchResults() { $j("#searchResultPanel").html(""); markers.clearMarkers(); } function getsResultIconLabel(type) { switch (type) { case ("postfong"): return "Póstfang"; break; case ("ornefni_punkt"): return "Örnefni"; break; case ("ornefni_lin"): return "Örnefni"; break; case ("poi"): return "Áhugaverður staður"; break; default: return ""; } } function sResultsJumpToPage(pageNo) { log("go to page #" + pageNo); // Calculate offset from maxresultsperpage and pageNo sResultsOffset = ((pageNo-1)*noResultsToDisplay); theKeyTheKey = $j('#searchInputString').val(); $j.getJSON('db/mapSearchQueryDB.php?searchString=' + theKeyTheKey + '&noResults=' + noResultsToDisplay + '&offset=' + sResultsOffset, displayMapSearchResults); $j("#sliderAccordion").accordion("activate", false); } function initSearch() { $j('#searchInputString').focus(); } function addSearchMarker(x, y, number) { //Add marker var size = new OpenLayers.Size(32,32); var offset = new OpenLayers.Pixel(-(size.w/2-8), -size.h); var icon = new OpenLayers.Icon('img/teiknibola.png',size,offset); var leMarker = new OpenLayers.Marker( new OpenLayers.LonLat(x,y),icon ); markers.addMarker(leMarker); } function zoomToXY(Lon, Lat, zoomLevel) { var lonlat = new OpenLayers.LonLat( Number(Lon), Number(Lat) ); map.setCenter( lonlat,zoomLevel); } // Slider code begins ------------------------------- function initAccordion(){ $j("#sliderAccordion").accordion({ fillSpace: true, animated:'easeInOutQuad', duration:'fast', collapsible: true }); } // // Global af því að það er svo gaman! var headerButtonArray = new Array(); // búum tol JS object til að halda utan um proprty fyrir hnappa í haus function headerButtonObj(name, icon, icon_hover, icon_selected, captionICE, captionENG, action, offAction){ this.name = name; this.icon = icon; this.icon_hover = icon_hover; this.icon_selected = icon_selected; this.captionICE = captionICE; this.captionENG = captionENG; this.action = action; this.offAction = offAction; this.selected = false; //Keeps track og button state } function initHeaderButtons() { // Do something, just.... //Let's construct a row of buttons // Reads headerButtons.xml to find out what buttons are to be displayed var buttonsHTML = ""; var HBobj = new headerButtonObj('Streetview','img/header_img/streetview_icon.png','img/header_img/streetview_icon_hover.png','img/header_img/streetview_icon_selected.png','Götusýn','Streetview','doStreetview();','doStreetview();'); headerButtonArray['Streetview'] = HBobj; buttonsHTML += '
Götusýn
';var HBobj = new headerButtonObj('Measure','img/header_img/maela_icon.png','img/header_img/maela_icon_hover.png','img/header_img/maela_icon_hover.png','Mæla','Measure','doMeasure();','doMeasure();'); headerButtonArray['Measure'] = HBobj; buttonsHTML += ' | '; buttonsHTML += '
Mæla
';var HBobj = new headerButtonObj('Print','img/header_img/prenta_icon.png','img/header_img/prenta_icon_hover.png','img/header_img/prenta_icon_hover.png','Prenta','Print','/*doPrint();*/LM_createPrintMap();pressHeaderButton("Print");',''); headerButtonArray['Print'] = HBobj; buttonsHTML += ' | '; buttonsHTML += '
Prenta
';var HBobj = new headerButtonObj('Share','img/header_img/deila_icon.png','img/header_img/deila_icon_hover.png','img/header_img/deila_icon_hover.png','Deila','Share','doShare();',''); headerButtonArray['Share'] = HBobj; buttonsHTML += ' | '; buttonsHTML += '
Deila
'; $j('#headerButtons').html(buttonsHTML); // TODO: Þarf að vera annarsstaðar initDrag(); } function flickHeaderButton(buttonID) { var imageElement = "#headerBtn" + buttonID; var DivElement = "#headerBtnDiv" + buttonID; if($j(imageElement).attr("src") == headerButtonArray[buttonID].icon_hover) { // slökkvum á takkanum $j(imageElement).attr("src", headerButtonArray[buttonID].icon); $j(DivElement).removeClass('headerBtnTxtON'); } else { // Kveikjum á takkanum $j(imageElement).attr("src", headerButtonArray[buttonID].icon_hover); $j(DivElement).addClass('headerBtnTxtON'); } } function headerButtonON(buttonID) { var imageElement = "#headerBtn" + buttonID; var DivElement = "#headerBtnDiv" + buttonID; if($j(imageElement).attr("src") == headerButtonArray[buttonID].icon_hover) { return; //þarf ekki að kveikja } // Kveikjum á takkanum $j(imageElement).attr("src", headerButtonArray[buttonID].icon_hover); $j(DivElement).addClass('headerBtnTxtON'); } function headerButtonOFF(buttonID) { var imageElement = "#headerBtn" + buttonID; var DivElement = "#headerBtnDiv" + buttonID; // slökkvum á takkanum $j(imageElement).attr("src", headerButtonArray[buttonID].icon); $j(DivElement).removeClass('headerBtnTxtON'); } function pressHeaderButton(buttonID) { var imageElement = "#headerBtn" + buttonID; var DivElement = "#headerBtnDiv" + buttonID; if( headerButtonArray[buttonID].selected == false ) { // Hreinsum öll mouseover og mouseout attribjút af //fyrst textinn $j(DivElement).removeAttr('onMouseOver'); $j(DivElement).removeAttr('onMouseOut'); $j(DivElement).removeClass('headerBtnTxtON'); // svo íkonið $j(imageElement).removeAttr('onMouseOver'); $j(imageElement).removeAttr('onMouseOut'); // Flöggum takkan í selected stöðu headerButtonArray[buttonID].selected = true; // Setjum inn selected ikon myndina $j(imageElement).attr("src", headerButtonArray[buttonID].icon_selected); // Setjum inn selected class á textann $j(DivElement).addClass('headerBtnTxtSelected'); // keyrum takka skriptið eval(headerButtonArray[buttonID].action); } else { //debugger; // Tökum selected flaggið af headerButtonArray[buttonID].selected = false; // Tökum selected classann af $j(DivElement).removeClass('headerBtnTxtSelected'); // action fyrir mouseOut var mOutVal = "javascript:headerButtonOFF('" + buttonID + "')"; // action fyrir mouseOver var mOverVal = "javascript:headerButtonON('" + buttonID + "')"; // action sett á mouseOver $j(DivElement).attr('onMouseOver', mOverVal); $j(imageElement).attr('onMouseOver', mOverVal); // action sett á mouseOut $j(DivElement).attr('onMouseOut', mOutVal); $j(imageElement).attr('onMouseOut', mOutVal); // standard icon sett inn $j(imageElement).attr("src", headerButtonArray[buttonID].icon); eval(headerButtonArray[buttonID].offAction); } /* if($j(imageElement).attr("src") != headerButtonArray[buttonID].icon_selected) { $j(imageElement).attr("src", headerButtonArray[buttonID].icon_selected); $j(DivElement).addClass('headerBtnTxtSelected'); eval(headerButtonArray[buttonID].action); } else { //flickHeaderButton(buttonID); $j(imageElement).attr("src", headerButtonArray[buttonID].icon); $j(DivElement).removeClass('headerBtnTxtSelected'); }*/ } function headerButtonClear(buttonID){ var imageElement = "#headerBtn" + buttonID; var DivElement = "#headerBtnDiv" + buttonID; //if( headerButtonArray[buttonID].selected == true ) //{ // Tökum selected flaggið af headerButtonArray[buttonID].selected = false; // Tökum selected classann af $j(DivElement).removeClass('headerBtnTxtSelected'); // action fyrir mouseOut var mOutVal = "javascript:headerButtonOFF('" + buttonID + "')"; // action fyrir mouseOver var mOverVal = "javascript:headerButtonON('" + buttonID + "')"; // action sett á mouseOver $j(DivElement).attr('onMouseOver', mOverVal); $j(imageElement).attr('onMouseOver', mOverVal); // action sett á mouseOut $j(DivElement).attr('onMouseOut', mOutVal); $j(imageElement).attr('onMouseOut', mOutVal); // standard icon sett inn $j(imageElement).attr("src", headerButtonArray[buttonID].icon); // } }function initDropdownBox(){ var sHtml = ""; sHtml += "
"; sHtml += "
"; sHtml += "
"; sHtml += "
"; sHtml += ""; sHtml += "
"; sHtml += ""; sHtml += "
"; sHtml += ""; sHtml += "
"; sHtml += "
"; $j("body").append(sHtml); $j(document).ready(function() { $j("fieldset#share_menu").mouseup(function() { return false; }); $j(document).mouseup(function(e) { if( $j(e.target).is("#headerBtnDivShare") || $j(e.target).is("#headerBtnShare") ){ if( $j("fieldset#share_menu").hasClass('menu-open') ) { headerButtonClear("Share"); } }else{ if( $j("fieldset#share_menu").hasClass('menu-open') ) { headerButtonClear("Share"); $j("fieldset#share_menu").toggle(); $j("fieldset#share_menu").toggleClass("menu-open"); } } }); }); } function doShare(){ $j("#sendMailDescriptDiv").remove(); $j("#share_menu").prepend(getPermaText()); if( $j("fieldset#share_menu").hasClass('menu-open') ) { headerButtonClear("Share"); } $j("fieldset#share_menu").toggle(); $j("fieldset#share_menu").toggleClass("menu-open"); //addthis_share.email_vars.permalinkurinn = $j("#inputLinkEmail").val(); /*$j("#facebook_share").attr("href", "http://platform.twitter.com/widgets/tweet_button.html?href=" + $j("#inputLinkEmail").val() ); $j("#twitter_share").attr("href", "http://platform.twitter.com/widgets/tweet_button.html?text=mini.loftmyndir.is&url=" + $j("#inputLinkEmail").val() );*/ var linkur = sendSyncAJAXRequest('proxies/tinyUrl_proxy.php?longURL=' + escape( viewLink.div.childNodes[0].toString().replace("#","") ) ); var linkur_text = "Hæ, mig langar að deila með þér þessu korti af mini.loftmyndir.is - Loftmyndir ehf. Vefslóð(stytt):<" + linkur + ">"; /*strHTML = "
"; strHTML += "
Hér getur þú sent slóð á kortið á tölvupóstfang
"; strHTML += "
Til:
Aðskiljið netföng með, eða ;     (t.d. abc@gmail.com; def@gmail.com)
"; strHTML += "
Frá:
Ath. þennan reit verður að fylla út
Senda afrit á netfangið mitt
"; //strHTML += "
Skilaboð:
"; strHTML += "
Skilaboð:
"; strHTML += "
"; strHTML += "
"; $j("#modalpopup").html(strHTML);*/ // getEmailText $j("#modalpopup").html(getEmailText(linkur_text)); doModal($j('#shareSendIcon a')); doModal($j('#shareSendText a')); } // //Code to check if standard layerswitcher is needed // mini.loftmyndir.is style layerswitcher implementatione var displayLS = true; // Global var - to hold LS state function initCustomLayerSwitcher() { var LSHTML = ""; LSHTML += "
"; LSHTML += ""; LSHTML += "
"; LSHTML += "
"; LSHTML += "
Skámyndir

"; LSHTML += "
Vefmyndavélar

"; LSHTML += "
Áhugaverðir staðir
"; //LSHTML += "
"; //LSHTML += "
Færð á vegum
"; LSHTML += "
"; $j('body').append(LSHTML); /*$j('#LSListContainerDiv').mouseleave(function() { hideLS(); });*/ } function pressLSButton() { if(displayLS) { displayLS = false; $j('#LSListContainerDiv').fadeOut("fast"); } else { displayLS = true; $j('#LSListContainerDiv').fadeIn("fast"); } } function LSButtonHover() { //$j('#LSListContainerDiv').fadeIn("fast"); } function LSButtonOFF() { //$j('#LSListContainerDiv').fadeOut("fast"); //alert("bújah!"); } function hideLS(evt) { $j('#LSListContainerDiv').fadeOut("fast"); } function showLS() { $j('#LSListContainerDiv').show(); }var isOverviewMapOpen = true; function initOverviewMapStatic() { var graphicoptions = {numZoomLevels: 1, displayInLayerSwitcher:false}; var static_overview_graphic_image = new OpenLayers.Layer.Image( 'iceland', 'http://g.map.is/img/island_180x90.jpg', new OpenLayers.Bounds(143000,255000,866000,735000), new OpenLayers.Size(180, 90), graphicoptions ); map.addLayers([static_overview_graphic_image]); var ovgraphic = static_overview_graphic_image.clone(); olControlOverviewMap = new OpenLayers.Control.OverviewMap({ maximized: isOverviewMapOpen, mapOptions:{ theme: null,//'css/overviewstyle.css', maxExtent: new OpenLayers.Bounds(143000,255000,866000,735000), restrictedExtent: new OpenLayers.Bounds(143000,255000,866000,735000), units:'m', maxResolution: 599.72189837239716, numZoomLevels: 1, projection:"EPSG:3057" }, layers:[ovgraphic] /*, // þarf ekki að nota minRatio:64, maxRatio:128 */ }); map.addControl(olControlOverviewMap); // verður að activata til að keyra upp custom config olControlOverviewMap.activate(); // Hafa default opið //$j(".olControlOverviewMapElement").show(); //$j(".olControlAttribution").css( "right", "210px"); //.css( "bottom", "3px"); if( isOverviewMapOpen ) { $j(".olControlOverviewMapElement").show(); $j(".olControlOverviewMapMaximizeButton").hide(); $j(".olControlOverviewMapMinimizeButton").show(); $j(".olControlAttribution").css( "right", "210px"); //.css( "bottom", "3px"); } $j(document).ready(function() { $j(".olControlOverviewMapMinimizeButton").mouseup(function() { $j(".olControlAttribution").css( "right", "20px"); //.css( "bottom", "3px"); }); $j(".olControlOverviewMapMaximizeButton").mouseup(function() { $j(".olControlAttribution").css( "right", "210px"); //.css( "bottom", "3px"); }); }); } var measureControls; function initMeasure() { map.addControl(new OpenLayers.Control.MousePosition()); // style the sketch fancy var sketchSymbolizers = { "Point": { pointRadius: 4, graphicName: "square", fillColor: "white", fillOpacity: 1, strokeWidth: 1, strokeOpacity: 1, strokeColor: "#333333" }, "Line": { strokeWidth: 2.5, strokeOpacity: 1, strokeColor: "#ff8600"/*, strokeDashstyle: "dash"*/ }, "Polygon": { strokeWidth: 2, strokeOpacity: 1, strokeColor: "#666666", fillColor: "white", fillOpacity: 0.3 } }; var style = new OpenLayers.Style(); style.addRules([ new OpenLayers.Rule({symbolizer: sketchSymbolizers}) ]); var styleMap = new OpenLayers.StyleMap({"default": style}); var vectors_measure = new OpenLayers.Layer.Vector("Maelingar", {style: styleMap, 'displayInLayerSwitcher':false}); map.addLayer(vectors_measure); // allow testing of specific renderers via "?renderer=Canvas", etc var renderer = OpenLayers.Util.getParameters(window.location.href).renderer; renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers; measureControls = { line: new OpenLayers.Control.Measure( OpenLayers.Handler.Path, { showDistances: true, persist: true, geodesic: false, partialDelay: 300, handlerOptions: { layerOptions: { renderers: renderer, styleMap: styleMap } }, callbacks: { create: function() { this.textNodes = []; // býr til fylki til að halda utan um vegalengdir á leggjunum //getLayerByName("Maelingar").destroyFeatures(); //debugger; //$j("#measurementResults").html(""); }, done: function(line) { //log("total length" + line.getLength() ); // Flag to know if previous measurement was done // Used to earase measurement labels this.doneMeasure = true; //this.textNodes = []; //measureControls["line"].deactivate(); //measurementDone(line); if (line.getLength() >= 1000) { var linelength = (line.getLength()/1000); $j("#measurementResults").html(linelength.toFixed(2) + " km"); } else { var linelength = (line.getLength()); $j("#measurementResults").html(linelength.toFixed(0) + " m"); } //Place the result div var lonlatino = new OpenLayers.LonLat(line.components[line.components.length -1].x,line.components[line.components.length -1].y); var pixpix = new OpenLayers.Pixel; pixpix = map.getPixelFromLonLat( lonlatino ); $j("#measurementResults").css("top", (pixpix.y + $j("#map").position().top - 7) ); $j("#measurementResults").css("left", (pixpix.x + $j("#map").position().left + 5) ); if(map.layers[findActiveBaseLayer()].layername == "myndkort") { $j("#measurementResults").css("color", "#FFFFFF"); } else { $j("#measurementResults").css("color", "#333333"); } $j("#measurementResults").show(); //alert( linelength.toFixed(2) + " km"); }, modify: function(point, line) { /* modify begins */ // Færum Mælinga layerinn þ.a. textinn lendi ofan á línunni // Þyrfti helst að vera kallað í þetta þegar teiknikotrólið // er í init en fann það ekki. map.raiseLayer(getLayerByName("Maelingar"), 3); // introduce a delay for IE browsers so they will // draw the first segment if (!this.showDistances) { return; } var len = line.geometry.components.length; var from = line.geometry.components[len - 2]; var to = line.geometry.components[len - 1]; var ls = new OpenLayers.Geometry.LineString([ from,to]); var dist = this.getBestLength(ls); if (!dist[0]) { return; } var total = this.getBestLength(line.geometry); var label; if (dist[1] == 'm') { label = dist[0].toFixed(0)+dist[1]; } else { label = dist[0].toFixed(1)+dist[1]; } var textNode = this.textNodes[len-2] || null; if (textNode && !textNode.layer) { this.textNodes.pop(); textNode = null; } // Choose color for labeling. White for Myndtkort and black for Kort // Hrannar 11.10.2011 if(map.layers[findActiveBaseLayer()].layername == "myndkort") { var measureLabelColor = "#FFFFFF"; } else { var measureLabelColor = "#333333"; } if (!textNode) { var c = ls.getCentroid(); textNode = new OpenLayers.Feature.Vector( new OpenLayers.Geometry.Point(c.x,c.y), {}, { label: '', fontColor: measureLabelColor, fontSize: "10px", fontFamily: "Arial", fontWeight: "bold", labelAlign: "c", labelXOffset: 0, labelYOffset: 0, graphicZIndex: 100000 }); this.textNodes.push(textNode); if( !this.handler.control.handler.evt.shiftKey ) { // Hrannar // Here we check if there was a measurement before // and clean measurement labels (for the legs) if(this.doneMeasure == true) { getLayerByName("Maelingar").destroyFeatures(); this.doneMeasure = false; $j("#measurementResults").html(""); $j("#measurementResults").hide(); } getLayerByName("Maelingar").addFeatures([textNode]); } } textNode.geometry.x = (from.x+to.x)/2; textNode.geometry.y = (from.y+to.y)/2; textNode.style.label = label; if( !this.handler.control.handler.evt.shiftKey ){ textNode.layer.drawFeature(textNode); } this.events.triggerEvent('measuredynamic', { measure: dist[0], total: total[0], units: dist[1], order: 1, geometry: ls }); /* modify ends*/ } } } ), polygon: new OpenLayers.Control.Measure( OpenLayers.Handler.Polygon, { persist: true, handlerOptions: { layerOptions: { renderers: renderer, styleMap: styleMap } } } ) }; var control; for(var key in measureControls) { control = measureControls[key]; control.events.on({ "measure": handleMeasurements, "measurepartial": handleMeasurements }); map.addControl(control); } // Add div to display results var mDiv = '
'; $j("body").append(mDiv); $j("#measurementResults").hide(); } function handleMeasurements(event) { var geometry = event.geometry; var units = event.units; var order = event.order; var measure = event.measure; //var element = document.getElementById('output'); var out = ""; if(order == 1) { out += "measure: " + measure.toFixed(3) + " " + units; } else { out += "measure: " + measure.toFixed(3) + " " + units + "2"; } //$j("#measurementResults").show(); //element.innerHTML = out; } function doMeasure() { // new measurement -> hide last result $j("#measurementResults").html(""); $j("#measurementResults").hide(); //debugger; // Hrannar if(measureControls.line.active) { measureControls.line.deactivate(); getLayerByName('Maelingar').destroyFeatures(); } else { measureControls.line.activate(); } // activate Measure control /*var type = "line"; //line hardcoded for now for(key in measureControls) { var control = measureControls[key]; if(type == key) control.activate(); else control.deactivate(); } */ } //