1(function ($) { 2 var methods = { 3 init: function (options) { 4 var $geocoder = new google.maps.Geocoder(); 5 var $address = options.center + ', UK'; 6 if ($geocoder) { 7 $geocoder.geocode({ 'address': $address }, function (results, status) { 8 var $location = results[0].geometry.location; 9 var $lat = $location.lat(); 10 var $lng = $location.lng(); 11 if (status == google.maps.GeocoderStatus.OK) { 12 // The Map itself 13 var $el = document.getElementById(options.parentElementId) 14 , $w = $($el).width() 15 , $h = $($el).height(); 16 if($w === 0){ $($el).css({ width: "800px" }); }; 17 if($h === 0){ $($el).css({ height: "600px" }); }; 18 // The Map options 19 var $mapOptions = { 20 zoom: options.zoomLevel 21 , minZoom: options.minZoomLevel 22 , center: new google.maps.LatLng($lat, $lng) 23 , mapTypeId: methods.type(options.type) 24 , mapTypeControl: options.toggle 25 , mapTypeControlOptions: methods.position(options.togglePos) 26 , panControl: options.pan 27 , panControlOptions: methods.position(options.panPos) 28 , zoomControl: options.zoom 29 , zoomControlOptions: methods.position(options.zoomPos) 30 , streetViewControl: options.streetView 31 , streetViewControlOptions: methods.position(options.streetViewPos) 32 , scaleControl: options.scale 33 , styles: options.styles 34 , scrollwheel: options.scrollable 35 }; 36 // Set the map 37 var $map = new google.maps.Map($el, $mapOptions); 38 options.mapper = $map; 39 // Places 40 if(options.places.length > 0) 41 { 42 var $i = 0; 43 $(options.places).each(function (item, val) { 44 var $infoWindow = new google.maps.InfoWindow(); 45 $.when( 46 methods.marker(val, options, $map, $i, $infoWindow) 47 ).done(function(){ 48 $i++; 49 }); 50 }); 51 } 52 // Resize 53 if(options.reSize === true) 54 { 55 $(window).resize(function () { 56 google.maps.event.trigger($map, "resize"); 57 }); 58 } 59 // Get new bg color? 60 var maskColor = "#B3D1FF"; 61 if(options.styles.length > 0) 62 { 63 var $hue = options.styles[0].stylers[0].hue; 64 var $sat = options.styles[0].stylers[1].saturation; 65 var $colA = $.Color($hue); 66 var $colB = $.Color(maskColor); 67 var $diff = $colA.hue() - $colB.hue(); 68 if($diff < 0){ 69 $diff = $diff * -1; 70 $diff = 360 - $diff; 71 } 72 var $x = "+=" + String($diff); 73 if($sat < 0){ 74 $sat = $sat * -1; 75 $sat = 100 - $sat; 76 $sat = $sat / 100; 77 } else { 78 $sat = 100 + $sat; 79 $sat = $sat / 100; 80 $sat = 0.5 + $sat; 81 $sat = $sat - 1; 82 } 83 var $masker = $.Color(maskColor); 84 $masker = $masker.hue($x); 85 $masker = $masker.saturation($sat); 86 maskColor = $masker.toHexString(); 87 } 88 // Mask 89 if(options.masked === true) 90 { 91 var $masked; 92 $masked = new google.maps.Polygon({ 93 paths: options.mask, 94 strokeColor: maskColor, 95 strokeOpacity: 1, 96 strokeWeight: 3, 97 fillColor: maskColor, 98 fillOpacity: 1, 99 clickable: false 100 }); 101 $masked.setMap($map); 102 } 103 } 104 else { 105 // Error 106 } 107 if (options.onLoad != "") { 108 options.onLoad.call(this, options); 109 } 110 }); 111 }; 112 } 113 , icon: function($point, $i, $options, $map){ 114 var $markerOptions = {}; 115 //var marker = new google.maps.Marker($markerOptions); 116 if($options.marker === "") { 117 switch($options.markerStyle){ 118 case "": 119 case "simple": 120 var letter = String.fromCharCode("A".charCodeAt(0) + $i); 121 $marker = new google.maps.Marker({ 122 position: $point 123 , map: $map 124 }); 125 break; 126 case "letter": 127 case "lettered": 128 var letter = String.fromCharCode("A".charCodeAt(0) + $i); 129 $marker = new google.maps.Marker({ 130 position: $point 131 , map: $map 132 , icon: "http://www.google.com/mapfiles/marker" + escape(letter) + ".png" 133 }); 134 break; 135 case "number": 136 case "numbered": 137 case "coloured-number": 138 case "coloured-numbered": 139 var pinColor = "FE6256"; 140 if($options.markerColor != "" && ($options.markerStyle == "coloured-number" || $options.markerStyle == "coloured-numbered")){ 141 pinColor = $options.markerColor.replace("#", ""); 142 } 143 var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=" + escape(String($i + 1)) + "|" + pinColor,
144 new google.maps.Size(21, 34), 145 new google.maps.Point(0,0), 146 new google.maps.Point(10, 34)); 147 var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow", 148 new google.maps.Size(40, 37), 149 new google.maps.Point(0, 0), 150 new google.maps.Point(12, 35)); 151 $marker = new google.maps.Marker({ 152 position: $point 153 , map: $map 154 , icon: pinImage 155 }); 156 break; 157 case "coloured": 158 case "coloured-lettered": 159 var pinColor = $options.markerColor.replace("#", ""); 160 var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor, 161 new google.maps.Size(21, 34), 162 new google.maps.Point(0,0), 163 new google.maps.Point(10, 34)); 164 var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow", 165 new google.maps.Size(40, 37), 166 new google.maps.Point(0, 0), 167 new google.maps.Point(12, 35)); 168 $marker = new google.maps.Marker({ 169 position: $point 170 , map: $map 171 , icon: pinImage 172 }); 173 break; 174 case "coloured-letter": 175 var letter = String.fromCharCode("A".charCodeAt(0) + $i); 176 var pinColor = $options.markerColor.replace("#", ""); 177 var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=" + letter + "|" + pinColor, 178 new google.maps.Size(21, 34), 179 new google.maps.Point(0,0), 180 new google.maps.Point(10, 34)); 181 var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow", 182 new google.maps.Size(40, 37), 183 new google.maps.Point(0, 0), 184 new google.maps.Point(12, 35)); 185 $marker = new google.maps.Marker({ 186 position: $point 187 , map: $map 188 , icon: pinImage 189 }); 190 break; 191 } 192 } else { 193 $marker = new google.maps.Marker({ 194 position: $point 195 , map: $map 196 , icon: $options.marker 197 }); 198 } 199 return $marker 200 //return marker; 201 202 } 203 , marker: function($val, $options, $map, $i, $infoWindow){ 204 var $marker; 205 if($val.lat === 0 || $val.lat === undefined || $val.lat === null || $val.lon === 0 || $val.lon === undefined || $val.lon === null) 206 { 207 // Geocode... 208 if($val.postcode != "" && $val.postcode != undefined && $val.postcode != null){ 209 var $googleAddress = $val.postcode + ', UK'; 210 var $geocoder = new google.maps.Geocoder(); 211 if($geocoder){ 212 $geocoder.geocode({ 'address': $googleAddress }, function (results, status) { 213 if (status == google.maps.GeocoderStatus.OK) { 214 var $location = results[0].geometry.location; 215 var $lat = $location.lat(); 216 var $lng = $location.lng(); 217 //var point = new google.maps.LatLng(results[0].geometry.location.ob, results[0].geometry.location.pb); 218 $marker = methods.icon(new google.maps.LatLng($lat, $lng), $i, $options, $map); 219 if($marker != null){ 220 var $html = $val.html; 221 if ($options.infoBox) { 222 if ($options.htmlInfo) { 223 // Add surrounding IO styles 224 $html = "<div class='ioInfoBox'>" + $html + "</div>"; 225 } 226 google.maps.event.addListener($marker, 'click', (function ($marker, $i) { 227 return function () { 228 $infoWindow.setContent($html); 229 $infoWindow.open($map, $marker); 230 } 231 })($marker, $i)); 232 } 233 $i++; 234 } 235 return $marker; 236 } else { 237 $marker = null; 238 return $marker; 239 } 240 }); 241 } 242 } else { 243 $marker = null; 244 return $marker; 245 } 246 } else { 247 // Use lat and lon values... 248 //var point = new GLatLng($val.lat, $val.lon); 249 $marker = methods.icon(new google.maps.LatLng($val.lat, $val.lon), $i, $options, $map); 250 if($marker != null && $options.infoBox){ 251 var $html = $val.html; 252 if($options.htmlInfo){ 253 // Add surrounding IO styles 254 $html = "<div class='ioInfoBox'>" + $html + "</div>"; 255 } 256 google.maps.event.addListener($marker, 'click', (function ($marker, $i) { 257 return function () { 258 $infoWindow.setContent($html); 259 $infoWindow.open($map, $marker); 260 } 261 })($marker, $i)); 262 $i++; 263 } 264 return $marker; 265 } 266 } 267 , type: function($type){ 268 var $googleType; 269 switch($type.toLowerCase()) 270 { 271 case "road": 272 $googleType = google.maps.MapTypeId.ROADMAP; 273 break; 274 case "satellite": 275 $googleType = google.maps.MapTypeId.SATELLITE; 276 break; 277 case "hybrid": 278 $googleType = google.maps.MapTypeId.HYBRID; 279 break; 280 case "terrain": 281 $googleType = google.maps.MapTypeId.TERRAIN; 282 break; 283 } 284 return $googleType; 285 } 286 , position: function($pos){ 287 var $googlePos; 288 switch($pos.toLowerCase()) 289 { 290 case "top centre": 291 case "top center": 292 $googlePos = { position: google.maps.ControlPosition.TOP_CENTER }; 293 break;
294 case "top left": 295 $googlePos = { position: google.maps.ControlPosition.TOP_LEFT }; 296 break; 297 case "top right": 298 $googlePos = { position: google.maps.ControlPosition.TOP_RIGHT }; 299 break; 300 case "left top": 301 $googlePos = { position: google.maps.ControlPosition.LEFT_TOP }; 302 break; 303 case "right top": 304 $googlePos = { position: google.maps.ControlPosition.RIGHT_TOP }; 305 break; 306 case "left center": 307 case "left centre": 308 $googlePos = { position: google.maps.ControlPosition.LEFT_CENTER }; 309 break; 310 case "right center": 311 case "right centre": 312 $googlePos = { position: google.maps.ControlPosition.RIGHT_CENTER }; 313 break; 314 case "left bottom": 315 $googlePos = { position: google.maps.ControlPosition.LEFT_BOTTOM }; 316 break; 317 case "right bottom": 318 $googlePos = { position: google.maps.ControlPosition.RIGHT_BOTTOM }; 319 break; 320 case "bottom center": 321 case "bottom centre": 322 $googlePos = { position: google.maps.ControlPosition.BOTTOM_CENTER }; 323 break; 324 case "bottom left": 325 $googlePos = { position: google.maps.ControlPosition.BOTTOM_LEFT }; 326 break; 327 case "bottom right": 328 $googlePos = { position: google.maps.ControlPosition.BOTTOM_RIGHT }; 329 break; 330 } 331 return $googlePos; 332 } 333 }; 334 $.fn.ioGoogleMap = function (method, data) { 335 var defaults = { 336 parentElementId: "ioGoogleMap" 337 , htmlInfo: true 338 , masked: false 339 , maskColor: "" 340 , zoomLevel: 8 341 , minZoomLevel: 5 342 , center: "" 343 , type: "road" 344 , toggle: true 345 , pan: true 346 , zoom: true 347 , streetView: true 348 , infoBox: false 349 , togglePos: "top right" 350 , panPos: "top right" 351 , zoomPos: "top right" 352 , streetViewPos: "top right" 353 , scale: false 354 , color: "" 355 , places: [ ] 356 , marker: "" 357 , markerStyle: "letter" 358 , markerColor: "#FFFF33" 359 , reSize: true 360 , styles: [] 361 , onLoad: "" 362 , mapper: null 363 , scrollable: false 364 , mask: [ new google.maps.LatLng(69.390627, -79.980469), new google.maps.LatLng(21.834303, -80.507813), new google.maps.LatLng(21.562095, 49.042969), new google.maps.LatLng(70.476000, 50.449219), new google.maps.LatLng(69.390627, -79.980469), new google.maps.LatLng(59.168421, -12.084961), new google.maps.LatLng(59.168421, 2.153320), new google.maps.LatLng(51.881012, 2.768555), new google.maps.LatLng(50.969959, 1.505127), new google.maps.LatLng(48.717545, -6.580811), new google.maps.LatLng(51.390065, -14.194336), new google.maps.LatLng(59.168421, -12.084961) ] 365 }; 366 if (methods[method]) { 367 return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); 368 } else if (typeof method === 'object' || !method) { 369 var ioOptions = $.extend(defaults, method); 370 return methods.init.apply(this, arguments); 371 } else { 372 $.error('Method ' + method + ' does not exist on jQuery.ioGoogleMap'); 373 } 374 }; 375})(jQuery);
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.