1function im_supports_history_api() { 2 var ua = window.navigator.userAgent; 3 var msie = ua.indexOf("MSIE "); 4 if(msie>0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) return false; 5 return !!(window.history && history.pushState); 6} 7 8var all_markers_lat_lng = [], 9 category_markers = [], 10 category_layer_groups = [], 11 markers = [], 12 all_markers_arr = (records_json?records_json:[]); 13 14if(map_settings.map_image_url && map_settings.image_height && map_settings.image_width) { 15 if($(window).width() <= 500 && typeof map_settings.use_mobile_specific_zoom_level !== 'undefined' && map_settings.use_mobile_specific_zoom_level == 1) { 16 if(typeof map_settings.mobile_default_latitude !== 'undefined' && map_settings.mobile_default_latitude) map_settings.default_latitude = map_settings.mobile_default_latitude; 17 if(typeof map_settings.mobile_default_longitude !== 'undefined' && map_settings.mobile_default_longitude) map_settings.default_longitude = map_settings.mobile_default_longitude; 18 if(typeof map_settings.mobile_default_zoom !== 'undefined' && map_settings.mobile_default_zoom) map_settings.default_zoom = map_settings.mobile_default_zoom; 19 } 20 21 var map = new L.Map("map", { 22 minZoom : (map_settings.min_zoom?map_settings.min_zoom:1), 23 maxZoom : (map_settings.max_zoom?map_settings.max_zoom:4), 24 center: [(map_settings.default_latitude?map_settings.default_latitude:0),(map_settings.default_longitude?map_settings.default_longitude:0)], 25 zoom : (map_settings.default_zoom?map_settings.default_zoom:2), 26 zoomSnap: 0.5, 27 zoomDelta: 0.5, 28 crs: L.CRS.Simple, 29 scrollWheelZoom: (map_settings.mousewheel_behavior && map_settings.mousewheel_behavior == 'off'?false:true), 30 maxBoundsViscosity: 1.0 31 }); 32 33 var map_center = map.getCenter(); 34 35 var southWest = map.unproject([0, map_settings.image_height], map.getMaxZoom()); 36 var northEast = map.unproject([map_settings.image_width, 0], map.getMaxZoom()); 37 var bounds = new L.LatLngBounds(southWest, northEast); 38 39 L.imageOverlay(map_settings.map_image_url, bounds).addTo(map); 40 41 map.setMaxBounds(bounds); 42 43 if(map_settings.default_latitude && map_settings.default_longitude) { 44 map.setView([map_settings.default_latitude,map_settings.default_longitude],map_settings.default_zoom) 45 } else { 46 map.setView(bounds.getCenter()); 47 } 48 49 for(b=0;b<all_markers_arr.length;b++) { 50 data = all_markers_arr[b]; 51 add_marker(data); 52 } 53 54 map.on('popupopen', function(e) { 55 map.setMaxBounds(null); 56 var px = map.project(e.popup._latlng); // find the pixel location on the map where the popup anchor is 57 px.y -= e.popup._container.clientHeight/2 // find the height of the popup container, divide by 2, subtract from the Y axis of marker location 58 map.panTo(map.unproject(px),{animate: true}); // pan to new center 59 }); 60 map.on('popupclose', function(e) { 61 if(im_supports_history_api()) history.pushState(null, null, base_url); 62 map.setMaxBounds(bounds); 63 }); 64 65 if(map_settings.pin_behavior == 'hover') { 66 map.on("zoomstart",function(e) { 67 if(all_markers_arr.length) { 68 for(i=0;i<all_markers_arr.length;i++) markers[i].closePopup(false); 69 } 70 }); 71 } 72 73 do_filters(); 74} 75 76$('body').on('sosimple-overlay-closed',function() { 77 if(im_supports_history_api()) history.pushState(null, null, base_url); 78}); 79 80function add_marker(data) { 81 if(!data.latitude || !data.latitude) { 82 data.latitude = map_center.lat; 83 data.longitude = map_center.lng; 84 } 85 86 if(data.latitude && data.latitude) { 87 all_markers_lat_lng.push([data.latitude,data.longitude]); 88 89 var icon = L.divIcon({ 90 className: 'interactive-map-marker', 91 iconSize: [30,30], 92 iconAnchor: [15,15], 93 popupAnchor: [0,-15], 94 html:'<div class="interactive-map-icon'+(map_settings.pin_behavior != 'hover'?' showtip" data-marker-id="'+data.content_id+'" title="'+data.title:'')+'" style="background-color: '+data.pin_color+'">'+data.pin_label+'</div>' 95 }); 96 97 var marker = L.marker([data.latitude,data.longitude],{icon: icon}).addTo(map); 98 marker.content_id = data.content_id; 99 100 var images = ''; 101 for(i=0;i<data.images.length;i++) { 102 images += '<div class="img-wrap" style="background-image: url(\''+data.images[i]+'\');">
102'+(data.image_captions[i]?'<div class="caption">'+data.image_captions[i]+'</div>':'')+'<img src="'+data.images[i]+'" /></div>'; 103 } 104 105 marker.infobox = '<div class="interactive-map-infobox-content" data-marker-id="'+data.content_id+'">' + 106 (images?'<div class="image popup-image-stage loading">'+images+'</div>':'') + 107 '<div class="title">'+data.title+'</div>' + 108 '<div class="interactive-map-icon" style="background-color: '+data.pin_color+'">'+data.pin_label+'</div>' + 109 (data.popup_content?'<div class="popup-desc">'+data.popup_content+'</div>':'') + 110 ' <div class="address">'+data.friendly_address+'</div>' + 111 (data.categories_list?' <div class="categories"><ul>'+data.categories_list+'</ul></div>':"") + 112 (data.show_directions_button?'<div class="button-wrap"><a href="https://www.google.com/maps?saddr=&daddr='+data.latitude+','+data.longitude+'" class="button" target="_blank">Get Directions</a></div>':"") + 113 '<div class="cb"></div>'+ 114 '</div>'; 115 116 // all_markers_arr.push(marker); 117 118 if(map_settings.pin_behavior == 'hover') { 119 marker.bindPopup(marker.infobox); 120 } 121 122 $(marker).on("click",function(e) { 123 if(im_supports_history_api()) history.pushState(null, null, base_url+'?i='+data.content_id); 124 125 showSoSimpleOverlay(this.infobox); 126 127 if(typeof is_iframe_embed !== 'undefined' && is_iframe_embed) { 128 $('.popup-desc a').each(function() { 129 if(!$(this).attr('target')) { 130 $(this).attr('target','_parent'); 131 } 132 }); 133 } 134 135 if($('.popup-image-stage').find('img').length > 1) { 136 $('.popup-image-stage').waitForImages(function() { 137 var shortest = 0; 138 $('.popup-image-stage').find('img').each(function() { 139 var thisheight = $(this).height(); 140 if(thisheight>0 && (thisheight < shortest || !shortest)) shortest = thisheight; 141 }); 142 $('.popup-image-stage').find('.img-wrap').css({'max-height':shortest+'px'}); 143 $('.popup-image-stage').slick().removeClass('loading'); 144 $(window).resize(); 145 }); 146 } else { 147 $('.popup-image-stage').slick().removeClass('loading'); 148 $(window).resize(); 149 } 150 151 // marker.openPopup(false); 152 // map.panTo([e.target._latlng.lat, e.target._latlng.lng]); 153 }); 154 155 markers.push(marker); 156 157 if(map_settings.pin_behavior == 'hover') { 158 var ct; 159 marker.on("mouseover",function(e) { 160 clearTimeout(ct); 161 ct = setTimeout(function() { 162 marker.openPopup(false); 163 },350); 164 }); 165 marker.on("mouseout",function(e) { 166 clearTimeout(ct); 167 setTimeout(function() { 168 //marker.closePopup(false); 169 },500); 170 }); 171 } 172 } 173} 174 175// do click if url set 176if(window.location.href.indexOf('?i=') > 0) { 177 var tmp = window.location.href.split('?i='); 178 for(i=0;i<markers.length;i++) { 179 if(markers[i].content_id == parseInt(tmp[1])) { 180 $(markers[i]).click(); 181 } 182 } 183} 184 185 186$('#interactive-map-categories-list .checkbox').change(function() { 187 do_filters(); 188}); 189 190function do_filters() { 191 var selected_categories_arr = []; 192 $('#interactive-map-categories-list .checkbox:checked').each(function() { 193 selected_categories_arr.push($(this).val()); 194 }); 195 196 if(selected_categories_arr.length) { 197 var markers_to_display_arr = []; 198 199 for(x=0;x<selected_categories_arr.length;x++) { 200 cat_id = selected_categories_arr[x]; 201 202 for(i=0;i<all_markers_arr.length;i++) { 203 if(typeof markers[i] === 'undefined' || typeof markers[i]._icon === 'undefined') continue; 204 205 $(markers[i]._icon).hide(); 206 207 data = all_markers_arr[i]; 208 for(j=0;j<data.categories.length;j++) { 209 marker_cat_id = data.categories[j]; 210 if(marker_cat_id == cat_id) { 211 markers_to_display_arr.push(markers[i]._icon); 212 break; 213 } 214 } 215 } 216 } 217 218 for(z=0;z<markers_to_display_arr.length;z++) { 219 $(markers_to_display_arr[z]).show(); 220 } 221 222 } else { 223 for(i=0;i<all_markers_arr.length;i++) { 224 if(typeof markers[i] !== 'undefined') { 225 $(markers[i]._icon).show(); 226 } 227 } 228 } 229} 230 231 232if(map_settings.pin_behavior != 'hover') { 233 add_css(shared_root+'/js/jquery/jquery.tipsy/jquery.tipsy.css'); 234 $.when( 235 add_js(shared_root+'/js/jquery/jquery.tipsy/jquery.tipsy.js',1) 236 ).done(function() { 237 $(".showtip").tipsy({ 238 live: true, 239 html: true, 240 gravity: 's' 241 }); 242 }); 243} 244 245 246/* 247var latitude = $('#interactive-map-map-settings').attr('data-latitude'); 248var longitude = $('#interactive-map-map-settings').attr('data-longitude');
249var pin_behavior = $('#interactive-map-map-settings').attr('data-pin-behavior') 250 251var map = new L.map("map").setView([0,0], 2); 252 253L.tileLayer(cloudmadeUrl, { 254 attribution: cloudmadeAttribution, 255 maxZoom: 18 256}).addTo(map); 257 258if(typeof raw_markers_arr !== 'undefined' && raw_markers_arr.length) { 259 for(i=0;i<raw_markers_arr.length;i++) { 260 addMarker(raw_markers_arr[i][0],raw_markers_arr[i][1],raw_markers_arr[i][2],raw_markers_arr[i][3],raw_markers_arr[i][4],raw_markers_arr[i][5],raw_markers_arr[i][6],raw_markers_arr[i][7],raw_markers_arr[i][8]); 261 } 262} 263 264function addMarker(lat,lng,name,id,address,icon,categories,url,show_directions_button) { 265 all_markers_lat_lng.push([lat,lng]); 266 267 var marker = new L.marker( 268 [lat,lng], 269 { 270 icon: L.icon({ 271 iconUrl: icon, 272 iconSize: [29, 43], // size of the icon 273 //shadowSize: [30, 36], // size of the shadow 274 iconAnchor: [15, 43], // point of the icon which will correspond to markers location 275 //shadowAnchor: [15, 36], // the same for the shadow 276 popupAnchor: [0, -30] // point from which the popup should open relative to the iconAnchor 277 }) 278 } 279 ); 280 281 marker.lat = lat; 282 marker.lng = lng; 283 // marker.categories = el.categories; 284 marker.name = name; 285 marker.id = id; 286 marker.address = address; 287 288 var infobox = '<div class="infobox-content">' + 289 ' <a href="'+url+'" class="title">'+marker.name+'</a>' + 290 ' <div class="address">'+marker.address+'</div>' + 291 (categories?' <div class="categories"><ul>'+categories+'</ul></div>':"") + 292 (show_directions_button?'<div class="button-wrap"><a href="https://www.google.com/maps?saddr=&daddr='+lat+','+lng+'" class="button" target="_blank">Get Directions</a></div>':"") + 293 '</div>'; 294 295 all_markers_arr.push(marker); 296 297 markers.addLayer(marker); 298 marker.bindPopup(infobox); 299 300 marker.on("click",function(e) { 301 marker.openPopup(false); 302 map.panTo([e.target.lat, e.target.lng]); 303 }); 304 305 if(pin_behavior == 'hover') { 306 var ct; 307 marker.on("mouseover",function(e) { 308 clearTimeout(ct); 309 ct = setTimeout(function() { 310 marker.openPopup(false); 311 },350); 312 }); 313 marker.on("mouseout",function(e) { 314 clearTimeout(ct); 315 setTimeout(function() { 316 //marker.closePopup(false); 317 },500); 318 }); 319 } 320} 321 322if(pin_behavior == 'hover') { 323 map.on("zoomstart",function(e) { 324 if(all_markers_arr.length) { 325 for(i=0;i<all_markers_arr.length;i++) all_markers_arr[i].closePopup(false); 326 } 327 }); 328} 329 330if(all_markers_arr.length) { 331 setTimeout(function() { 332 // map.fitBounds(all_markers_lat_lng); 333 },50); 334} 335 336*/
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.