/**
* 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 <[email protected]> based on original plugin by Cedric Kastner <[email protected]>
* @version 2.1.5
*/
!function($){$.fn.gMap=function(e,o){switch(e){case"addMarker":return $(this).trigger("gMap.addMarker",[o.latitude,o.longitude,o.content,o.icon,o.popup]);case"centerAt":return $(this).trigger("gMap.centerAt",[o.latitude,o.longitude,o.zoom]);case"clearMarkers":return $(this).trigger("gMap.clearMarkers")}var a=$.extend({},$.fn.gMap.defaults,e);return this.each(function(){var e=new google.maps.Map(this);$(this).data("gMap.reference",e);var o=new google.maps.Geocoder;a.address?o.geocode({address:a.address},function(o,a){o&&o.length&&e.setCenter(o[0].geometry.location)}):a.latitude&&a.longitude?e.setCenter(new google.maps.LatLng(a.latitude,a.longitude)):$.isArray(a.markers)&&a.markers.length>0?a.markers[0].address?o.geocode({address:a.markers[0].address},function(o,a){o&&o.length>0&&e.setCenter(o[0].geometry.location)}):e.setCenter(new google.maps.LatLng(a.markers[0].latitude,a.markers[0].longitude)):e.setCenter(new google.maps.LatLng(34.885931,9.84375)),e.setZoom(a.zoom),e.setMapTypeId(google.maps.MapTypeId[a.maptype]);var n={scrollwheel:a.scrollwheel,disableDoubleClickZoom:!a.doubleclickzoom};a.controls===!1?$.extend(n,{disableDefaultUI:!0}):0!==a.controls.length&&$.extend(n,a.controls,{disableDefaultUI:!0}),e.setOptions(n);var s=new google.maps.Marker,t,r;t=new google.maps.MarkerImage(a.icon.image),t.size=new google.maps.Size(a.icon.iconsize[0],a.icon.iconsize[1]),t.anchor=new google.maps.Point(a.icon.iconanchor[0],a.icon.iconanchor[1]),s.setIcon(t),a.icon.shadow&&(r=new google.maps.MarkerImage(a.icon.shadow),r.size=new google.maps.Size(a.icon.shadowsize[0],a.icon.shadowsize[1]),r.anchor=new google.maps.Point(a.icon.shadowanchor[0],a.icon.shadowanchor[1]),s.setShadow(r)),$(this).bind("gMap.centerAt",function(o,a,n,s){s&&e.setZoom(s),e.panTo(new google.maps.LatLng(parseFloat(a),parseFloat(n)))});var i=[];$(this).bind("gMap.clearMarkers",function(){for(;i[0];)i.pop().setMap(null)});var g;$(this).bind("gMap.addMarker",function(o,n,t,r,l,d){var c,p,m=new google.maps.LatLng(parseFloat(n),parseFloat(t)),h=new google.maps.Marker({position:m});if(l?(c=new google.maps.MarkerImage(l.image),c.size=new google.maps.Size(l.iconsize[0],l.iconsize[1]),c.anchor=new google.maps.Point(l.iconanchor[0],l.iconanchor[1]),h.setIcon(c),l.shadow&&(p=new google.maps.MarkerImage(l.shadow),p.size=new google.maps.Size(l.shadowsize[0],l.shadowsize[1]),p.anchor=new google.maps.Point(l.shadowanchor[0],l.shadowanchor[1]),s.setShadow(p))):(h.setIcon(s.getIcon()),h.setShadow(s.getShadow())),r){"_latlng"===r&&(r=n+", "+t);var w=new google.maps.InfoWindow({content:a.html_prepend+r+a.html_append});google.maps.event.addListener(h,"click",function(){g&&g.close(),w.open(e,h),g=w}),d&&google.maps.event.addListenerOnce(e,"tilesloaded",function(){w.open(e,h)})}h.setMap(e),i.push(h)});for(var l,d=this,c=function(e){return function(o,a){o&&o.length>0&&$(d).trigger("gMap.addMarker",[o[0].geometry.location.lat(),o[0].geometry.location.lng(),e.html,e.icon,e.popup])}},p=0;p<a.markers.length;p++)l=a.markers[p],l.address?("_address"===l.html&&(l.html=l.address),o.geocode({address:l.address},c(l))):$(this).trigger("gMap.addMarker",[l.latitude,l.longitude,l.html,l.icon,l.popup])})},$.fn.gMap.defaults={address:"",latitude:0,longitude:0,zoom:1,markers:[],controls:[],scrollwheel:!1,doubleclickzoom:!0,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); |