This repository has been archived by the owner on Sep 12, 2020. It is now read-only.
/
jquery.auto-geocoder.min.js
4 lines (4 loc) · 1.96 KB
/
jquery.auto-geocoder.min.js
1
2
3
4
(function(e){var j=new google.maps.Geocoder,h=e.fn.autoGeocoder=function(a){a=e.extend(!0,{},h.defaults,a||{});var b=a.setup||h.base;for(property in b)for(var d=b[property],c=0,f=d.length;c<f;c++)d[c].call(this,a);return this.trigger("auto-geocoder.initialize")};h.base={initialize:[function(a){a.initial.center=new google.maps.LatLng(a.initial.center[0],a.initial.center[1]);this.on("auto-geocoder.initialize",function(){e(this).trigger("auto-geocoder.createMap").trigger("auto-geocoder.onKeyUp")})}],
createMap:[function(a){this.on("auto-geocoder.createMap",function(){var b=e(this),d=e("<div>",{"class":a.className}),c=a.position;if("before"==c||"after"==c)b[c](d);else e(c).append(d);b.on("keyup.auto-geocoder",function(){b.trigger("auto-geocoder.onKeyUp")});this.map=new google.maps.Map(d[0],a.initial)})}],onKeyUp:[function(a){this.on("auto-geocoder.onKeyUp",function(){var b=this,d=e(b),c=e.trim(d.val()).replace(/\s+/g," ").toLowerCase(),f=this.timeout,g=this.previousAddress;f&&clearTimeout(f);g&&
g==c||(""==c?d.trigger("auto-geocoder.onGeocodeResult",[[],""]):this.timeout=setTimeout(function(){b.previousAddress=c;j.geocode({address:c},function(a,b){d.trigger("auto-geocoder.onGeocodeResult",[a,b])})},a.delay))})}],onGeocodeResult:[function(a){this.on("auto-geocoder.onGeocodeResult",function(b,d,c){b=this.map;var f=this.marker=this.marker||new google.maps.Marker;if(c==google.maps.GeocoderStatus.OK){var g=d[0].geometry,h=g.location;"auto"==a.success.zoom?b.fitBounds(g.viewport):(b.setZoom(a.success.zoom),
b.setCenter(h));f.setPosition(h);f.setMap(b);e(this).trigger("auto-geocoder.onGeocodeSuccess",[d,c])}else g=a.initial,f&&f.setMap(null),b.setZoom(g.zoom),b.setCenter(g.center),e(this).trigger("auto-geocoder.onGeocodeFailure",[d,c])})}],onGeocodeSuccess:[],onGeocodeFailure:[]};h.defaults={className:"jquery-auto-geocoder-map",position:"after",delay:500,success:{zoom:"auto"},initial:{zoom:1,center:[34,0],draggable:!1,mapTypeId:google.maps.MapTypeId.ROADMAP,mapTypeControl:!1}}})(jQuery);