forked from marioestrada/jQuery-gMap
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjquery.gmap.min.js
More file actions
9 lines (9 loc) · 4.34 KB
/
jquery.gmap.min.js
File metadata and controls
9 lines (9 loc) · 4.34 KB
1
2
3
4
5
6
7
8
9
/**
* jQuery gMap - Google Maps API V3
*
* @license MIT License; http://www.opensource.org/licenses/mit-license.php
* @url http://github.com/marioestrada/jQuery-gMap
* @author Mario Estrada <me@mario.ec> based on original plugin by Cedric Kastner <cedric@nur-text.de>
* @version 2.1.4
*/
(function(e){e.fn.gMap=function(t,n){switch(t){case"addMarker":return e(this).trigger("gMap.addMarker",[n.latitude,n.longitude,n.content,n.icon,n.popup]);case"centerAt":return e(this).trigger("gMap.centerAt",[n.latitude,n.longitude,n.zoom]);case"clearMarkers":return e(this).trigger("gMap.clearMarkers");case"zoomToFitMarkers":return e(this).trigger("gMap.zoomToFitMarkers")}var r=e.extend({},e.fn.gMap.defaults,t);return this.each(function(){var t=new google.maps.Map(this);e(this).data("gMap.reference",t);var n=new google.maps.Geocoder;if(r.address){n.geocode({address:r.address},function(e,n){if(e&&e.length)t.setCenter(e[0].geometry.location)})}else{if(r.latitude&&r.longitude){t.setCenter(new google.maps.LatLng(r.latitude,r.longitude))}else{if(e.isArray(r.markers)&&r.markers.length>0){if(r.markers[0].address){n.geocode({address:r.markers[0].address},function(e,n){if(e&&e.length>0)t.setCenter(e[0].geometry.location)})}else{t.setCenter(new google.maps.LatLng(r.markers[0].latitude,r.markers[0].longitude))}}else{t.setCenter(new google.maps.LatLng(34.885931,9.84375))}}}t.setZoom(r.zoom);t.setMapTypeId(google.maps.MapTypeId[r.maptype]);var i={scrollwheel:r.scrollwheel,disableDoubleClickZoom:!r.doubleclickzoom};if(r.controls===false){e.extend(i,{disableDefaultUI:true})}else if(r.controls.length!=0){e.extend(i,r.controls,{disableDefaultUI:true})}t.setOptions(i);var s=new google.maps.Marker;marker_icon=new google.maps.MarkerImage(r.icon.image);marker_icon.size=new google.maps.Size(r.icon.iconsize[0],r.icon.iconsize[1]);marker_icon.anchor=new google.maps.Point(r.icon.iconanchor[0],r.icon.iconanchor[1]);s.setIcon(marker_icon);if(r.icon.shadow){marker_shadow=new google.maps.MarkerImage(r.icon.shadow);marker_shadow.size=new google.maps.Size(r.icon.shadowsize[0],r.icon.shadowsize[1]);marker_shadow.anchor=new google.maps.Point(r.icon.shadowanchor[0],r.icon.shadowanchor[1]);s.setShadow(marker_shadow)}e(this).bind("gMap.centerAt",function(e,n,r,i){if(i)t.setZoom(i);t.panTo(new google.maps.LatLng(parseFloat(n),parseFloat(r)))});var o=[];e(this).bind("gMap.clearMarkers",function(){while(o[0]){o.pop().setMap(null)}});e(this).bind("gMap.zoomToFitMarkers",function(){if(o&&o.length>0){var e=new google.maps.LatLngBounds;for(var n=0;n<o.length;n++){e.extend(o[n].getPosition())}t.fitBounds(e)}});var u;e(this).bind("gMap.addMarker",function(e,n,i,a,f,l){var c=new google.maps.LatLng(parseFloat(n),parseFloat(i));var h=new google.maps.Marker({position:c});if(f){marker_icon=new google.maps.MarkerImage(f.image);marker_icon.size=new google.maps.Size(f.iconsize[0],f.iconsize[1]);marker_icon.anchor=new google.maps.Point(f.iconanchor[0],f.iconanchor[1]);h.setIcon(marker_icon);if(f.shadow){marker_shadow=new google.maps.MarkerImage(f.shadow);marker_shadow.size=new google.maps.Size(f.shadowsize[0],f.shadowsize[1]);marker_shadow.anchor=new google.maps.Point(f.shadowanchor[0],f.shadowanchor[1]);s.setShadow(marker_shadow)}}else{h.setIcon(s.getIcon());h.setShadow(s.getShadow())}if(a){if(a=="_latlng")a=n+", "+i;var p=new google.maps.InfoWindow({content:r.html_prepend+a+r.html_append});google.maps.event.addListener(h,"click",function(){u&&u.close();p.open(t,h);u=p});if(l){google.maps.event.addListenerOnce(t,"tilesloaded",function(){p.open(t,h)})}}h.setMap(t);o.push(h)});for(var a=0;a<r.markers.length;a++){marker=r.markers[a];if(marker.address){if(marker.html=="_address")marker.html=marker.address;var f=this;n.geocode({address:marker.address},function(t,n){return function(r,i){if(r&&r.length>0){e(n).trigger("gMap.addMarker",[r[0].geometry.location.lat(),r[0].geometry.location.lng(),t.html,t.icon,t.popup])}}}(marker,f))}else{e(this).trigger("gMap.addMarker",[marker.latitude,marker.longitude,marker.html,marker.icon,marker.popup])}}})};e.fn.gMap.defaults={address:"",latitude:0,longitude:0,zoom:1,markers:[],controls:[],scrollwheel:false,doubleclickzoom:true,maptype:"ROADMAP",html_prepend:'<div class="gmap_marker">',html_append:"</div>",icon:{image:"http://www.google.com/mapfiles/marker.png",shadow:"http://www.google.com/mapfiles/shadow50.png",iconsize:[20,34],shadowsize:[37,34],iconanchor:[9,34],shadowanchor:[6,34]}}})(jQuery)