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(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 = '
';
dialogCode += '';
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 += '
';
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 += '
' + 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 += '