You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
31 KiB
1 line
31 KiB
3 months ago
|
"use strict";!function(e,t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define(["jquery","googlemaps!"],t):e.GMaps=t()}(this,function(){var t,o,n,i,r=function(e,t){var o;if(e===t)return e;for(o in t)void 0!==t[o]&&(e[o]=t[o]);return e},s=function(e,t){var o,n=Array.prototype.slice.call(arguments,2),i=[],r=e.length;if(Array.prototype.map&&e.map===Array.prototype.map)i=Array.prototype.map.call(e,function(e){var o=n.slice(0);return o.splice(0,0,e),t.apply(this,o)});else for(o=0;o<r;o++)callback_params=n,callback_params.splice(0,0,e[o]),i.push(t.apply(this,callback_params));return i},a=function(e){var t,o=[];for(t=0;t<e.length;t++)o=o.concat(e[t]);return o},l=function(e,t){var o,n,i,r,s;for(o=0;o<e.length;o++)e[o]instanceof google.maps.LatLng||(e[o].length>0&&"object"==typeof e[o][0]?e[o]=l(e[o],t):e[o]=(n=e[o],i=t,r=void 0,s=void 0,r=n[0],s=n[1],i&&(r=n[1],s=n[0]),new google.maps.LatLng(r,s)));return e},p=function(e,t){e=e.replace("#","");return"jQuery"in window&&t?$("#"+e,t)[0]:document.getElementById(e)},c=(t=document,o=function(e){if("object"!=typeof window.google||!window.google.maps)return"object"==typeof window.console&&window.console.error&&console.error("Google Maps API is required. Please register the following JavaScript library https://maps.googleapis.com/maps/api/js."),function(){};if(!this)return new o(e);e.zoom=e.zoom||15,e.mapType=e.mapType||"roadmap";var n,i=function(e,t){return void 0===e?t:e},s=this,a=["bounds_changed","center_changed","click","dblclick","drag","dragend","dragstart","idle","maptypeid_changed","projection_changed","resize","tilesloaded","zoom_changed"],l=["mousemove","mouseout","mouseover"],c=["el","lat","lng","mapType","width","height","markerClusterer","enableNewStyle"],g=e.el||e.div,h=e.markerClusterer,d=google.maps.MapTypeId[e.mapType.toUpperCase()],u=new google.maps.LatLng(e.lat,e.lng),m=i(e.zoomControl,!0),f=e.zoomControlOpt||{style:"DEFAULT",position:"TOP_LEFT"},y=f.style||"DEFAULT",v=f.position||"TOP_LEFT",w=i(e.panControl,!0),k=i(e.mapTypeControl,!0),L=i(e.scaleControl,!0),b=i(e.streetViewControl,!0),_=i(_,!0),M={},x={zoom:this.zoom,center:u,mapTypeId:d},C={panControl:w,zoomControl:m,zoomControlOptions:{style:google.maps.ZoomControlStyle[y],position:google.maps.ControlPosition[v]},mapTypeControl:k,scaleControl:L,streetViewControl:b,overviewMapControl:_};if("string"==typeof e.el||"string"==typeof e.div?g.indexOf("#")>-1?this.el=p(g,e.context):this.el=function(e,t){var o=e.replace(".","");return"jQuery"in this&&t?$("."+o,t)[0]:document.getElementsByClassName(o)[0]}.apply(this,[g,e.context]):this.el=g,void 0===this.el||null===this.el)throw"No element defined.";for(window.context_menu=window.context_menu||{},window.context_menu[s.el.id]={},this.controls=[],this.overlays=[],this.layers=[],this.singleLayers={},this.markers=[],this.polylines=[],this.routes=[],this.polygons=[],this.infoWindow=null,this.overlay_el=null,this.zoom=e.zoom,this.registered_events={},this.el.style.width=e.width||this.el.scrollWidth||this.el.offsetWidth,this.el.style.height=e.height||this.el.scrollHeight||this.el.offsetHeight,google.maps.visualRefresh=e.enableNewStyle,n=0;n<c.length;n++)delete e[c[n]];for(1!=e.disableDefaultUI&&(x=r(x,C)),M=r(x,e),n=0;n<a.length;n++)delete M[a[n]];for(n=0;n<l.length;n++)delete M[l[n]];this.map=new google.maps.Map(this.el,M),h&&(this.markerClusterer=h.apply(this,[this.map]));var O=function(e,t){var o="",n=window.context_menu[s.el.id][e];for(var i in n)if(n.hasOwnProperty(i)){var r=n[i];o+='<li><a id="'+e+"_"+i+'" href="#">'+r.title+"</a></li>"}if(p("gmaps_context_menu")){var a=p("gmaps_context_menu");a.innerHTML=o;var l=a.getElementsByTagName("a"),c=l.length;for(i=0;i<c;i++){var g=l[i];google.maps.event.clearListeners(g,"click"),google.maps.event.addDomListenerOnce(g,"click",function(o){o.preventDefault(),n[this.id.replace(e+"_","")].action.apply(s,[t]),s.hideContextMenu()},!1)}var h=function(e){var t=0,o=0;if(e.getBoundingClientRect){var n=e.getBoundingClientRect(),i=-(window.scrollX?window.scrollX:window.pageXOffset),r=-(window.scrollY?windo
|