// map markers var map; var markers = []; // main markers markers[1] = []; markers[2] = []; markers[3] = []; markers[4] = []; markers[5] = []; markers[6] = []; markers[7] = []; markers[8] = []; var cur_type = new Array(); cur_type = {0:false,1:false,2:false,3:false,4:false,5:false,6:false}; var markers_list = []; var markers_source = []; var markers_id = []; var markers_url = []; var markers_xy = []; var markers_pcs = []; var markers_title = []; var markers_text = []; var topRight; var bottomLeft; var scale; var detailShow = false; var marker_box_x = 12; // default right margin of overlay from marker var image1,image2; // markers in arrays markers_source[1] = [49.8862,15.1714,7]; markers_pcs[1] = 'pcs/loga/logo-7.png'; markers_title[1] = 'Liberec / Máchova 603/62, 460 07 Liberec'; markers_id[1] = '64'; markers_url[1] = 'x-18'; markers_source[2] = [48.8227,14.3293,8]; markers_pcs[2] = 'pcs/loga/logo-8.png'; markers_title[2] = 'Český Krumlov / Budějovická 179, 381 01 Český Krumlov'; markers_id[2] = '63'; markers_url[2] = 'cesky-krumlov'; markers_source[3] = [49.2687,13.9191,8]; markers_pcs[3] = 'pcs/loga/logo-8.png'; markers_title[3] = 'Strakonice / Písecká 285, 386 01 Strakonice'; markers_id[3] = '62'; markers_url[3] = 'strakonice'; markers_source[4] = [49.4048,14.6873,8]; markers_pcs[4] = 'pcs/loga/logo-8.png'; markers_title[4] = 'Tábor / Měšická 1724, 390 02 Tábor'; markers_id[4] = '61'; markers_url[4] = 'tabor'; markers_source[5] = [49.3156,14.1362,8]; markers_pcs[5] = 'pcs/loga/logo-8.png'; markers_title[5] = 'Písek / Pražská 286, Písek'; markers_id[5] = '60'; markers_url[5] = 'aspera-pisek'; markers_source[6] = [49.4097,15.2207,8]; markers_pcs[6] = 'pcs/loga/logo-8.png'; markers_title[6] = 'Pelhřimov / K Silu 1154, Pelhřimov'; markers_id[6] = '59'; markers_url[6] = 'aspera-pelhrimov'; markers_source[7] = [49.8305,18.2449,8]; markers_pcs[7] = 'pcs/loga/logo-8.png'; markers_title[7] = 'Ostrava / Novoveská 2065/5f Ostrava'; markers_id[7] = '58'; markers_url[7] = 'aspera-ostrava'; markers_source[8] = [50.4992,13.6307,8]; markers_pcs[8] = 'pcs/loga/logo-8.png'; markers_title[8] = 'Most / Tyršova 1172, Most '; markers_id[8] = '57'; markers_url[8] = 'aspera-most'; markers_source[9] = [50.4111,14.9292,8]; markers_pcs[9] = 'pcs/loga/logo-8.png'; markers_title[9] = 'Mladá Boleslav / Jičínská 414, Mladá Boleslav'; markers_id[9] = '56'; markers_url[9] = 'aspera-mlada-boleslav'; markers_source[10] = [50.7603,15.0274,8]; markers_pcs[10] = 'pcs/loga/logo-8.png'; markers_title[10] = 'Liberec / Švermova 268/76, Liberec'; markers_id[10] = '52'; markers_url[10] = 'aspera-liberec'; markers_source[11] = [49.4277,15.5967,8]; markers_pcs[11] = 'pcs/loga/logo-8.png'; markers_title[11] = 'Jihlava / U Rybníka 10, Jihlava'; markers_id[11] = '55'; markers_url[11] = 'aspera-jihlava'; markers_source[12] = [49.6704,18.333,8]; markers_pcs[12] = 'pcs/loga/logo-8.png'; markers_title[12] = 'Frýdek-Místek / Příborská 1585, Frýdek-Místek'; markers_id[12] = '54'; markers_url[12] = 'aspera-frydek-mistek'; markers_source[13] = [49.7717,14.6806,8]; markers_pcs[13] = 'pcs/loga/logo-8.png'; markers_title[13] = 'Benešov u Prahy / Křižíkova 766, Benešov u Prahy'; markers_id[13] = '53'; markers_url[13] = 'aspera-benesov-u-prahy'; markers_source[14] = [48.9613,14.4838,8]; markers_pcs[14] = 'pcs/loga/logo-8.png'; markers_title[14] = 'Aspera centrála / Křižíkova 734, České Budějovice'; markers_id[14] = '51'; markers_url[14] = 'aspera-centrala'; markers_source[15] = [48.1466,17.8665,6]; markers_pcs[15] = 'pcs/loga/logo-6.png'; markers_title[15] = 'ELRON Šaľa / Hlavná 28/62, 927 01 Šaľa '; markers_id[15] = '50'; markers_url[15] = 'elron-sala'; markers_source[16] = [49.3509,16.0025,7]; markers_pcs[16] = 'pcs/loga/logo-7.png'; markers_title[16] = 'Velké Meziříčí - KAMAT IMAO / Třebíčská 774, 594 01 Velké Meziříčí'; markers_id[16] = '49'; markers_url[16] = 'kamat-imao'; markers_source[17] = [50.2461,14.3275,3]; markers_pcs[17] = 'pcs/loga/logo-3.png'; markers_title[17] = 'Kralupy nad Vltavou / V Pískovně 2054, 278 01 Kralupy n. V.'; markers_id[17] = '45'; markers_url[17] = 'kralupy-nad-vltavou'; markers_source[18] = [50.1703,12.6488,2]; markers_pcs[18] = 'pcs/loga/logo-2.png'; markers_title[18] = 'Sokolov / Vítězná 2045, 356 01'; markers_id[18] = '20'; markers_url[18] = 'sokolov'; markers_source[19] = [50.3559,13.7945,2]; markers_pcs[19] = 'pcs/loga/logo-2.png'; markers_title[19] = 'Louny / Na Valích 2906 (vchod z ulice Osvoboditelů), 440 01'; markers_id[19] = '18'; markers_url[19] = 'louny'; markers_source[20] = [49.7367,13.3267,2]; markers_pcs[20] = 'pcs/loga/logo-2.png'; markers_title[20] = 'Plzeň / Domažlická 172b, 318 00'; markers_id[20] = '17'; markers_url[20] = 'plzen'; markers_source[21] = [50.7777,14.2129,2]; markers_pcs[21] = 'pcs/loga/logo-2.png'; markers_title[21] = 'Děčín – U Plovárny / U Plovárny 1266/7, 405 02'; markers_id[21] = '44'; markers_url[21] = 'decin2'; markers_source[22] = [49.7252,13.4099,7]; markers_pcs[22] = 'pcs/loga/logo-7.png'; markers_title[22] = 'Plzeň / Skladová 2438/6, 326 00 Plzeň - Slovany'; markers_id[22] = '43'; markers_url[22] = 'plzen-2'; markers_source[23] = [49.8206,18.1782,7]; markers_pcs[23] = 'pcs/loga/logo-7.png'; markers_title[23] = 'Ostrava / Nad Porubkou 2343, 708 00 Ostrava - Poruba'; markers_id[23] = '42'; markers_url[23] = 'ostrava-1'; markers_source[24] = [50.2073,15.8035,7]; markers_pcs[24] = 'pcs/loga/logo-7.png'; markers_title[24] = 'Hradec Králové / Pražská třída 880/11a, 500 04 Hradec Králové - Kukleny'; markers_id[24] = '41'; markers_url[24] = 'kamat-hradec-kralove'; markers_source[25] = [49.1635,16.6268,7]; markers_pcs[25] = 'pcs/loga/logo-7.png'; markers_title[25] = 'Brno / Sklenářská 716, Horní Heršpice, 619 00 Brno'; markers_id[25] = '40'; markers_url[25] = 'brno-1'; markers_source[26] = [50.1228,14.5841,7]; markers_pcs[26] = 'pcs/loga/logo-7.png'; markers_title[26] = 'Praha / K Cihelně 129, 190 15 Praha 9 - Satalice'; markers_id[26] = '39'; markers_url[26] = 'praha'; markers_source[27] = [50.3533,16.1324,7]; markers_pcs[27] = 'pcs/loga/logo-7.png'; markers_title[27] = 'Nové Město nad Metují / Kpt. Jaroše 470, 549 01 Nové Město nad Metují – Krčín'; markers_id[27] = '38'; markers_url[27] = 'nove-mesto-nad-metuji'; markers_source[28] = [48.1704,17.1554,6]; markers_pcs[28] = 'pcs/loga/logo-6.png'; markers_title[28] = 'ELRON Bratislava / Rožňavská 1, 831 04 Bratislava'; markers_id[28] = '35'; markers_url[28] = 'elron-bratislava'; markers_source[29] = [49.7256,13.4053,5]; markers_pcs[29] = 'pcs/loga/logo-5.png'; markers_title[29] = 'Plzeň / Slovanská alej 1960/24, 326 00 Plzeň'; markers_id[29] = '34'; markers_url[29] = 'dabok-plzen'; markers_source[30] = [50.0702,14.3581,5]; markers_pcs[30] = 'pcs/loga/logo-5.png'; markers_title[30] = 'Praha / Ke Kotlářce 292/8, 150 00 Praha 5'; markers_id[30] = '33'; markers_url[30] = 'dabok-praha'; markers_source[31] = [50.1776,14.654,3]; markers_pcs[31] = 'pcs/loga/logo-3.png'; markers_title[31] = 'Brandýs nad Labem / Pražská 1012/65, 250 01 Brandýs n. L.'; markers_id[31] = '31'; markers_url[31] = 'brandys-nad-labem'; markers_source[32] = [50.1002,14.4522,3]; markers_pcs[32] = 'pcs/loga/logo-3.png'; markers_title[32] = 'Praha 7 / Jateční 4, 170 00 Praha 7'; markers_id[32] = '30'; markers_url[32] = 'praha-7'; markers_source[33] = [49.1779,16.6771,4]; markers_pcs[33] = 'pcs/loga/logo-4.png'; markers_title[33] = 'Brno / Řípská 1153/20a, 627 00, Brno'; markers_id[33] = '27'; markers_url[33] = 'brno'; markers_source[34] = [48.8527,16.0719,4]; markers_pcs[34] = 'pcs/loga/logo-4.png'; markers_title[34] = 'Znojmo / Dobšická 3697/6, 669 02, Znojmo'; markers_id[34] = '26'; markers_url[34] = 'znojmo'; markers_source[35] = [49.3509,18.2433,4]; markers_pcs[35] = 'pcs/loga/logo-4.png'; markers_title[35] = 'Karolinka / Vsetínská 415, 756 05 Karolinka'; markers_id[35] = '25'; markers_url[35] = 'karolinka'; markers_source[36] = [49.3416,17.9774,4]; markers_pcs[36] = 'pcs/loga/logo-4.png'; markers_title[36] = 'Vsetín / Potůčky 1677, 755 01'; markers_id[36] = '24'; markers_url[36] = 'vsetin'; markers_source[37] = [49.8495,18.2812,4]; markers_pcs[37] = 'pcs/loga/logo-4.png'; markers_title[37] = 'Ostrava / Sokolská třída 101, 702 00'; markers_id[37] = '23'; markers_url[37] = 'ostrava'; markers_source[38] = [49.5903,17.2546,4]; markers_pcs[38] = 'pcs/loga/logo-4.png'; markers_title[38] = 'Olomouc – prodejna / Kateřinská 15, 772 00'; markers_id[38] = '22'; markers_url[38] = 'olomouc-prodejna'; markers_source[39] = [49.5861,17.273,4]; markers_pcs[39] = 'pcs/loga/logo-4.png'; markers_title[39] = 'Olomouc / Tovární 45, 772 00'; markers_id[39] = '21'; markers_url[39] = 'olomouc'; markers_source[40] = [50.7774,14.2352,2]; markers_pcs[40] = 'pcs/loga/logo-2.png'; markers_title[40] = 'Děčín – Folknářská / Folknářská 1246/21, 405 01'; markers_id[40] = '16'; markers_url[40] = 'decin'; markers_source[41] = [50.6804,14.543,2]; markers_pcs[41] = 'pcs/loga/logo-2.png'; markers_title[41] = 'Česká Lípa / Mimoňská 3385, 470 01'; markers_id[41] = '15'; markers_url[41] = 'ceska-lipa-elex'; markers_source[42] = [50.4604,13.4246,2]; markers_pcs[42] = 'pcs/loga/logo-2.png'; markers_title[42] = 'Chomutov / Tovární 5954, 430 01'; markers_id[42] = '14'; markers_url[42] = 'chomutov'; markers_source[43] = [50.7821,14.2134,2]; markers_pcs[43] = 'pcs/loga/logo-2.png'; markers_title[43] = 'Teplice / Duchcovská 433, 415 01 (areál Perla)'; markers_id[43] = '13'; markers_url[43] = 'teplice'; markers_source[44] = [50.6477,13.7643,2]; markers_pcs[44] = 'pcs/loga/logo-2.png'; markers_title[44] = 'Košťany / Teplická ul. 443, 417 23'; markers_id[44] = '12'; markers_url[44] = 'kostany'; markers_source[45] = [50.7604,14.5565,1]; markers_pcs[45] = 'pcs/loga/logo-1.png'; markers_title[45] = 'Obchodní dům JAKUB / Liberecká 66, 473 01'; markers_id[45] = '11'; markers_url[45] = 'obchodni-dum-jakub'; markers_source[46] = [50.662,14.0304,1]; markers_pcs[46] = 'pcs/loga/logo-1.png'; markers_title[46] = 'Ústí nad Labem / Špitálské nám. 10, 400 01'; markers_id[46] = '10'; markers_url[46] = 'usti-nad-labem'; markers_source[47] = [50.7794,14.5442,1]; markers_pcs[47] = 'pcs/loga/logo-1.png'; markers_title[47] = 'Nový Bor / Gen. Svobody 297, 473 01'; markers_id[47] = '3'; markers_url[47] = 'novy-bor'; markers_source[48] = [50.519,14.1382,1]; markers_pcs[48] = 'pcs/loga/logo-1.png'; markers_title[48] = 'Litoměřice / Želetická ul. 1929/13, 412 01'; markers_id[48] = '8'; markers_url[48] = 'litomerice'; markers_source[49] = [50.7605,15.0275,1]; markers_pcs[49] = 'pcs/loga/logo-1.png'; markers_title[49] = 'Liberec / Švermova 268/76'; markers_id[49] = '6'; markers_url[49] = 'liberec'; markers_source[50] = [50.2181,15.869,1]; markers_pcs[50] = 'pcs/loga/logo-1.png'; markers_title[50] = 'Hradec Králové / Bieblova 344/8, 500 03'; markers_id[50] = '7'; markers_url[50] = 'jakub-hradec-kralove'; markers_source[51] = [48.8533,17.1302,1]; markers_pcs[51] = 'pcs/loga/logo-1.png'; markers_title[51] = 'Hodonín / Štefánikova 27, 695 01'; markers_id[51] = '5'; markers_url[51] = 'hodonin'; markers_source[52] = [50.6771,14.5246,1]; markers_pcs[52] = 'pcs/loga/logo-1.png'; markers_title[52] = 'Česká Lípa / Dubická 959, 470 01'; markers_id[52] = '2'; markers_url[52] = 'ceska-lipa'; markers_source[53] = [50.1094,14.5423,3]; markers_pcs[53] = 'pcs/loga/logo-3.png'; markers_title[53] = 'Elkas centrála / Kolbenova 568/29, 198 00 Praha 9'; markers_id[53] = '36'; markers_url[53] = 'elkas-centrala'; function initialize() { var styles = [{"featureType":"all","stylers":[{"saturation":100},{"hue":"#014694"}]},{"featureType":"road","stylers":[{"saturation":-40}]},{"featureType":"transit","stylers":[{"visibility":"off"}]},{"featureType":"poi","stylers":[{"visibility":"off"}]},{"featureType":"water","stylers":[{"visibility":"simplified"},{"saturation":-60}]}]; var styledMap = new google.maps.StyledMapType(styles, {name: "Styled Map"}); var map_canvas = document.getElementById('map_canvas'); var myLatLng = new google.maps.LatLng(49.879419, 14.576879); var mapOptions = { zoom: 7, center: myLatLng, scrollwheel: false, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById('map_canvas'),mapOptions); map.mapTypes.set('map_style', styledMap); map.setMapTypeId('map_style'); // pois markers var anchorTop = 15; var anchorLeft = 15; var originTop = 0; var originLeft = 0; image1 = new google.maps.MarkerImage('pcs/marker-small.png', new google.maps.Size(35, 35), new google.maps.Point(originLeft,originTop), new google.maps.Point(anchorLeft,anchorTop) ); image2 = new google.maps.MarkerImage('pcs/marker-small.png', new google.maps.Size(35, 35), new google.maps.Point(originLeft,originTop), new google.maps.Point(anchorLeft,anchorTop) ); image3 = new google.maps.MarkerImage('pcs/marker-small.png', new google.maps.Size(35, 35), new google.maps.Point(originLeft,originTop), new google.maps.Point(anchorLeft,anchorTop) ); image4 = new google.maps.MarkerImage('pcs/marker-big.png', new google.maps.Size(35, 35), new google.maps.Point(originLeft,originTop), new google.maps.Point(anchorLeft,anchorTop) ); image5 = new google.maps.MarkerImage('pcs/marker-small.png', new google.maps.Size(35, 35), new google.maps.Point(originLeft,originTop), new google.maps.Point(anchorLeft,anchorTop) ); image6 = new google.maps.MarkerImage('pcs/marker-small.png', new google.maps.Size(35, 35), new google.maps.Point(originLeft,originTop), new google.maps.Point(anchorLeft,anchorTop) ); image7 = new google.maps.MarkerImage('pcs/marker-small.png', new google.maps.Size(35, 35), new google.maps.Point(originLeft,originTop), new google.maps.Point(anchorLeft,anchorTop) ); image8 = new google.maps.MarkerImage('pcs/marker-small.png', new google.maps.Size(35, 35), new google.maps.Point(originLeft,originTop), new google.maps.Point(anchorLeft,anchorTop) ); for (var key in markers_source) { addMarker(key,markers_source[key][0],markers_source[key][1],markers_source[key][2]); } // listener on idle map -> recalculate position all markers google.maps.event.addListener(map, 'idle', function() { // get map x,y topRight = map.getProjection().fromLatLngToPoint(map.getBounds().getNorthEast()); bottomLeft = map.getProjection().fromLatLngToPoint(map.getBounds().getSouthWest()); scale = Math.pow(2,map.getZoom()); // get marker x,y for (var i = 1; i < markers_list.length; i++) { worldPoint = map.getProjection().fromLatLngToPoint(markers_list[i].getPosition()); markers_xy[i] = new google.maps.Point((worldPoint.x-bottomLeft.x)*scale,(worldPoint.y-topRight.y)*scale); } }); // hide overlay if move map google.maps.event.addListener(map, 'center_changed', function() { $("#overlay").hide(); }); // hide overlay if zoom change google.maps.event.addListener(map, 'zoom_changed', function() { $("#overlay").hide(); }); var bounds = new google.maps.LatLngBounds( new google.maps.LatLng(48.805782, 13.382116), new google.maps.LatLng(51.061080, 15.788122) ); google.maps.event.addDomListener(window, 'resize', function() { map.fitBounds(bounds); }); } // add marker function addMarker(id,lat,lon,poiType) { markers_list[id] = new google.maps.Marker({ position: new google.maps.LatLng(lat,lon,true), map: map, zIndex: parseInt(id), icon: eval('image'+poiType) }); markers[poiType].push(markers_list[id]); var showMarkerBubble = new Function("event", "markerBubble("+id+");"); google.maps.event.addListener(markers_list[id], 'mouseover', showMarkerBubble); google.maps.event.addListener(markers_list[id], 'mouseout', function() { $("#overlay").hide(); }); google.maps.event.addListener(markers_list[id], "click", function(event) { window.open(markers_url[id],'_self'); }); //var showDetailBubble = new Function("event", "detailBubble("+id+");"); //google.maps.event.addListener(markers_list[id], 'click', showDetailBubble); } // load poi data by ajax function getPoiDetail(id_poi) { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById('detail-box').innerHTML = xmlhttp.responseText; } } xmlhttp.open('GET','../ajax/poi-detail.php?id='+id_poi, true); xmlhttp.send(); } // function for show detail overlay function detailBubble(num) { $("#detail strong").text(markers_title[num]); if (!detailShow || detailShow!=num) { $("#detail").show(); getPoiDetail(markers_id[num]); detailShow = num; } else { $("#detail").hide(); detailShow = false; document.getElementById('detail-box').innerHTML = '
'; } } function clearMapMarkers() { clearMarkers(1); clearMarkers(2); clearMarkers(3); clearMarkers(4); clearMarkers(5); clearMarkers(6); clearMarkers(7); } $(document).ready(function() { $( "#detail-close" ).click(function(e){ e.preventDefault(); $("#detail").hide(); detailShow = false; document.getElementById('detail-box').innerHTML = '
'; }); var t = setTimeout(clearMapMarkers, 500); }); // function for show markers overlay function markerBubble(num) { $("#overlay strong").text(markers_title[num]); $("#overlay div").css("background-image", "url('"+markers_pcs[num]+"')"); if (markers_xy[num].x > ($("#map_canvas").width()-237)) { marker_box_x = -225; $("#overlay").css("background-image", "url('pcs/map-buble-left-bg.png')"); $("#overlay").css("padding-left", "10px"); $("#overlay").css("padding-right", "23px"); } else { marker_box_x = 7; $("#overlay").css("background-image", "url('pcs/map-buble-right-bg.png')"); $("#overlay").css("padding-left", "23px"); $("#overlay").css("padding-right", "10px"); } $("#overlay").css({ left:($("#map_canvas").position().left + markers_xy[num].x + marker_box_x), top:($("#map_canvas").position().top + markers_xy[num].y - 51) }); $("#overlay").show(); } function setMarkersToMap(sendMap,type) { if (!type) { for (var key in markers) { for (var i = 0; i < markers[key].length; i++) { markers[key][i].setMap(sendMap); } } } else { for (var i = 0; i < markers[type].length; i++) { markers[type][i].setMap(sendMap); } } } // hide markers function clearMarkers(type) { //alert(type+" --- "+cur_type[type]); if (!cur_type[type]) { setMarkersToMap(map,type); cur_type[type] = true; $(".map-icon-"+type).css("background-image", "url('pcs/marker-"+type+".png')"); } else { setMarkersToMap(null,type); cur_type[type] = false; $(".map-icon-"+type).css("background-image", "url('pcs/marker-"+type+"-off.png')"); } } // shows markers function showOverlays(type) { setMarkersToMap(map,type); } // deletes all markers function deleteMarkers(type) { clearMarkers(type); markers[type] = null; } google.maps.event.addDomListener(window, 'load', initialize); /* $(document).ready(function() { map.fitBounds(bounds); }); */