-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathjquery.mobilegmap.min.js
1 lines (1 loc) · 2.45 KB
/
jquery.mobilegmap.min.js
1
(function(e){"use strict";var t=[],n={init:function(t){google.maps.visualRefresh=true;var n=e.extend({deviceWidth:580,markers:[]},t),r={center:"",zoom:"5",size:screen.width+"x"+480,scale:window.devicePixelRatio?window.devicePixelRatio:1,maptype:"roadmap",sensor:false};var i=e(this);n.imgURI="http://maps.googleapis.com/maps/api/staticmap?";n.settings=r;n.settings.center=i.attr("data-center")||n.settings.center;n.settings.zoom=i.attr("data-zoom")||n.settings.zoom;n.settings.maptype=i.attr("data-maptype")||n.settings.maptype;i.data("options",n);if(screen.width<n.deviceWidth){i.mobileGmap("showImage")}else{i.mobileGmap("showMap")}},showMap:function(){var t=e(this).addClass("gmap_map"),r=t.data("options"),i=new google.maps.Geocoder,s={},o=t.get(0);i.geocode({address:r.settings.center},function(t,u){if(u===google.maps.GeocoderStatus.OK){s={zoom:parseInt(r.settings.zoom,10),center:t[0].geometry.location,mapTypeId:r.settings.maptype};var a=new google.maps.Map(o,s);var f={};if(r.markers.length){for(var l=0;l<r.markers.length;l++){f=e.extend({map:a},r.markers[l]);if(!f.position||f.position=="center"){f.position=t[0].geometry.location}if(typeof f.position!=="object"){(function(e){i.geocode({address:e.position},function(t,r){if(r===google.maps.GeocoderStatus.OK){e.position=t[0].geometry.location;n._addMarker(e)}})})(f)}else{n._addMarker(f)}}}}})},_addMarker:function(e){var n;if(e.info){n=e.info;delete e.info}var r=new google.maps.Marker(e);if(n){var i=new google.maps.InfoWindow({content:n});google.maps.event.addListener(r,"click",function(){i.open(e.map,r)});if(e.showInfo){window.setTimeout(function(){i.open(e.map,r)},100)}}t.push(r)},showImage:function(){var t=e(this).addClass("gmap_image"),n=[],r=new Image,i=document.createElement("a"),s=t.data("options"),o=0,u=[];for(var a in s.settings){n.push(a+"="+s.settings[a])}if(s.markers.length){var f=[];for(;o<s.markers.length;o++){f=[];for(var l in s.markers[o]){if(l=="position"){f.push(!s.markers[o][l]||s.markers[o][l]=="center"?s.settings.center:s.markers[o][l].replace(/ /gi,"+"))}else{f.push(l+":"+s.markers[o][l])}}u.push("&markers="+f.join("%7C"))}}r.src=s.imgURI+n.join("&")+u.join("");i.href="//maps.google.com/maps?q="+s.settings.center;i.appendChild(r);e(this).empty().append(i)}};e.fn.mobileGmap=function(t){if(n[t]){return n[t].apply(this,Array.prototype.slice.call(arguments,1))}else if(typeof t==="object"||!t){return n.init.apply(this,arguments)}else{e.error("Method "+t+" does not exist on jQuery.mobileGmap")}}})(this.jQuery)