mapping-component-package-jp 0.1.16 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -50,5 +50,5 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
50
50
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
51
51
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
52
52
  PERFORMANCE OF THIS SOFTWARE.
53
- ***************************************************************************** */class Oe{static isAdvancedMarkerAvailable(e){return google.maps.marker&&!0===e.getMapCapabilities().isAdvancedMarkersAvailable}static isAdvancedMarker(e){return google.maps.marker&&e instanceof google.maps.marker.AdvancedMarkerElement}static setMap(e,t){this.isAdvancedMarker(e)?e.map=t:e.setMap(t)}static getPosition(e){if(this.isAdvancedMarker(e)){if(e.position){if(e.position instanceof google.maps.LatLng)return e.position;if(e.position.lat&&e.position.lng)return new google.maps.LatLng(e.position.lat,e.position.lng)}return new google.maps.LatLng(null)}return e.getPosition()}static getVisible(e){return!!this.isAdvancedMarker(e)||e.getVisible()}}class _e{constructor({markers:e,position:t}){this.markers=e,t&&(t instanceof google.maps.LatLng?this._position=t:this._position=new google.maps.LatLng(t))}get bounds(){if(0===this.markers.length&&!this._position)return;const e=new google.maps.LatLngBounds(this._position,this._position);for(const t of this.markers)e.extend(Oe.getPosition(t));return e}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter((e=>Oe.getVisible(e))).length}push(e){this.markers.push(e)}delete(){this.marker&&(Oe.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}class Te{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return Be(e)}}const Be=e=>e.map((e=>new _e({position:Oe.getPosition(e),markers:[e]})));class Re extends Te{constructor(e){var{maxZoom:t,radius:o=60}=e,n=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]])}return o}(e,["maxZoom","radius"]);super({maxZoom:t}),this.state={zoom:-1},this.superCluster=new Me(Object.assign({maxZoom:this.maxZoom,radius:o},n))}calculate(e){let t=!1;const o={zoom:e.map.getZoom()};if(!he(e.markers,this.markers)){t=!0,this.markers=[...e.markers];const o=this.markers.map((e=>{const t=Oe.getPosition(e);return{type:"Feature",geometry:{type:"Point",coordinates:[t.lng(),t.lat()]},properties:{marker:e}}}));this.superCluster.load(o)}return t||(this.state.zoom<=this.maxZoom||o.zoom<=this.maxZoom)&&(t=!he(this.state,o)),this.state=o,t&&(this.clusters=this.cluster(e)),{clusters:this.clusters,changed:t}}cluster({map:e}){return this.superCluster.getClusters([-180,-90,180,90],Math.round(e.getZoom())).map((e=>this.transformCluster(e)))}transformCluster({geometry:{coordinates:[e,t]},properties:o}){if(o.cluster)return new _e({markers:this.superCluster.getLeaves(o.cluster_id,1/0).map((e=>e.properties.marker)),position:{lat:t,lng:e}});const n=o.marker;return new _e({markers:[n],position:Oe.getPosition(n)})}}class De{constructor(e,t){this.markers={sum:e.length};const o=t.map((e=>e.count)),n=o.reduce(((e,t)=>e+t),0);this.clusters={count:t.length,markers:{mean:n/t.length,sum:n,min:Math.min(...o),max:Math.max(...o)}}}}class Ae{render({count:e,position:t},o,n){const i=`<svg fill="${e>Math.max(10,o.clusters.markers.mean)?"#ff0000":"#0000ff"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50">\n<circle cx="120" cy="120" opacity=".6" r="70" />\n<circle cx="120" cy="120" opacity=".3" r="90" />\n<circle cx="120" cy="120" opacity=".2" r="110" />\n<text x="50%" y="50%" style="fill:#fff" text-anchor="middle" font-size="50" dominant-baseline="middle" font-family="roboto,arial,sans-serif">${e}</text>\n</svg>`,s=`Cluster of ${e} markers`,r=Number(google.maps.Marker.MAX_ZINDEX)+e;if(Oe.isAdvancedMarkerAvailable(n)){const e=(new DOMParser).parseFromString(i,"image/svg+xml").documentElement;e.setAttribute("transform","translate(0 25)");const o={map:n,position:t,zIndex:r,title:s,content:e};return new google.maps.marker.AdvancedMarkerElement(o)}const a={position:t,zIndex:r,title:s,icon:{url:`data:image/svg+xml;base64,${btoa(i)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(a)}}class Ue{constructor(){!function(e,t){for(let o in t.prototype)e.prototype[o]=t.prototype[o]}(Ue,google.maps.OverlayView)}}var We;!function(e){e.CLUSTERING_BEGIN="clusteringbegin",e.CLUSTERING_END="clusteringend",e.CLUSTER_CLICK="click"}(We||(We={}));const Ze=(e,t,o)=>{o.fitBounds(t.bounds)};class Fe extends Ue{constructor({map:e,markers:t=[],algorithmOptions:o={},algorithm:n=new Re(o),renderer:i=new Ae,onClusterClick:s=Ze}){super(),this.markers=[...t],this.clusters=[],this.algorithm=n,this.renderer=i,this.onClusterClick=s,e&&this.setMap(e)}addMarker(e,t){this.markers.includes(e)||(this.markers.push(e),t||this.render())}addMarkers(e,t){e.forEach((e=>{this.addMarker(e,!0)})),t||this.render()}removeMarker(e,t){const o=this.markers.indexOf(e);return-1!==o&&(Oe.setMap(e,null),this.markers.splice(o,1),t||this.render(),!0)}removeMarkers(e,t){let o=!1;return e.forEach((e=>{o=this.removeMarker(e,!0)||o})),o&&!t&&this.render(),o}clearMarkers(e){this.markers.length=0,e||this.render()}render(){const e=this.getMap();if(e instanceof google.maps.Map&&e.getProjection()){google.maps.event.trigger(this,We.CLUSTERING_BEGIN,this);const{clusters:t,changed:o}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(o||null==o){const e=new Set;for(const o of t)1==o.markers.length&&e.add(o.markers[0]);const o=[];for(const t of this.clusters)null!=t.marker&&(1==t.markers.length?e.has(t.marker)||Oe.setMap(t.marker,null):o.push(t.marker));this.clusters=t,this.renderClusters(),requestAnimationFrame((()=>o.forEach((e=>Oe.setMap(e,null)))))}google.maps.event.trigger(this,We.CLUSTERING_END,this)}}onAdd(){this.idleListener=this.getMap().addListener("idle",this.render.bind(this)),this.render()}onRemove(){google.maps.event.removeListener(this.idleListener),this.reset()}reset(){this.markers.forEach((e=>Oe.setMap(e,null))),this.clusters.forEach((e=>e.delete())),this.clusters=[]}renderClusters(){const e=new De(this.markers,this.clusters),t=this.getMap();this.clusters.forEach((o=>{1===o.markers.length?o.marker=o.markers[0]:(o.marker=this.renderer.render(o,e,t),o.markers.forEach((e=>Oe.setMap(e,null))),this.onClusterClick&&o.marker.addListener("click",(e=>{google.maps.event.trigger(this,We.CLUSTER_CLICK,o),this.onClusterClick(e,o,t)}))),Oe.setMap(o.marker,t)}))}}function je(t){var o=function(){C(!!e.useContext,"useGoogleMap is React hook and requires React version 16.8+");var t=e.useContext(b);return C(!!t,"useGoogleMap needs a GoogleMap available up in the tree"),t}(),n=e.useState(null),i=n[0],s=n[1];return e.useEffect((function(){if(o&&null===i){var e=new Fe(m(m({},t),{map:o}));s(e)}}),[o]),i}e.memo((function(e){var t=e.children,o=je(e.options);return null!==o?t(o):null}));var Ne={onCloseClick:"closeclick",onContentChanged:"content_changed",onDomReady:"domready",onPositionChanged:"position_changed",onZindexChanged:"zindex_changed"},Ve={options:function(e,t){e.setOptions(t)},position:function(e,t){e.setPosition(t)},zIndex:function(e,t){e.setZIndex(t)}};e.memo((function(o){var n=o.children,i=o.anchor,s=o.options,r=o.position,a=o.zIndex,l=o.onCloseClick,c=o.onDomReady,g=o.onContentChanged,p=o.onPositionChanged,u=o.onZindexChanged,d=o.onLoad,h=o.onUnmount,f=e.useContext(b),v=e.useState(null),y=v[0],L=v[1],I=e.useState(null),w=I[0],k=I[1],M=e.useState(null),P=M[0],z=M[1],x=e.useState(null),E=x[0],S=x[1],O=e.useState(null),_=O[0],T=O[1],B=e.useState(null),R=B[0],D=B[1],A=e.useRef(null);return e.useEffect((function(){null!==y&&(y.close(),i?y.open(f,i):y.getPosition()&&y.open(f))}),[f,y,i]),e.useEffect((function(){s&&null!==y&&y.setOptions(s)}),[y,s]),e.useEffect((function(){r&&null!==y&&y.setPosition(r)}),[r]),e.useEffect((function(){"number"==typeof a&&null!==y&&y.setZIndex(a)}),[a]),e.useEffect((function(){y&&l&&(null!==w&&google.maps.event.removeListener(w),k(google.maps.event.addListener(y,"closeclick",l)))}),[l]),e.useEffect((function(){y&&c&&(null!==P&&google.maps.event.removeListener(P),z(google.maps.event.addListener(y,"domready",c)))}),[c]),e.useEffect((function(){y&&g&&(null!==E&&google.maps.event.removeListener(E),S(google.maps.event.addListener(y,"content_changed",g)))}),[g]),e.useEffect((function(){y&&p&&(null!==_&&google.maps.event.removeListener(_),T(google.maps.event.addListener(y,"position_changed",p)))}),[p]),e.useEffect((function(){y&&u&&(null!==R&&google.maps.event.removeListener(R),D(google.maps.event.addListener(y,"zindex_changed",u)))}),[u]),e.useEffect((function(){var e=new google.maps.InfoWindow(m({},s||{}));return L(e),A.current=document.createElement("div"),l&&k(google.maps.event.addListener(e,"closeclick",l)),c&&z(google.maps.event.addListener(e,"domready",c)),g&&S(google.maps.event.addListener(e,"content_changed",g)),p&&T(google.maps.event.addListener(e,"position_changed",p)),u&&D(google.maps.event.addListener(e,"zindex_changed",u)),e.setContent(A.current),r&&e.setPosition(r),a&&e.setZIndex(a),i?e.open(f,i):e.getPosition()?e.open(f):C(!1,"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>."),d&&d(e),function(){w&&google.maps.event.removeListener(w),E&&google.maps.event.removeListener(E),P&&google.maps.event.removeListener(P),_&&google.maps.event.removeListener(_),R&&google.maps.event.removeListener(R),h&&h(e),e.close()}}),[]),A.current?t.createPortal(e.Children.only(n),A.current):null})),function(o){function n(){var e=null!==o&&o.apply(this,arguments)||this;return e.registeredEvents=[],e.containerElement=null,e.state={infoWindow:null},e.open=function(t,o){o?t.open(e.context,o):t.getPosition()?t.open(e.context):C(!1,"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>.")},e.setInfoWindowCallback=function(){null!==e.state.infoWindow&&null!==e.containerElement&&(e.state.infoWindow.setContent(e.containerElement),e.open(e.state.infoWindow,e.props.anchor),e.props.onLoad&&e.props.onLoad(e.state.infoWindow))},e}h(n,o),n.prototype.componentDidMount=function(){var e=new google.maps.InfoWindow(m({},this.props.options||{}));this.containerElement=document.createElement("div"),this.registeredEvents=z({updaterMap:Ve,eventMap:Ne,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{infoWindow:e}}),this.setInfoWindowCallback)},n.prototype.componentDidUpdate=function(e){null!==this.state.infoWindow&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:Ve,eventMap:Ne,prevProps:e,nextProps:this.props,instance:this.state.infoWindow}))},n.prototype.componentWillUnmount=function(){null!==this.state.infoWindow&&(P(this.registeredEvents),this.props.onUnmount&&this.props.onUnmount(this.state.infoWindow),this.state.infoWindow.close())},n.prototype.render=function(){return this.containerElement?t.createPortal(e.Children.only(this.props.children),this.containerElement):null},n.contextType=b}(e.PureComponent);var He={onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},$e={draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},path:function(e,t){e.setPath(t)},visible:function(e,t){e.setVisible(t)}},Ge={};e.memo((function(t){var o=t.options,n=t.draggable,i=t.editable,s=t.visible,r=t.path,a=t.onDblClick,l=t.onDragEnd,c=t.onDragStart,g=t.onMouseDown,p=t.onMouseMove,u=t.onMouseOut,d=t.onMouseOver,h=t.onMouseUp,f=t.onRightClick,v=t.onClick,y=t.onDrag,L=t.onLoad,I=t.onUnmount,C=e.useContext(b),w=e.useState(null),k=w[0],M=w[1],P=e.useState(null),z=P[0],x=P[1],E=e.useState(null),S=E[0],O=E[1],_=e.useState(null),T=_[0],B=_[1],R=e.useState(null),D=R[0],A=R[1],U=e.useState(null),W=U[0],Z=U[1],F=e.useState(null),j=F[0],N=F[1],V=e.useState(null),H=V[0],$=V[1],G=e.useState(null),Y=G[0],J=G[1],K=e.useState(null),q=K[0],X=K[1],Q=e.useState(null),ee=Q[0],te=Q[1],oe=e.useState(null),ne=oe[0],ie=oe[1];return e.useEffect((function(){null!==k&&k.setMap(C)}),[C]),e.useEffect((function(){void 0!==o&&null!==k&&k.setOptions(o)}),[k,o]),e.useEffect((function(){void 0!==n&&null!==k&&k.setDraggable(n)}),[k,n]),e.useEffect((function(){void 0!==i&&null!==k&&k.setEditable(i)}),[k,i]),e.useEffect((function(){void 0!==s&&null!==k&&k.setVisible(s)}),[k,s]),e.useEffect((function(){void 0!==r&&null!==k&&k.setPath(r)}),[k,r]),e.useEffect((function(){k&&a&&(null!==z&&google.maps.event.removeListener(z),x(google.maps.event.addListener(k,"dblclick",a)))}),[a]),e.useEffect((function(){k&&l&&(null!==S&&google.maps.event.removeListener(S),O(google.maps.event.addListener(k,"dragend",l)))}),[l]),e.useEffect((function(){k&&c&&(null!==T&&google.maps.event.removeListener(T),B(google.maps.event.addListener(k,"dragstart",c)))}),[c]),e.useEffect((function(){k&&g&&(null!==D&&google.maps.event.removeListener(D),A(google.maps.event.addListener(k,"mousedown",g)))}),[g]),e.useEffect((function(){k&&p&&(null!==W&&google.maps.event.removeListener(W),Z(google.maps.event.addListener(k,"mousemove",p)))}),[p]),e.useEffect((function(){k&&u&&(null!==j&&google.maps.event.removeListener(j),N(google.maps.event.addListener(k,"mouseout",u)))}),[u]),e.useEffect((function(){k&&d&&(null!==H&&google.maps.event.removeListener(H),$(google.maps.event.addListener(k,"mouseover",d)))}),[d]),e.useEffect((function(){k&&h&&(null!==Y&&google.maps.event.removeListener(Y),J(google.maps.event.addListener(k,"mouseup",h)))}),[h]),e.useEffect((function(){k&&f&&(null!==q&&google.maps.event.removeListener(q),X(google.maps.event.addListener(k,"rightclick",f)))}),[f]),e.useEffect((function(){k&&v&&(null!==ee&&google.maps.event.removeListener(ee),te(google.maps.event.addListener(k,"click",v)))}),[v]),e.useEffect((function(){k&&y&&(null!==ne&&google.maps.event.removeListener(ne),ie(google.maps.event.addListener(k,"drag",y)))}),[y]),e.useEffect((function(){var e=new google.maps.Polyline(m(m({},o||Ge),{map:C}));return r&&e.setPath(r),void 0!==s&&e.setVisible(s),void 0!==i&&e.setEditable(i),void 0!==n&&e.setDraggable(n),a&&x(google.maps.event.addListener(e,"dblclick",a)),l&&O(google.maps.event.addListener(e,"dragend",l)),c&&B(google.maps.event.addListener(e,"dragstart",c)),g&&A(google.maps.event.addListener(e,"mousedown",g)),p&&Z(google.maps.event.addListener(e,"mousemove",p)),u&&N(google.maps.event.addListener(e,"mouseout",u)),d&&$(google.maps.event.addListener(e,"mouseover",d)),h&&J(google.maps.event.addListener(e,"mouseup",h)),f&&X(google.maps.event.addListener(e,"rightclick",f)),v&&te(google.maps.event.addListener(e,"click",v)),y&&ie(google.maps.event.addListener(e,"drag",y)),M(e),L&&L(e),function(){null!==z&&google.maps.event.removeListener(z),null!==S&&google.maps.event.removeListener(S),null!==T&&google.maps.event.removeListener(T),null!==D&&google.maps.event.removeListener(D),null!==W&&google.maps.event.removeListener(W),null!==j&&google.maps.event.removeListener(j),null!==H&&google.maps.event.removeListener(H),null!==Y&&google.maps.event.removeListener(Y),null!==q&&google.maps.event.removeListener(q),null!==ee&&google.maps.event.removeListener(ee),I&&I(e),e.setMap(null)}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={polyline:null},t.setPolylineCallback=function(){null!==t.state.polyline&&t.props.onLoad&&t.props.onLoad(t.state.polyline)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.Polyline(m(m({},this.props.options||{}),{map:this.context}));this.registeredEvents=z({updaterMap:$e,eventMap:He,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{polyline:e}}),this.setPolylineCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.polyline&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:$e,eventMap:He,prevProps:e,nextProps:this.props,instance:this.state.polyline}))},t.prototype.componentWillUnmount=function(){null!==this.state.polyline&&(this.props.onUnmount&&this.props.onUnmount(this.state.polyline),P(this.registeredEvents),this.state.polyline.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var Ye={onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},Je={draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},path:function(e,t){e.setPath(t)},paths:function(e,t){e.setPaths(t)},visible:function(e,t){e.setVisible(t)}};e.memo((function(t){var o=t.options,n=t.draggable,i=t.editable,s=t.visible,r=t.path,a=t.paths,l=t.onDblClick,c=t.onDragEnd,g=t.onDragStart,p=t.onMouseDown,u=t.onMouseMove,d=t.onMouseOut,h=t.onMouseOver,f=t.onMouseUp,v=t.onRightClick,y=t.onClick,L=t.onDrag,I=t.onLoad,C=t.onUnmount,w=t.onEdit,k=e.useContext(b),M=e.useState(null),P=M[0],z=M[1],x=e.useState(null),E=x[0],S=x[1],O=e.useState(null),_=O[0],T=O[1],B=e.useState(null),R=B[0],D=B[1],A=e.useState(null),U=A[0],W=A[1],Z=e.useState(null),F=Z[0],j=Z[1],N=e.useState(null),V=N[0],H=N[1],$=e.useState(null),G=$[0],Y=$[1],J=e.useState(null),K=J[0],q=J[1],X=e.useState(null),Q=X[0],ee=X[1],te=e.useState(null),oe=te[0],ne=te[1],ie=e.useState(null),se=ie[0],re=ie[1];return e.useEffect((function(){null!==P&&P.setMap(k)}),[k]),e.useEffect((function(){void 0!==o&&null!==P&&P.setOptions(o)}),[P,o]),e.useEffect((function(){void 0!==n&&null!==P&&P.setDraggable(n)}),[P,n]),e.useEffect((function(){void 0!==i&&null!==P&&P.setEditable(i)}),[P,i]),e.useEffect((function(){void 0!==s&&null!==P&&P.setVisible(s)}),[P,s]),e.useEffect((function(){void 0!==r&&null!==P&&P.setPath(r)}),[P,r]),e.useEffect((function(){void 0!==a&&null!==P&&P.setPaths(a)}),[P,a]),e.useEffect((function(){P&&l&&(null!==E&&google.maps.event.removeListener(E),S(google.maps.event.addListener(P,"dblclick",l)))}),[l]),e.useEffect((function(){P&&(google.maps.event.addListener(P.getPath(),"insert_at",(function(){null==w||w(P)})),google.maps.event.addListener(P.getPath(),"set_at",(function(){null==w||w(P)})))}),[P,w]),e.useEffect((function(){P&&c&&(null!==_&&google.maps.event.removeListener(_),T(google.maps.event.addListener(P,"dragend",c)))}),[c]),e.useEffect((function(){P&&g&&(null!==R&&google.maps.event.removeListener(R),D(google.maps.event.addListener(P,"dragstart",g)))}),[g]),e.useEffect((function(){P&&p&&(null!==U&&google.maps.event.removeListener(U),W(google.maps.event.addListener(P,"mousedown",p)))}),[p]),e.useEffect((function(){P&&u&&(null!==F&&google.maps.event.removeListener(F),j(google.maps.event.addListener(P,"mousemove",u)))}),[u]),e.useEffect((function(){P&&d&&(null!==V&&google.maps.event.removeListener(V),H(google.maps.event.addListener(P,"mouseout",d)))}),[d]),e.useEffect((function(){P&&h&&(null!==G&&google.maps.event.removeListener(G),Y(google.maps.event.addListener(P,"mouseover",h)))}),[h]),e.useEffect((function(){P&&f&&(null!==K&&google.maps.event.removeListener(K),q(google.maps.event.addListener(P,"mouseup",f)))}),[f]),e.useEffect((function(){P&&v&&(null!==Q&&google.maps.event.removeListener(Q),ee(google.maps.event.addListener(P,"rightclick",v)))}),[v]),e.useEffect((function(){P&&y&&(null!==oe&&google.maps.event.removeListener(oe),ne(google.maps.event.addListener(P,"click",y)))}),[y]),e.useEffect((function(){P&&L&&(null!==se&&google.maps.event.removeListener(se),re(google.maps.event.addListener(P,"drag",L)))}),[L]),e.useEffect((function(){var e=new google.maps.Polygon(m(m({},o||{}),{map:k}));return r&&e.setPath(r),a&&e.setPaths(a),void 0!==s&&e.setVisible(s),void 0!==i&&e.setEditable(i),void 0!==n&&e.setDraggable(n),l&&S(google.maps.event.addListener(e,"dblclick",l)),c&&T(google.maps.event.addListener(e,"dragend",c)),g&&D(google.maps.event.addListener(e,"dragstart",g)),p&&W(google.maps.event.addListener(e,"mousedown",p)),u&&j(google.maps.event.addListener(e,"mousemove",u)),d&&H(google.maps.event.addListener(e,"mouseout",d)),h&&Y(google.maps.event.addListener(e,"mouseover",h)),f&&q(google.maps.event.addListener(e,"mouseup",f)),v&&ee(google.maps.event.addListener(e,"rightclick",v)),y&&ne(google.maps.event.addListener(e,"click",y)),L&&re(google.maps.event.addListener(e,"drag",L)),z(e),I&&I(e),function(){null!==E&&google.maps.event.removeListener(E),null!==_&&google.maps.event.removeListener(_),null!==R&&google.maps.event.removeListener(R),null!==U&&google.maps.event.removeListener(U),null!==F&&google.maps.event.removeListener(F),null!==V&&google.maps.event.removeListener(V),null!==G&&google.maps.event.removeListener(G),null!==K&&google.maps.event.removeListener(K),null!==Q&&google.maps.event.removeListener(Q),null!==oe&&google.maps.event.removeListener(oe),C&&C(e),e.setMap(null)}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={polygon:null},t.setPolygonCallback=function(){null!==t.state.polygon&&t.props.onLoad&&t.props.onLoad(t.state.polygon)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.Polygon(m(m({},this.props.options||{}),{map:this.context}));this.registeredEvents=z({updaterMap:Je,eventMap:Ye,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{polygon:e}}),this.setPolygonCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.polygon&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:Je,eventMap:Ye,prevProps:e,nextProps:this.props,instance:this.state.polygon}))},t.prototype.componentWillUnmount=function(){null!==this.state.polygon&&(this.props.onUnmount&&this.props.onUnmount(this.state.polygon),P(this.registeredEvents),this.state.polygon&&this.state.polygon.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var Ke={onBoundsChanged:"bounds_changed",onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},qe={bounds:function(e,t){e.setBounds(t)},draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},visible:function(e,t){e.setVisible(t)}};e.memo((function(t){var o=t.options,n=t.bounds,i=t.draggable,s=t.editable,r=t.visible,a=t.onDblClick,l=t.onDragEnd,c=t.onDragStart,g=t.onMouseDown,p=t.onMouseMove,u=t.onMouseOut,d=t.onMouseOver,h=t.onMouseUp,f=t.onRightClick,v=t.onClick,y=t.onDrag,L=t.onBoundsChanged,I=t.onLoad,C=t.onUnmount,w=e.useContext(b),k=e.useState(null),M=k[0],P=k[1],z=e.useState(null),x=z[0],E=z[1],S=e.useState(null),O=S[0],_=S[1],T=e.useState(null),B=T[0],R=T[1],D=e.useState(null),A=D[0],U=D[1],W=e.useState(null),Z=W[0],F=W[1],j=e.useState(null),N=j[0],V=j[1],H=e.useState(null),$=H[0],G=H[1],Y=e.useState(null),J=Y[0],K=Y[1],q=e.useState(null),X=q[0],Q=q[1],ee=e.useState(null),te=ee[0],oe=ee[1],ne=e.useState(null),ie=ne[0],se=ne[1],re=e.useState(null),ae=re[0],le=re[1];return e.useEffect((function(){null!==M&&M.setMap(w)}),[w]),e.useEffect((function(){void 0!==o&&null!==M&&M.setOptions(o)}),[M,o]),e.useEffect((function(){void 0!==i&&null!==M&&M.setDraggable(i)}),[M,i]),e.useEffect((function(){void 0!==s&&null!==M&&M.setEditable(s)}),[M,s]),e.useEffect((function(){void 0!==r&&null!==M&&M.setVisible(r)}),[M,r]),e.useEffect((function(){void 0!==n&&null!==M&&M.setBounds(n)}),[M,n]),e.useEffect((function(){M&&a&&(null!==x&&google.maps.event.removeListener(x),E(google.maps.event.addListener(M,"dblclick",a)))}),[a]),e.useEffect((function(){M&&l&&(null!==O&&google.maps.event.removeListener(O),_(google.maps.event.addListener(M,"dragend",l)))}),[l]),e.useEffect((function(){M&&c&&(null!==B&&google.maps.event.removeListener(B),R(google.maps.event.addListener(M,"dragstart",c)))}),[c]),e.useEffect((function(){M&&g&&(null!==A&&google.maps.event.removeListener(A),U(google.maps.event.addListener(M,"mousedown",g)))}),[g]),e.useEffect((function(){M&&p&&(null!==Z&&google.maps.event.removeListener(Z),F(google.maps.event.addListener(M,"mousemove",p)))}),[p]),e.useEffect((function(){M&&u&&(null!==N&&google.maps.event.removeListener(N),V(google.maps.event.addListener(M,"mouseout",u)))}),[u]),e.useEffect((function(){M&&d&&(null!==$&&google.maps.event.removeListener($),G(google.maps.event.addListener(M,"mouseover",d)))}),[d]),e.useEffect((function(){M&&h&&(null!==J&&google.maps.event.removeListener(J),K(google.maps.event.addListener(M,"mouseup",h)))}),[h]),e.useEffect((function(){M&&f&&(null!==X&&google.maps.event.removeListener(X),Q(google.maps.event.addListener(M,"rightclick",f)))}),[f]),e.useEffect((function(){M&&v&&(null!==te&&google.maps.event.removeListener(te),oe(google.maps.event.addListener(M,"click",v)))}),[v]),e.useEffect((function(){M&&y&&(null!==ie&&google.maps.event.removeListener(ie),se(google.maps.event.addListener(M,"drag",y)))}),[y]),e.useEffect((function(){M&&L&&(null!==ae&&google.maps.event.removeListener(ae),le(google.maps.event.addListener(M,"bounds_changed",L)))}),[L]),e.useEffect((function(){var e=new google.maps.Rectangle(m(m({},o||{}),{map:w}));return void 0!==r&&e.setVisible(r),void 0!==s&&e.setEditable(s),void 0!==i&&e.setDraggable(i),void 0!==n&&e.setBounds(n),a&&E(google.maps.event.addListener(e,"dblclick",a)),l&&_(google.maps.event.addListener(e,"dragend",l)),c&&R(google.maps.event.addListener(e,"dragstart",c)),g&&U(google.maps.event.addListener(e,"mousedown",g)),p&&F(google.maps.event.addListener(e,"mousemove",p)),u&&V(google.maps.event.addListener(e,"mouseout",u)),d&&G(google.maps.event.addListener(e,"mouseover",d)),h&&K(google.maps.event.addListener(e,"mouseup",h)),f&&Q(google.maps.event.addListener(e,"rightclick",f)),v&&oe(google.maps.event.addListener(e,"click",v)),y&&se(google.maps.event.addListener(e,"drag",y)),L&&le(google.maps.event.addListener(e,"bounds_changed",L)),P(e),I&&I(e),function(){null!==x&&google.maps.event.removeListener(x),null!==O&&google.maps.event.removeListener(O),null!==B&&google.maps.event.removeListener(B),null!==A&&google.maps.event.removeListener(A),null!==Z&&google.maps.event.removeListener(Z),null!==N&&google.maps.event.removeListener(N),null!==$&&google.maps.event.removeListener($),null!==J&&google.maps.event.removeListener(J),null!==X&&google.maps.event.removeListener(X),null!==te&&google.maps.event.removeListener(te),null!==ie&&google.maps.event.removeListener(ie),null!==ae&&google.maps.event.removeListener(ae),C&&C(e),e.setMap(null)}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={rectangle:null},t.setRectangleCallback=function(){null!==t.state.rectangle&&t.props.onLoad&&t.props.onLoad(t.state.rectangle)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.Rectangle(m(m({},this.props.options||{}),{map:this.context}));this.registeredEvents=z({updaterMap:qe,eventMap:Ke,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{rectangle:e}}),this.setRectangleCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.rectangle&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:qe,eventMap:Ke,prevProps:e,nextProps:this.props,instance:this.state.rectangle}))},t.prototype.componentWillUnmount=function(){null!==this.state.rectangle&&(this.props.onUnmount&&this.props.onUnmount(this.state.rectangle),P(this.registeredEvents),this.state.rectangle.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var Xe={onCenterChanged:"center_changed",onRadiusChanged:"radius_changed",onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},Qe={center:function(e,t){e.setCenter(t)},draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},radius:function(e,t){e.setRadius(t)},visible:function(e,t){e.setVisible(t)}},et={};e.memo((function(t){var o=t.options,n=t.center,i=t.radius,s=t.draggable,r=t.editable,a=t.visible,l=t.onDblClick,c=t.onDragEnd,g=t.onDragStart,p=t.onMouseDown,u=t.onMouseMove,d=t.onMouseOut,h=t.onMouseOver,f=t.onMouseUp,v=t.onRightClick,y=t.onClick,L=t.onDrag,I=t.onCenterChanged,C=t.onRadiusChanged,w=t.onLoad,k=t.onUnmount,M=e.useContext(b),P=e.useState(null),z=P[0],x=P[1],E=e.useState(null),S=E[0],O=E[1],_=e.useState(null),T=_[0],B=_[1],R=e.useState(null),D=R[0],A=R[1],U=e.useState(null),W=U[0],Z=U[1],F=e.useState(null),j=F[0],N=F[1],V=e.useState(null),H=V[0],$=V[1],G=e.useState(null),Y=G[0],J=G[1],K=e.useState(null),q=K[0],X=K[1],Q=e.useState(null),ee=Q[0],te=Q[1],oe=e.useState(null),ne=oe[0],ie=oe[1],se=e.useState(null),re=se[0],ae=se[1],le=e.useState(null),ce=le[0],ge=le[1],pe=e.useState(null),ue=pe[0],de=pe[1];return e.useEffect((function(){null!==z&&z.setMap(M)}),[M]),e.useEffect((function(){void 0!==o&&null!==z&&z.setOptions(o)}),[z,o]),e.useEffect((function(){void 0!==s&&null!==z&&z.setDraggable(s)}),[z,s]),e.useEffect((function(){void 0!==r&&null!==z&&z.setEditable(r)}),[z,r]),e.useEffect((function(){void 0!==a&&null!==z&&z.setVisible(a)}),[z,a]),e.useEffect((function(){"number"==typeof i&&null!==z&&z.setRadius(i)}),[z,i]),e.useEffect((function(){void 0!==n&&null!==z&&z.setCenter(n)}),[z,n]),e.useEffect((function(){z&&l&&(null!==S&&google.maps.event.removeListener(S),O(google.maps.event.addListener(z,"dblclick",l)))}),[l]),e.useEffect((function(){z&&c&&(null!==T&&google.maps.event.removeListener(T),B(google.maps.event.addListener(z,"dragend",c)))}),[c]),e.useEffect((function(){z&&g&&(null!==D&&google.maps.event.removeListener(D),A(google.maps.event.addListener(z,"dragstart",g)))}),[g]),e.useEffect((function(){z&&p&&(null!==W&&google.maps.event.removeListener(W),Z(google.maps.event.addListener(z,"mousedown",p)))}),[p]),e.useEffect((function(){z&&u&&(null!==j&&google.maps.event.removeListener(j),N(google.maps.event.addListener(z,"mousemove",u)))}),[u]),e.useEffect((function(){z&&d&&(null!==H&&google.maps.event.removeListener(H),$(google.maps.event.addListener(z,"mouseout",d)))}),[d]),e.useEffect((function(){z&&h&&(null!==Y&&google.maps.event.removeListener(Y),J(google.maps.event.addListener(z,"mouseover",h)))}),[h]),e.useEffect((function(){z&&f&&(null!==q&&google.maps.event.removeListener(q),X(google.maps.event.addListener(z,"mouseup",f)))}),[f]),e.useEffect((function(){z&&v&&(null!==ee&&google.maps.event.removeListener(ee),te(google.maps.event.addListener(z,"rightclick",v)))}),[v]),e.useEffect((function(){z&&y&&(null!==ne&&google.maps.event.removeListener(ne),ie(google.maps.event.addListener(z,"click",y)))}),[y]),e.useEffect((function(){z&&L&&(null!==re&&google.maps.event.removeListener(re),ae(google.maps.event.addListener(z,"drag",L)))}),[L]),e.useEffect((function(){z&&I&&(null!==ce&&google.maps.event.removeListener(ce),ge(google.maps.event.addListener(z,"center_changed",I)))}),[y]),e.useEffect((function(){z&&C&&(null!==ue&&google.maps.event.removeListener(ue),de(google.maps.event.addListener(z,"radius_changed",C)))}),[C]),e.useEffect((function(){var e=new google.maps.Circle(m(m({},o||et),{map:M}));return"number"==typeof i&&e.setRadius(i),void 0!==n&&e.setCenter(n),"number"==typeof i&&e.setRadius(i),void 0!==a&&e.setVisible(a),void 0!==r&&e.setEditable(r),void 0!==s&&e.setDraggable(s),l&&O(google.maps.event.addListener(e,"dblclick",l)),c&&B(google.maps.event.addListener(e,"dragend",c)),g&&A(google.maps.event.addListener(e,"dragstart",g)),p&&Z(google.maps.event.addListener(e,"mousedown",p)),u&&N(google.maps.event.addListener(e,"mousemove",u)),d&&$(google.maps.event.addListener(e,"mouseout",d)),h&&J(google.maps.event.addListener(e,"mouseover",h)),f&&X(google.maps.event.addListener(e,"mouseup",f)),v&&te(google.maps.event.addListener(e,"rightclick",v)),y&&ie(google.maps.event.addListener(e,"click",y)),L&&ae(google.maps.event.addListener(e,"drag",L)),I&&ge(google.maps.event.addListener(e,"center_changed",I)),C&&de(google.maps.event.addListener(e,"radius_changed",C)),x(e),w&&w(e),function(){null!==S&&google.maps.event.removeListener(S),null!==T&&google.maps.event.removeListener(T),null!==D&&google.maps.event.removeListener(D),null!==W&&google.maps.event.removeListener(W),null!==j&&google.maps.event.removeListener(j),null!==H&&google.maps.event.removeListener(H),null!==Y&&google.maps.event.removeListener(Y),null!==q&&google.maps.event.removeListener(q),null!==ee&&google.maps.event.removeListener(ee),null!==ne&&google.maps.event.removeListener(ne),null!==ce&&google.maps.event.removeListener(ce),null!==ue&&google.maps.event.removeListener(ue),k&&k(e),e.setMap(null)}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={circle:null},t.setCircleCallback=function(){null!==t.state.circle&&t.props.onLoad&&t.props.onLoad(t.state.circle)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.Circle(m(m({},this.props.options||{}),{map:this.context}));this.registeredEvents=z({updaterMap:Qe,eventMap:Xe,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{circle:e}}),this.setCircleCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.circle&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:Qe,eventMap:Xe,prevProps:e,nextProps:this.props,instance:this.state.circle}))},t.prototype.componentWillUnmount=function(){var e;null!==this.state.circle&&(this.props.onUnmount&&this.props.onUnmount(this.state.circle),P(this.registeredEvents),null===(e=this.state.circle)||void 0===e||e.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var tt={onClick:"click",onDblClick:"dblclick",onMouseDown:"mousedown",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick",onAddFeature:"addfeature",onRemoveFeature:"removefeature",onRemoveProperty:"removeproperty",onSetGeometry:"setgeometry",onSetProperty:"setproperty"},ot={add:function(e,t){e.add(t)},addgeojson:function(e,t,o){e.addGeoJson(t,o)},contains:function(e,t){e.contains(t)},foreach:function(e,t){e.forEach(t)},loadgeojson:function(e,t,o,n){e.loadGeoJson(t,o,n)},overridestyle:function(e,t,o){e.overrideStyle(t,o)},remove:function(e,t){e.remove(t)},revertstyle:function(e,t){e.revertStyle(t)},controlposition:function(e,t){e.setControlPosition(t)},controls:function(e,t){e.setControls(t)},drawingmode:function(e,t){e.setDrawingMode(t)},map:function(e,t){e.setMap(t)},style:function(e,t){e.setStyle(t)},togeojson:function(e,t){e.toGeoJson(t)}};e.memo((function(t){var o=t.options,n=t.onClick,i=t.onDblClick,s=t.onMouseDown,r=t.onMouseMove,a=t.onMouseOut,l=t.onMouseOver,c=t.onMouseUp,g=t.onRightClick,p=t.onAddFeature,u=t.onRemoveFeature,d=t.onRemoveProperty,h=t.onSetGeometry,f=t.onSetProperty,v=t.onLoad,y=t.onUnmount,L=e.useContext(b),I=e.useState(null),C=I[0],w=I[1],k=e.useState(null),M=k[0],P=k[1],z=e.useState(null),x=z[0],E=z[1],S=e.useState(null),O=S[0],_=S[1],T=e.useState(null),B=T[0],R=T[1],D=e.useState(null),A=D[0],U=D[1],W=e.useState(null),Z=W[0],F=W[1],j=e.useState(null),N=j[0],V=j[1],H=e.useState(null),$=H[0],G=H[1],Y=e.useState(null),J=Y[0],K=Y[1],q=e.useState(null),X=q[0],Q=q[1],ee=e.useState(null),te=ee[0],oe=ee[1],ne=e.useState(null),ie=ne[0],se=ne[1],re=e.useState(null),ae=re[0],le=re[1];return e.useEffect((function(){null!==C&&C.setMap(L)}),[L]),e.useEffect((function(){C&&i&&(null!==M&&google.maps.event.removeListener(M),P(google.maps.event.addListener(C,"dblclick",i)))}),[i]),e.useEffect((function(){C&&s&&(null!==x&&google.maps.event.removeListener(x),E(google.maps.event.addListener(C,"mousedown",s)))}),[s]),e.useEffect((function(){C&&r&&(null!==O&&google.maps.event.removeListener(O),_(google.maps.event.addListener(C,"mousemove",r)))}),[r]),e.useEffect((function(){C&&a&&(null!==B&&google.maps.event.removeListener(B),R(google.maps.event.addListener(C,"mouseout",a)))}),[a]),e.useEffect((function(){C&&l&&(null!==A&&google.maps.event.removeListener(A),U(google.maps.event.addListener(C,"mouseover",l)))}),[l]),e.useEffect((function(){C&&c&&(null!==Z&&google.maps.event.removeListener(Z),F(google.maps.event.addListener(C,"mouseup",c)))}),[c]),e.useEffect((function(){C&&g&&(null!==N&&google.maps.event.removeListener(N),V(google.maps.event.addListener(C,"rightclick",g)))}),[g]),e.useEffect((function(){C&&n&&(null!==$&&google.maps.event.removeListener($),G(google.maps.event.addListener(C,"click",n)))}),[n]),e.useEffect((function(){C&&p&&(null!==J&&google.maps.event.removeListener(J),K(google.maps.event.addListener(C,"addfeature",p)))}),[p]),e.useEffect((function(){C&&u&&(null!==X&&google.maps.event.removeListener(X),Q(google.maps.event.addListener(C,"removefeature",u)))}),[u]),e.useEffect((function(){C&&d&&(null!==te&&google.maps.event.removeListener(te),oe(google.maps.event.addListener(C,"removeproperty",d)))}),[d]),e.useEffect((function(){C&&h&&(null!==ie&&google.maps.event.removeListener(ie),se(google.maps.event.addListener(C,"setgeometry",h)))}),[h]),e.useEffect((function(){C&&f&&(null!==ae&&google.maps.event.removeListener(ae),le(google.maps.event.addListener(C,"setproperty",f)))}),[f]),e.useEffect((function(){if(null!==L){var e=new google.maps.Data(m(m({},o||{}),{map:L}));i&&P(google.maps.event.addListener(e,"dblclick",i)),s&&E(google.maps.event.addListener(e,"mousedown",s)),r&&_(google.maps.event.addListener(e,"mousemove",r)),a&&R(google.maps.event.addListener(e,"mouseout",a)),l&&U(google.maps.event.addListener(e,"mouseover",l)),c&&F(google.maps.event.addListener(e,"mouseup",c)),g&&V(google.maps.event.addListener(e,"rightclick",g)),n&&G(google.maps.event.addListener(e,"click",n)),p&&K(google.maps.event.addListener(e,"addfeature",p)),u&&Q(google.maps.event.addListener(e,"removefeature",u)),d&&oe(google.maps.event.addListener(e,"removeproperty",d)),h&&se(google.maps.event.addListener(e,"setgeometry",h)),f&&le(google.maps.event.addListener(e,"setproperty",f)),w(e),v&&v(e)}return function(){C&&(null!==M&&google.maps.event.removeListener(M),null!==x&&google.maps.event.removeListener(x),null!==O&&google.maps.event.removeListener(O),null!==B&&google.maps.event.removeListener(B),null!==A&&google.maps.event.removeListener(A),null!==Z&&google.maps.event.removeListener(Z),null!==N&&google.maps.event.removeListener(N),null!==$&&google.maps.event.removeListener($),null!==J&&google.maps.event.removeListener(J),null!==X&&google.maps.event.removeListener(X),null!==te&&google.maps.event.removeListener(te),null!==ie&&google.maps.event.removeListener(ie),null!==ae&&google.maps.event.removeListener(ae),y&&y(C),C.setMap(null))}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={data:null},t.setDataCallback=function(){null!==t.state.data&&t.props.onLoad&&t.props.onLoad(t.state.data)},t}h(t,e),t.prototype.componentDidMount=function(){if(null!==this.context){var e=new google.maps.Data(m(m({},this.props.options||{}),{map:this.context}));this.registeredEvents=z({updaterMap:ot,eventMap:tt,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{data:e}}),this.setDataCallback)}},t.prototype.componentDidUpdate=function(e){null!==this.state.data&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:ot,eventMap:tt,prevProps:e,nextProps:this.props,instance:this.state.data}))},t.prototype.componentWillUnmount=function(){null!==this.state.data&&(this.props.onUnmount&&this.props.onUnmount(this.state.data),P(this.registeredEvents),this.state.data&&this.state.data.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var nt={onClick:"click",onDefaultViewportChanged:"defaultviewport_changed",onStatusChanged:"status_changed"},it={options:function(e,t){e.setOptions(t)},url:function(e,t){e.setUrl(t)},zIndex:function(e,t){e.setZIndex(t)}};function st(e,t){return"function"==typeof t?t(e.offsetWidth,e.offsetHeight):{x:0,y:0}}function rt(e,t){return new t(e.lat,e.lng)}function at(e,t){return new t(new google.maps.LatLng(e.ne.lat,e.ne.lng),new google.maps.LatLng(e.sw.lat,e.sw.lng))}function lt(e,t,o,n){return void 0!==o?function(e,t,o){var n=e&&e.fromLatLngToDivPixel(o.getNorthEast()),i=e&&e.fromLatLngToDivPixel(o.getSouthWest());return n&&i?{left:"".concat(i.x+t.x,"px"),top:"".concat(n.y+t.y,"px"),width:"".concat(n.x-i.x-t.x,"px"),height:"".concat(i.y-n.y-t.y,"px")}:{left:"-9999px",top:"-9999px"}}(e,t,(i=o,s=google.maps.LatLngBounds,r=at,i instanceof s?i:r(i,s))):function(e,t,o){var n=e&&e.fromLatLngToDivPixel(o);if(n){var i=n.x,s=n.y;return{left:"".concat(i+t.x,"px"),top:"".concat(s+t.y,"px")}}return{left:"-9999px",top:"-9999px"}}(e,t,function(e,t,o){return e instanceof t?e:o(e,t)}(n,google.maps.LatLng,rt));var i,s,r}function ct(e){return e?(e instanceof google.maps.LatLng?e:new google.maps.LatLng(e.lat,e.lng))+"":""}function gt(e){return e?(e instanceof google.maps.LatLngBounds?e:new google.maps.LatLngBounds(new google.maps.LatLng(e.south,e.east),new google.maps.LatLng(e.north,e.west)))+"":""}function pt(){}!function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={kmlLayer:null},t.setKmlLayerCallback=function(){null!==t.state.kmlLayer&&t.props.onLoad&&t.props.onLoad(t.state.kmlLayer)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.KmlLayer(m(m({},this.props.options),{map:this.context}));this.registeredEvents=z({updaterMap:it,eventMap:nt,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{kmlLayer:e}}),this.setKmlLayerCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.kmlLayer&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:it,eventMap:nt,prevProps:e,nextProps:this.props,instance:this.state.kmlLayer}))},t.prototype.componentWillUnmount=function(){null!==this.state.kmlLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.kmlLayer),P(this.registeredEvents),this.state.kmlLayer.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent),e.memo((function(t){var o=t.position,i=t.bounds,s=t.mapPaneName,r=t.zIndex,a=t.onLoad,l=t.onUnmount,c=t.getPixelPositionOffset,g=t.children,p=e.useContext(b),u=e.useMemo((function(){var e=document.createElement("div");return e.style.position="absolute",e}),[]),d=e.useMemo((function(){return function(e,t,o,n,i){var s=function(e){function t(t,o,n,i){var s=e.call(this)||this;return s.container=t,s.pane=o,s.position=n,s.bounds=i,s}return h(t,e),t.prototype.onAdd=function(){var e,t=null===(e=this.getPanes())||void 0===e?void 0:e[this.pane];null==t||t.appendChild(this.container)},t.prototype.draw=function(){for(var e=lt(this.getProjection(),m({},this.container?st(this.container,i):{x:0,y:0}),this.bounds,this.position),t=0,o=Object.entries(e);t<o.length;t++){var n=o[t],s=n[0],r=n[1];this.container.style[s]=r}},t.prototype.onRemove=function(){null!==this.container.parentNode&&this.container.parentNode.removeChild(this.container)},t}(google.maps.OverlayView);return new s(e,t,o,n)}(u,s,o,i,c)}),[u,s,o,i]);return e.useEffect((function(){return null==a||a(d),null==d||d.setMap(p),function(){null==l||l(d),null==d||d.setMap(null)}}),[p,d]),e.useEffect((function(){u.style.zIndex="".concat(r)}),[r,u]),n.createPortal(g,u)})),function(t){function o(o){var n=t.call(this,o)||this;n.state={paneEl:null,containerStyle:{position:"absolute"}},n.updatePane=function(){var e=n.props.mapPaneName,t=n.overlayView.getPanes();C(!!e,"OverlayView requires props.mapPaneName but got %s",e),t?n.setState({paneEl:t[e]}):n.setState({paneEl:null})},n.onAdd=function(){var e,t;n.updatePane(),null===(t=(e=n.props).onLoad)||void 0===t||t.call(e,n.overlayView)},n.onPositionElement=function(){var e=lt(n.overlayView.getProjection(),m({x:0,y:0},n.containerRef.current?st(n.containerRef.current,n.props.getPixelPositionOffset):{}),n.props.bounds,n.props.position),t=n.state.containerStyle,o=t.left,i=t.top;t.width;var s,r,a=t.height;r={left:o,top:i,height:a},((s=e).left!==r.left||s.top!==r.top||s.width!==r.height||s.height!==r.height)&&n.setState({containerStyle:{top:e.top||0,left:e.left||0,width:e.width||0,height:e.height||0,position:"absolute"}})},n.draw=function(){n.onPositionElement()},n.onRemove=function(){var e,t;n.setState((function(){return{paneEl:null}})),null===(t=(e=n.props).onUnmount)||void 0===t||t.call(e,n.overlayView)},n.containerRef=e.createRef();var i=new google.maps.OverlayView;return i.onAdd=n.onAdd,i.draw=n.draw,i.onRemove=n.onRemove,n.overlayView=i,n}h(o,t),o.prototype.componentDidMount=function(){this.overlayView.setMap(this.context)},o.prototype.componentDidUpdate=function(e){var t=ct(e.position),o=ct(this.props.position),n=gt(e.bounds),i=gt(this.props.bounds);t===o&&n===i||this.overlayView.draw(),e.mapPaneName!==this.props.mapPaneName&&this.updatePane()},o.prototype.componentWillUnmount=function(){this.overlayView.setMap(null)},o.prototype.render=function(){var t=this.state.paneEl;return t?n.createPortal(u.jsx("div",{ref:this.containerRef,style:this.state.containerStyle,children:e.Children.only(this.props.children)}),t):null},o.FLOAT_PANE="floatPane",o.MAP_PANE="mapPane",o.MARKER_LAYER="markerLayer",o.OVERLAY_LAYER="overlayLayer",o.OVERLAY_MOUSE_TARGET="overlayMouseTarget",o.contextType=b}(e.PureComponent);var ut={onDblClick:"dblclick",onClick:"click"},dt={opacity:function(e,t){e.setOpacity(t)}};e.memo((function(t){var o=t.url,n=t.bounds,i=t.options,s=t.visible,r=e.useContext(b),a=new google.maps.LatLngBounds(new google.maps.LatLng(n.south,n.west),new google.maps.LatLng(n.north,n.east)),l=e.useMemo((function(){return new google.maps.GroundOverlay(o,a,m({},i))}),[]);return e.useEffect((function(){null!==l&&l.setMap(r)}),[r]),e.useEffect((function(){void 0!==o&&null!==l&&(l.set("url",o),l.setMap(r))}),[l,o]),e.useEffect((function(){void 0!==s&&null!==l&&l.setOpacity(s?1:0)}),[l,s]),e.useEffect((function(){var e=new google.maps.LatLngBounds(new google.maps.LatLng(n.south,n.west),new google.maps.LatLng(n.north,n.east));void 0!==n&&null!==l&&(l.set("bounds",e),l.setMap(r))}),[l,n]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={groundOverlay:null},t.setGroundOverlayCallback=function(){null!==t.state.groundOverlay&&t.props.onLoad&&t.props.onLoad(t.state.groundOverlay)},t}h(t,e),t.prototype.componentDidMount=function(){C(!!this.props.url||!!this.props.bounds,"For GroundOverlay, url and bounds are passed in to constructor and are immutable after instantiated. This is the behavior of Google Maps JavaScript API v3 ( See https://developers.google.com/maps/documentation/javascript/reference#GroundOverlay) Hence, use the corresponding two props provided by `react-google-maps-api`, url and bounds. In some cases, you'll need the GroundOverlay component to reflect the changes of url and bounds. You can leverage the React's key property to remount the component. Typically, just `key={url}` would serve your need. See https://github.com/tomchentw/react-google-maps/issues/655");var e=new google.maps.GroundOverlay(this.props.url,this.props.bounds,m(m({},this.props.options),{map:this.context}));this.registeredEvents=z({updaterMap:dt,eventMap:ut,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{groundOverlay:e}}),this.setGroundOverlayCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.groundOverlay&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:dt,eventMap:ut,prevProps:e,nextProps:this.props,instance:this.state.groundOverlay}))},t.prototype.componentWillUnmount=function(){this.state.groundOverlay&&(this.props.onUnmount&&this.props.onUnmount(this.state.groundOverlay),this.state.groundOverlay.setMap(null))},t.prototype.render=function(){return null},t.defaultProps={onLoad:pt},t.contextType=b}(e.PureComponent);var ht={},mt={data:function(e,t){e.setData(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)}};e.memo((function(t){var o=t.data,n=t.onLoad,i=t.onUnmount,s=t.options,r=e.useContext(b),a=e.useState(null),l=a[0],c=a[1];return e.useEffect((function(){google.maps.visualization||C(!!google.maps.visualization,'Did you include prop libraries={["visualization"]} in useJsApiScript? %s',google.maps.visualization)}),[]),e.useEffect((function(){C(!!o,"data property is required in HeatmapLayer %s",o)}),[o]),e.useEffect((function(){null!==l&&l.setMap(r)}),[r]),e.useEffect((function(){s&&null!==l&&l.setOptions(s)}),[l,s]),e.useEffect((function(){var e=new google.maps.visualization.HeatmapLayer(m(m({},s||{}),{data:o,map:r}));return c(e),n&&n(e),function(){null!==l&&(i&&i(l),l.setMap(null))}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={heatmapLayer:null},t.setHeatmapLayerCallback=function(){null!==t.state.heatmapLayer&&t.props.onLoad&&t.props.onLoad(t.state.heatmapLayer)},t}h(t,e),t.prototype.componentDidMount=function(){C(!!google.maps.visualization,'Did you include prop libraries={["visualization"]} to <LoadScript />? %s',google.maps.visualization),C(!!this.props.data,"data property is required in HeatmapLayer %s",this.props.data);var e=new google.maps.visualization.HeatmapLayer(m(m({},this.props.options||{}),{data:this.props.data,map:this.context}));this.registeredEvents=z({updaterMap:mt,eventMap:ht,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{heatmapLayer:e}}),this.setHeatmapLayerCallback)},t.prototype.componentDidUpdate=function(e){P(this.registeredEvents),this.registeredEvents=z({updaterMap:mt,eventMap:ht,prevProps:e,nextProps:this.props,instance:this.state.heatmapLayer})},t.prototype.componentWillUnmount=function(){null!==this.state.heatmapLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.heatmapLayer),P(this.registeredEvents),this.state.heatmapLayer.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var ft={onCloseClick:"closeclick",onPanoChanged:"pano_changed",onPositionChanged:"position_changed",onPovChanged:"pov_changed",onResize:"resize",onStatusChanged:"status_changed",onVisibleChanged:"visible_changed",onZoomChanged:"zoom_changed"},vt={register:function(e,t,o){e.registerPanoProvider(t,o)},links:function(e,t){e.setLinks(t)},motionTracking:function(e,t){e.setMotionTracking(t)},options:function(e,t){e.setOptions(t)},pano:function(e,t){e.setPano(t)},position:function(e,t){e.setPosition(t)},pov:function(e,t){e.setPov(t)},visible:function(e,t){e.setVisible(t)},zoom:function(e,t){e.setZoom(t)}};!function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={streetViewPanorama:null},t.setStreetViewPanoramaCallback=function(){null!==t.state.streetViewPanorama&&t.props.onLoad&&t.props.onLoad(t.state.streetViewPanorama)},t}h(t,e),t.prototype.componentDidMount=function(){var e,t,o=null!==(t=null===(e=this.context)||void 0===e?void 0:e.getStreetView())&&void 0!==t?t:null;this.registeredEvents=z({updaterMap:vt,eventMap:ft,prevProps:{},nextProps:this.props,instance:o}),this.setState((function(){return{streetViewPanorama:o}}),this.setStreetViewPanoramaCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.streetViewPanorama&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:vt,eventMap:ft,prevProps:e,nextProps:this.props,instance:this.state.streetViewPanorama}))},t.prototype.componentWillUnmount=function(){null!==this.state.streetViewPanorama&&(this.props.onUnmount&&this.props.onUnmount(this.state.streetViewPanorama),P(this.registeredEvents),this.state.streetViewPanorama.setVisible(!1))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={streetViewService:null},t.setStreetViewServiceCallback=function(){null!==t.state.streetViewService&&t.props.onLoad&&t.props.onLoad(t.state.streetViewService)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.StreetViewService;this.setState((function(){return{streetViewService:e}}),this.setStreetViewServiceCallback)},t.prototype.componentWillUnmount=function(){null!==this.state.streetViewService&&this.props.onUnmount&&this.props.onUnmount(this.state.streetViewService)},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={directionsService:null},t.setDirectionsServiceCallback=function(){null!==t.state.directionsService&&t.props.onLoad&&t.props.onLoad(t.state.directionsService)},t}h(t,e),t.prototype.componentDidMount=function(){C(!!this.props.options,"DirectionsService expected options object as parameter, but got %s",this.props.options);var e=new google.maps.DirectionsService;this.setState((function(){return{directionsService:e}}),this.setDirectionsServiceCallback)},t.prototype.componentDidUpdate=function(){null!==this.state.directionsService&&this.state.directionsService.route(this.props.options,this.props.callback)},t.prototype.componentWillUnmount=function(){null!==this.state.directionsService&&this.props.onUnmount&&this.props.onUnmount(this.state.directionsService)},t.prototype.render=function(){return null}}(e.PureComponent);var yt={onDirectionsChanged:"directions_changed"},Lt={directions:function(e,t){e.setDirections(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},panel:function(e,t){e.setPanel(t)},routeIndex:function(e,t){e.setRouteIndex(t)}};!function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={directionsRenderer:null},t.setDirectionsRendererCallback=function(){null!==t.state.directionsRenderer&&(t.state.directionsRenderer.setMap(t.context),t.props.onLoad&&t.props.onLoad(t.state.directionsRenderer))},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.DirectionsRenderer(this.props.options);this.registeredEvents=z({updaterMap:Lt,eventMap:yt,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{directionsRenderer:e}}),this.setDirectionsRendererCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.directionsRenderer&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:Lt,eventMap:yt,prevProps:e,nextProps:this.props,instance:this.state.directionsRenderer}))},t.prototype.componentWillUnmount=function(){null!==this.state.directionsRenderer&&(this.props.onUnmount&&this.props.onUnmount(this.state.directionsRenderer),P(this.registeredEvents),this.state.directionsRenderer&&this.state.directionsRenderer.setMap(null))},t.prototype.render=function(){return u.jsx(u.Fragment,{})},t.contextType=b}(e.PureComponent),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={distanceMatrixService:null},t.setDistanceMatrixServiceCallback=function(){null!==t.state.distanceMatrixService&&t.props.onLoad&&t.props.onLoad(t.state.distanceMatrixService)},t}h(t,e),t.prototype.componentDidMount=function(){C(!!this.props.options,"DistanceMatrixService expected options object as parameter, but go %s",this.props.options);var e=new google.maps.DistanceMatrixService;this.setState((function(){return{distanceMatrixService:e}}),this.setDistanceMatrixServiceCallback)},t.prototype.componentDidUpdate=function(){null!==this.state.distanceMatrixService&&this.state.distanceMatrixService.getDistanceMatrix(this.props.options,this.props.callback)},t.prototype.componentWillUnmount=function(){null!==this.state.distanceMatrixService&&this.props.onUnmount&&this.props.onUnmount(this.state.distanceMatrixService)},t.prototype.render=function(){return null}}(e.PureComponent);var It={onPlacesChanged:"places_changed"},Ct={bounds:function(e,t){e.setBounds(t)}};!function(t){function o(){var o=null!==t&&t.apply(this,arguments)||this;return o.registeredEvents=[],o.containerElement=e.createRef(),o.state={searchBox:null},o.setSearchBoxCallback=function(){null!==o.state.searchBox&&o.props.onLoad&&o.props.onLoad(o.state.searchBox)},o}h(o,t),o.prototype.componentDidMount=function(){if(C(!!google.maps.places,'You need to provide libraries={["places"]} prop to <LoadScript /> component %s',google.maps.places),null!==this.containerElement&&null!==this.containerElement.current){var e=this.containerElement.current.querySelector("input");if(null!==e){var t=new google.maps.places.SearchBox(e,this.props.options);this.registeredEvents=z({updaterMap:Ct,eventMap:It,prevProps:{},nextProps:this.props,instance:t}),this.setState((function(){return{searchBox:t}}),this.setSearchBoxCallback)}}},o.prototype.componentDidUpdate=function(e){null!==this.state.searchBox&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:Ct,eventMap:It,prevProps:e,nextProps:this.props,instance:this.state.searchBox}))},o.prototype.componentWillUnmount=function(){null!==this.state.searchBox&&(this.props.onUnmount&&this.props.onUnmount(this.state.searchBox),P(this.registeredEvents))},o.prototype.render=function(){return u.jsx("div",{ref:this.containerElement,children:e.Children.only(this.props.children)})},o.contextType=b}(e.PureComponent);var bt={onPlaceChanged:"place_changed"},wt={bounds:function(e,t){e.setBounds(t)},restrictions:function(e,t){e.setComponentRestrictions(t)},fields:function(e,t){e.setFields(t)},options:function(e,t){e.setOptions(t)},types:function(e,t){e.setTypes(t)}};function kt(e,t,o,n){var i=o*Math.PI/180-e*Math.PI/180,s=n*Math.PI/180-t*Math.PI/180,r=Math.sin(i/2)*Math.sin(i/2)+Math.cos(e*Math.PI/180)*Math.cos(o*Math.PI/180)*Math.sin(s/2)*Math.sin(s/2);return 6378137*(2*Math.atan2(Math.sqrt(r),Math.sqrt(1-r)))}!function(t){function o(){var o=null!==t&&t.apply(this,arguments)||this;return o.registeredEvents=[],o.containerElement=e.createRef(),o.state={autocomplete:null},o.setAutocompleteCallback=function(){null!==o.state.autocomplete&&o.props.onLoad&&o.props.onLoad(o.state.autocomplete)},o}h(o,t),o.prototype.componentDidMount=function(){var e;C(!!google.maps.places,'You need to provide libraries={["places"]} prop to <LoadScript /> component %s',google.maps.places);var t=null===(e=this.containerElement.current)||void 0===e?void 0:e.querySelector("input");if(t){var o=new google.maps.places.Autocomplete(t,this.props.options);this.registeredEvents=z({updaterMap:wt,eventMap:bt,prevProps:{},nextProps:this.props,instance:o}),this.setState((function(){return{autocomplete:o}}),this.setAutocompleteCallback)}},o.prototype.componentDidUpdate=function(e){P(this.registeredEvents),this.registeredEvents=z({updaterMap:wt,eventMap:bt,prevProps:e,nextProps:this.props,instance:this.state.autocomplete})},o.prototype.componentWillUnmount=function(){null!==this.state.autocomplete&&P(this.registeredEvents)},o.prototype.render=function(){return u.jsx("div",{ref:this.containerElement,className:this.props.className,children:e.Children.only(this.props.children)})},o.defaultProps={className:""},o.contextType=b}(e.PureComponent);var Mt=function(){function e(){}return e.clearString=function(e){return e.replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;")},e}();function Pt(e){return e*Math.PI/180}function zt(e){return 180*e/Math.PI}const xt=[];class Et{constructor(){}delete(e,t){if(!t)return null;const o=t.getPath().getLength();for(let e=0;e<o;e++){const t=xt[e];t&&(t.ghostMarker&&(google.maps.event.clearInstanceListeners(t.ghostMarker),t.ghostMarker.setMap(null),delete t.ghostMarker.marker,delete t.ghostMarker),t.marker&&(google.maps.event.clearInstanceListeners(t.marker),t.marker.setMap(null),t.marker=null))}return xt.length=0,t}edit(e,t,o,n){let i,s,r,a;if(n){i={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48"><path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" /><path fill="rgba(255,255,255,1)" stroke="#303030" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" /></svg>'),anchor:new google.maps.Point(24,24)};s={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48"><path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" /><path fill="rgba(255,255,255,0.4)" stroke="#303030" stroke-width="0.3" stroke-opacity="0.01" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" /></svg>'),anchor:new google.maps.Point(24,24)};r={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52"><g transform="scale(0.4 0.4)"><path style="fill:#f1a81e;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"></g></g></svg>'),anchor:new google.maps.Point(30,60)};a={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52"><g transform="scale(0.4 0.4) rotate(180 26 26)"><path style="fill:#f1a81e;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"></g></g></svg>'),anchor:new google.maps.Point(30,0)}}else i={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1},s={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:.4,anchor:new google.maps.Point(4,4),strokeWeight:.3,strokeOpacity:.01,strokeColor:"#303030",scale:1};const l=new google.maps.Polyline({map:e,strokeColor:"#ffff00",strokeOpacity:.6,strokeWeight:2,clickable:!1,zIndex:10100}),c=function(){for(let e=0;e<xt.length;e++){const t=xt[e]?.marker;t&&t.setIcon(i)}const e=t.getPath(),o=new google.maps.LatLngBounds;for(let t=0,n=e.getLength();t<n;t++)o.extend(e.getAt(t));if(n&&r&&a){const e=o.getCenter(),t=this.getPosition();if(!t)return;this.setIcon(t.lat()>=e.lat()?r:a)}},g=function(){const e=this.marker.editIndex,o=t.getPath(),n=o.getLength()-1,i=this.marker.getPosition(),s=this.getPosition(),r=e<n?o.getAt(e+1):o.getAt(0);0===l.getPath().getLength()?l.setPath([i,s,r]):l.getPath().setAt(1,s)},p=function(){const o=this.marker;if(!o)return;const n=this.getPosition();if(!n)return;const s=t.getPath(),r=s.getLength();if(r<1)return;const a=o.editIndex,c=a===r-1?0:a+1,g=xt[a];google.maps.event.clearInstanceListeners(this),this.setMap(null),s.insertAt(c,n);const p=new google.maps.Marker({map:e,icon:i,draggable:!0,raiseOnDrag:!1,position:n});google.maps.event.addListener(p,"dragstart",u),google.maps.event.addListener(p,"drag",d),google.maps.event.addListener(p,"dragend",h),xt.splice(c,0,{marker:p,ghostMarker:void 0});for(let e=c;e<xt.length;e++){const t=xt[e]?.marker;t&&(t.editIndex=e)}const m=g?.ghostMarker;m&&m!==this?(google.maps.event.clearInstanceListeners(m),m.setMap(null),delete m.marker,delete g.ghostMarker):g&&delete g?.ghostMarker;const v=0===c?s.getLength()-1:c-1;for(f(v),f(c);l.getPath().getLength()>0;)l.getPath().pop();google.maps.event.trigger(t,"insert_at",c,n)},u=function(){for(let e=0;e<xt.length;e++){const t=xt[e]?.marker;t&&t.setIcon(i)}const e=t.getPath(),o=new google.maps.LatLngBounds;for(let t=0,n=e.getLength();t<n;t++)o.extend(e.getAt(t));if(n&&r&&a){const e=o.getCenter(),t=this.getPosition();if(!t)return;this.setIcon(t.lat()>=e.lat()?r:a)}},d=function(){const e=this.editIndex,o=this.getPosition();t.getPath().setAt(e,o);const n=t.getPath(),i=0===e?n.getLength()-1:e-1;f(i),f(e)},h=function(){google.maps.event.trigger(t,"update_at",this.editIndex,this.getPosition())},m=(o,n)=>{const i=t.getPath().getAt(o);let s=xt[o]?.marker;return s?(s.setPosition(i),s.editIndex=o):(s=new google.maps.Marker({position:i,map:e,icon:n,draggable:!0,raiseOnDrag:!1}),google.maps.event.addListener(s,"dragstart",u),google.maps.event.addListener(s,"drag",d),google.maps.event.addListener(s,"dragend",h),s.editIndex=o,xt[o]={marker:s}),s},f=o=>{const n=t.getPath(),i=n.getLength();if(i<2)return null;const r=n.getAt(o),a=o<i-1?o+1:0,l=n.getAt(a),u=google.maps.geometry?google.maps.geometry.spherical.interpolate(r,l,.5):new google.maps.LatLng(r.lat()+.5*(l.lat()-r.lat()),r.lng()+.5*(l.lng()-r.lng())),d=xt[o]?.marker;if(!d)return null;let h=xt[o]?.ghostMarker;return h&&null!==h.getMap()?h.marker=d:(h=new google.maps.Marker({map:e,icon:s,draggable:!0,raiseOnDrag:!1}),h.marker=d,google.maps.event.addListener(h,"dragstart",c),google.maps.event.addListener(h,"drag",g),google.maps.event.addListener(h,"dragend",p),xt[o].ghostMarker=h),h.setPosition(u),h},v=()=>{const e=t.getPath();for(let t=0;t<e.getLength();t++){const o=e.getAt(t),n=xt[t];if(!n)continue;const i=n.marker;i&&(i.setPosition(o),i.editIndex=t),f(t)}},y=e=>{for(let t=0;t<xt.length;t++){const o=xt[t];o?.marker?.setDraggable(e),o?.ghostMarker?.setDraggable(e)}};function L(e,t,o,n){return t.setMap(e),t.getPath().forEach(((e,t)=>{m(t,n&&r&&1===t?r:i).editIndex=t,f(t)})),t}return google.maps.event.addListener(t,"dragstart",(()=>{y(!1)})),google.maps.event.addListener(t,"drag",(()=>{v()})),google.maps.event.addListener(t,"dragend",(()=>{v(),y(!0)})),L.prototype=new google.maps.MVCObject,new L(e,t,o,n)}}class St{IsValid="";Poly="";Area=0;Perimeter=0;Latitude=0;Longitude=0;constructor(e,t,o,n,i,s){this.Poly=e,this.Area=t,this.Perimeter=o,this.Latitude=n,this.Longitude=i,this.IsValid=s,this.GeoJSON=void 0}}class Ot{constructor(e=[],t=(e,t)=>e<t?-1:e>t?1:0){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this._up(this.length++)}pop(){if(0===this.length)return;const e=this.data[0],t=this.data.pop();return--this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:t,compare:o}=this,n=t[e];for(;e>0;){const i=e-1>>1,s=t[i];if(o(n,s)>=0)break;t[e]=s,e=i}t[e]=n}_down(e){const{data:t,compare:o}=this,n=this.length>>1,i=t[e];for(;e<n;){let n=1+(e<<1);const s=n+1;if(s<this.length&&o(t[s],t[n])<0&&(n=s),o(t[n],i)>=0)break;t[e]=t[n],e=n}t[e]=i}}function _t(e,t=1,o=!1){let n=1/0,i=1/0,s=-1/0,r=-1/0;for(const[t,o]of e[0])t<n&&(n=t),o<i&&(i=o),t>s&&(s=t),o>r&&(r=o);const a=s-n,l=r-i,c=Math.max(t,Math.min(a,l));if(c===t){const e=[n,i];return e.distance=0,e}const g=new Ot([],((e,t)=>t.max-e.max));let p=function(e){let t=0,o=0,n=0;const i=e[0];for(let e=0,s=i.length,r=s-1;e<s;r=e++){const s=i[e],a=i[r],l=s[0]*a[1]-a[0]*s[1];o+=(s[0]+a[0])*l,n+=(s[1]+a[1])*l,t+=3*l}const s=new Tt(o/t,n/t,0,e);return 0===t||s.d<0?new Tt(i[0][0],i[0][1],0,e):s}(e);const u=new Tt(n+a/2,i+l/2,0,e);u.d>p.d&&(p=u);let d=2;function h(n,i,s){const r=new Tt(n,i,s,e);d++,r.max>p.d+t&&g.push(r),r.d>p.d&&(p=r,o&&console.log(`found best ${Math.round(1e4*r.d)/1e4} after ${d} probes`))}let m=c/2;for(let e=n;e<s;e+=c)for(let t=i;t<r;t+=c)h(e+m,t+m,m);for(;g.length;){const{max:e,x:o,y:n,h:i}=g.pop();if(e-p.d<=t)break;m=i/2,h(o-m,n-m,m),h(o+m,n-m,m),h(o-m,n+m,m),h(o+m,n+m,m)}o&&console.log(`num probes: ${d}\nbest distance: ${p.d}`);const f=[p.x,p.y];return f.distance=p.d,f}function Tt(e,t,o,n){this.x=e,this.y=t,this.h=o,this.d=function(e,t,o){let n=!1,i=1/0;for(const s of o)for(let o=0,r=s.length,a=r-1;o<r;a=o++){const r=s[o],l=s[a];r[1]>t!=l[1]>t&&e<(l[0]-r[0])*(t-r[1])/(l[1]-r[1])+r[0]&&(n=!n),i=Math.min(i,Bt(e,t,r,l))}return 0===i?0:(n?1:-1)*Math.sqrt(i)}(e,t,n),this.max=this.d+this.h*Math.SQRT2}function Bt(e,t,o,n){let i=o[0],s=o[1],r=n[0]-i,a=n[1]-s;if(0!==r||0!==a){const o=((e-i)*r+(t-s)*a)/(r*r+a*a);o>1?(i=n[0],s=n[1]):o>0&&(i+=r*o,s+=a*o)}return r=e-i,a=t-s,r*r+a*a}var Rt,Dt={exports:{}};var At=(Rt||(Rt=1,function(e){var t={};function o(e){return Math.floor(Math.abs(e)+.5)*(e>=0?1:-1)}function n(e,t,n){var i=2*((e=o(e*n))-(t=o(t*n)));i<0&&(i=-i-1);for(var s="";i>=32;)s+=String.fromCharCode(63+(32|31&i)),i/=32;return s+=String.fromCharCode(63+(0|i))}function i(e){for(var t=[],o=0;o<e.length;o++){var n=e[o].slice();t.push([n[1],n[0]])}return t}t.decode=function(e,t){for(var o,n=0,i=0,s=0,r=[],a=0,l=0,c=null,g=Math.pow(10,Number.isInteger(t)?t:5);n<e.length;){c=null,a=1,l=0;do{l+=(31&(c=e.charCodeAt(n++)-63))*a,a*=32}while(c>=32);o=1&l?(-l-1)/2:l/2,a=1,l=0;do{l+=(31&(c=e.charCodeAt(n++)-63))*a,a*=32}while(c>=32);i+=o,s+=1&l?(-l-1)/2:l/2,r.push([i/g,s/g])}return r},t.encode=function(e,t){if(!e.length)return"";for(var o=Math.pow(10,Number.isInteger(t)?t:5),i=n(e[0][0],0,o)+n(e[0][1],0,o),s=1;s<e.length;s++){var r=e[s],a=e[s-1];i+=n(r[0],a[0],o),i+=n(r[1],a[1],o)}return i},t.fromGeoJSON=function(e,o){if(e&&"Feature"===e.type&&(e=e.geometry),!e||"LineString"!==e.type)throw new Error("Input must be a GeoJSON LineString");return t.encode(i(e.coordinates),o)},t.toGeoJSON=function(e,o){return{type:"LineString",coordinates:i(t.decode(e,o))}},e.exports&&(e.exports=t)}(Dt)),Dt.exports),Ut=i(At);class Wt{centerPoint=null;constructor(){}get(e,t,o,n,i){this.centerPoint=new google.maps.LatLng(e,t);var s=o/6378137*(180/Math.PI),r=s/Math.cos(e*(Math.PI/180)),a=[],l=0,c=0;i-n<0&&(i+=360);for(var g=n*Math.PI/180,p=i*Math.PI/180,u=0;g<p;u++)g=(n+u)*Math.PI/180,l=e+s*Math.cos(g),c=t+r*Math.sin(g),a.push(new google.maps.LatLng(l,c));return a}reduce(e,t){var o=[];o.push(e.getAt(0));for(var n=1;n<e.getLength()-2;n++)n%10==1&&o.push(e.getAt(n));return o.push(e.getAt(e.getLength()-2)),o.push(e.getAt(e.getLength()-1)),t?o.reverse():o}edit(e,t,o,n,i,s,r){var a=360;if(s){var l='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" width="48" height="48">';l+='<path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" />',l+='<path fill="rgba(255,255,255,1)" stroke="#303030" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" />',l+="</svg>";var c={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(l),anchor:new google.maps.Point(24,24),id:"sizerIconTop"},g={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(l),anchor:new google.maps.Point(24,24),id:"sizerIconRight"},p={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(l),anchor:new google.maps.Point(24,24),id:"sizerIconBottom"},u={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(l),anchor:new google.maps.Point(24,24),id:"sizerIconLeft"},d={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(l),anchor:new google.maps.Point(24,24),id:"centerIcon"};0;var h={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,60),id:"handleIconUp"};0;var m={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4) rotate(180 26 26)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,0),id:"handleIconDown"}}else c={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconTop"},g={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconRight"},p={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconBottom"},u={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconLeft"},d={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"centerIcon"};function f(e,t){this.set("map",e),this.set("position",n);var i=new google.maps.Marker({icon:d,draggable:!0,raiseOnDrag:!1,title:"Move me!",id:"centerMarker"});i.bindTo("map",this),i.bindTo("position",this);var a=new v;return a.bindTo("map",this),a.bindTo("center",this,"position"),this.bindTo("distance",a),this.bindTo("bounds",a),s&&(google.maps.event.addListener(i,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),"centerIcon"==i.getIcon().id?i.setIcon(m):i.setIcon(d)})),google.maps.event.addListener(i,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),i.setIcon(m)})),r.push(i)),o}function v(){o=new google.maps.Polygon({id:t.id,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,isHole:t.isHole}),this.set("distance",i),this.bindTo("bounds",o),t.setVisible(!1),o.bindTo("map",this);var e=new google.maps.Circle({strokeColor:"#000000",strokeOpacity:.2,strokeWeight:2,fillColor:"#000000",fillOpacity:0});this.bindTo("bounds",e),e.bindTo("center",this),e.bindTo("map",this),e.bindTo("radius",this),this.addSizerTop_(),this.addSizerRight_(),this.addSizerBottom_(),this.addSizerLeft_()}return f.prototype=new google.maps.MVCObject,v.prototype=new google.maps.MVCObject,v.prototype.distance_changed=function(){this.set("radius",this.get("distance"))},v.prototype.addSizerTop_=function(){var e=new google.maps.Marker({icon:c,draggable:!0,crossOnDrag:!1,title:"I'm the top radius sizer, drag me!",cursor:"row-resize",id:"sizerTop"});e.bindTo("map",this),e.bindTo("position",this,"sizerTop_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),"sizerIconTop"==e.getIcon().id?e.setIcon(h):e.setIcon(c)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),e.setIcon(h)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerTop_position",new google.maps.LatLng(t.get("sizerTop_position").lat(),t.get("center").lng()));var e=t.get("sizerTop_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),t.setDistanceTop()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerTop_position",new google.maps.LatLng(t.get("sizerTop_position").lat(),t.get("center").lng()));var e=t.get("sizerTop_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),t.setDistanceTop()}))},v.prototype.addSizerRight_=function(){var e=new google.maps.Marker({icon:g,draggable:!0,crossOnDrag:!1,title:"I'm the right radius sizer, drag me!",cursor:"col-resize",id:"sizerRight"});e.bindTo("map",this),e.bindTo("position",this,"sizerRight_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),"sizerIconRight"==e.getIcon().id?e.setIcon(m):e.setIcon(g)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerRight_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerRight_position").lng()));var e=t.get("sizerRight_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerRight_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerRight_position").lng()));var e=t.get("sizerRight_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),t.setDistanceRight()}))},v.prototype.addSizerBottom_=function(){var e=new google.maps.Marker({icon:p,draggable:!0,crossOnDrag:!1,title:"I'm the bottom radius sizer, drag me!",cursor:"row-resize",id:"sizerBottom"});e.bindTo("map",this),e.bindTo("position",this,"sizerBottom_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),"sizerIconBottom"==e.getIcon().id?e.setIcon(m):e.setIcon(p)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerBottom_position",new google.maps.LatLng(t.get("sizerBottom_position").lat(),t.get("center").lng()));var e=t.get("sizerBottom_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),t.setDistanceBottom()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerBottom_position",new google.maps.LatLng(t.get("sizerBottom_position").lat(),t.get("center").lng()));var e=t.get("sizerBottom_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),t.setDistanceBottom()}))},v.prototype.addSizerLeft_=function(){var e=new google.maps.Marker({icon:u,draggable:!0,crossOnDrag:!1,title:"I'm the left radius sizer, drag me!",cursor:"col-resize",id:"sizerLeft"});e.bindTo("map",this),e.bindTo("position",this,"sizerLeft_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),"sizerIconLeft"==e.getIcon().id?e.setIcon(m):e.setIcon(u)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerLeft_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerLeft_position").lng()));var e=t.get("sizerLeft_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),t.setDistanceLeft()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerLeft_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerLeft_position").lng()));var e=t.get("sizerLeft_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),t.setDistanceLeft()}))},v.prototype.center_changed=function(){var e=this.get("bounds");this.get("center");var t=this.get("distance");if(e){var n=(new Wt).get(this.get("center").lat(),this.get("center").lng(),t,0,a);o.setPath(n);var i=e.getNorthEast().lat(),s=e.getNorthEast().lng(),r=e.getSouthWest().lat(),l=e.getSouthWest().lng(),c=new google.maps.LatLng(i,this.get("center").lng()),g=new google.maps.LatLng(this.get("center").lat(),s),p=new google.maps.LatLng(r,this.get("center").lng()),u=new google.maps.LatLng(this.get("center").lat(),l);this.set("sizerTop_position",c),this.set("sizerRight_position",g),this.set("sizerBottom_position",p),this.set("sizerLeft_position",u)}},v.prototype.setDistanceTop=function(){var e=this.get("sizerTop_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Wt).get(this.get("center").lat(),this.get("center").lng(),n,0,a);o.setPath(i),this.set("distance",n),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},v.prototype.setDistanceRight=function(){var e=this.get("sizerRight_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Wt).get(this.get("center").lat(),this.get("center").lng(),n,0,a);o.setPath(i),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},v.prototype.setDistanceBottom=function(){var e=this.get("sizerBottom_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Wt).get(this.get("center").lat(),this.get("center").lng(),n,0,a);o.setPath(i),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},v.prototype.setDistanceLeft=function(){var e=this.get("sizerLeft_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Wt).get(this.get("center").lat(),this.get("center").lng(),n,0,a);o.setPath(i),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180))},new f(e)}}class Zt{centerPoint=null;constructor(){}get(e,t,o,n,i){this.centerPoint=new google.maps.LatLng(e,t);var s=o/6378137*(180/Math.PI),r=s/Math.cos(e*(Math.PI/180)),a=[],l=0,c=0;a.push(this.centerPoint),i-n<0&&(i+=360);for(var g=n*Math.PI/180,p=i*Math.PI/180,u=0;g<p;u++)g=(n+u)*Math.PI/180,l=e+s*Math.cos(g),c=t+r*Math.sin(g),a.push(new google.maps.LatLng(l,c));return a.push(this.centerPoint),a}reduce(e,t){for(var o=[],n=1;n<e.getLength()-2;n++)n%5==1&&o.push(e.getAt(n));return o.push(e.getAt(e.getLength()-2)),o.push(e.getAt(e.getLength()-1)),t?o.reverse():o}edit(e,t,o,n,i,s,r){var a=60,l=120;if(s){var c='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" width="48" height="48">';c+='<path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" />',c+='<path fill="rgba(255,255,255,1)" stroke="#303030" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" />',c+="</svg>";var g={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(c),anchor:new google.maps.Point(24,24),id:"sizerIconTop"},p={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(c),anchor:new google.maps.Point(24,24),id:"sizerIconRight"},u={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(c),anchor:new google.maps.Point(24,24),id:"sizerIconBottom"},d={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(c),anchor:new google.maps.Point(24,24),id:"sizerIconLeft"},h={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(c),anchor:new google.maps.Point(24,24),id:"centerIcon"};0;var m={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,60),id:"handleIconUp"};0;var f={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4) rotate(180 26 26)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,0),id:"handleIconDown"},v='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" width="48" height="48">';v+='<path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" />',v+='<path fill="rgba(255,255,255,1)" stroke="'+t.strokeColor+'" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" />',v+="</svg>";var y={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(v),anchor:new google.maps.Point(24,24),id:"startPinIcon"},L={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(v),anchor:new google.maps.Point(24,24),id:"endPinIcon"}}else g={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconTop"},p={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconRight"},u={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconBottom"},d={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconLeft"},h={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"centerIcon"},y={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"startPinIcon"},L={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"endPinIcon"};function I(e,t){this.set("map",e),this.set("position",n);var i=new google.maps.Marker({icon:h,draggable:!0,raiseOnDrag:!1,title:"Move me!",id:"centerMarker"});i.bindTo("map",this),i.bindTo("position",this);var a=new C;return a.bindTo("map",this),a.bindTo("center",this,"position"),this.bindTo("distance",a),this.bindTo("bounds",a),s&&(google.maps.event.addListener(i,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"centerIcon"==i.getIcon().id?i.setIcon(f):i.setIcon(h)})),google.maps.event.addListener(i,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),i.setIcon(f)})),r.push(i)),o}function C(){o=new google.maps.Polygon({id:t.id,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,isHole:t.isHole}),this.set("distance",i),this.bindTo("bounds",o),t.setVisible(!1),o.bindTo("map",this);var e=new google.maps.Circle({strokeColor:"#000000",strokeOpacity:.2,strokeWeight:2,fillColor:"#000000",fillOpacity:0});this.bindTo("bounds",e),e.bindTo("center",this),e.bindTo("map",this),e.bindTo("radius",this),this.addSizerTop_(),this.addSizerRight_(),this.addSizerBottom_(),this.addSizerLeft_(),this.addStartPin_(),this.addEndPin_()}return I.prototype=new google.maps.MVCObject,C.prototype=new google.maps.MVCObject,C.prototype.distance_changed=function(){this.set("radius",this.get("distance"))},C.prototype.addStartPin_=function(){var e=new google.maps.Marker({icon:y,draggable:!0,raiseOnDrag:!1,title:"Drag me!",id:"startPin"});e.bindTo("map",this),e.bindTo("position",this,"startPin_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"startPinIcon"==e.getIcon().id?a>90&&a<270?e.setIcon(f):e.setIcon(m):e.setIcon(y)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),a>90&&a<270?e.setIcon(f):e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){var e=t.get("startPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);a=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,5,a)):n>2e3&&t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,a)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){var e=t.get("startPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);a=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,5,a)):n>2e3&&t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,a)),t.setDistanceRight()}))},C.prototype.addEndPin_=function(){var e=new google.maps.Marker({icon:L,draggable:!0,crossOnDrag:!1,title:"Drag me!",id:"endPin"});e.bindTo("map",this),e.bindTo("position",this,"endPin_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"endPinIcon"==e.getIcon().id?l>90&&l<270?e.setIcon(f):e.setIcon(m):e.setIcon(L)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),l>90&&l<270?e.setIcon(f):e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){var e=t.get("endPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);l=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,5,l)):n>2e3&&t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,l)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){var e=t.get("endPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);l=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,5,l)):n>2e3&&t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,l)),t.setDistanceRight()}))},C.prototype.addSizerTop_=function(){var e=new google.maps.Marker({icon:g,draggable:!0,crossOnDrag:!1,title:"I'm the top radius sizer, drag me!",cursor:"row-resize",id:"sizerTop"});e.bindTo("map",this),e.bindTo("position",this,"sizerTop_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"sizerIconTop"==e.getIcon().id?e.setIcon(m):e.setIcon(g)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerTop_position",new google.maps.LatLng(t.get("sizerTop_position").lat(),t.get("center").lng()));var e=t.get("sizerTop_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),t.setDistanceTop()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerTop_position",new google.maps.LatLng(t.get("sizerTop_position").lat(),t.get("center").lng()));var e=t.get("sizerTop_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),t.setDistanceTop()}))},C.prototype.addSizerRight_=function(){var e=new google.maps.Marker({icon:p,draggable:!0,crossOnDrag:!1,title:"I'm the right radius sizer, drag me!",cursor:"col-resize",id:"sizerRight"});e.bindTo("map",this),e.bindTo("position",this,"sizerRight_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"sizerIconRight"==e.getIcon().id?e.setIcon(f):e.setIcon(p)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),e.setIcon(f)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerRight_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerRight_position").lng()));var e=t.get("sizerRight_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerRight_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerRight_position").lng()));var e=t.get("sizerRight_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),t.setDistanceRight()}))},C.prototype.addSizerBottom_=function(){var e=new google.maps.Marker({icon:u,draggable:!0,crossOnDrag:!1,title:"I'm the bottom radius sizer, drag me!",cursor:"row-resize",id:"sizerBottom"});e.bindTo("map",this),e.bindTo("position",this,"sizerBottom_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"sizerIconBottom"==e.getIcon().id?e.setIcon(f):e.setIcon(u)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),e.setIcon(f)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerBottom_position",new google.maps.LatLng(t.get("sizerBottom_position").lat(),t.get("center").lng()));var e=t.get("sizerBottom_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),t.setDistanceBottom()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerBottom_position",new google.maps.LatLng(t.get("sizerBottom_position").lat(),t.get("center").lng()));var e=t.get("sizerBottom_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),t.setDistanceBottom()}))},C.prototype.addSizerLeft_=function(){var e=new google.maps.Marker({icon:d,draggable:!0,crossOnDrag:!1,title:"I'm the left radius sizer, drag me!",cursor:"col-resize",id:"sizerLeft"});e.bindTo("map",this),e.bindTo("position",this,"sizerLeft_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"sizerIconLeft"==e.getIcon().id?e.setIcon(f):e.setIcon(d)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),e.setIcon(f)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerLeft_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerLeft_position").lng()));var e=t.get("sizerLeft_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),t.setDistanceLeft()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerLeft_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerLeft_position").lng()));var e=t.get("sizerLeft_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),t.setDistanceLeft()}))},C.prototype.center_changed=function(){var e=this.get("bounds");this.get("center");var t=this.get("distance");if(e){var n=(new Zt).get(this.get("center").lat(),this.get("center").lng(),t,a,l);o.setPath(n);var i=e.getNorthEast().lat(),s=e.getNorthEast().lng(),r=e.getSouthWest().lat(),c=e.getSouthWest().lng(),g=new google.maps.LatLng(i,this.get("center").lng()),p=new google.maps.LatLng(this.get("center").lat(),s),u=new google.maps.LatLng(r,this.get("center").lng()),d=new google.maps.LatLng(this.get("center").lat(),c);this.set("sizerTop_position",g),this.set("sizerRight_position",p),this.set("sizerBottom_position",u),this.set("sizerLeft_position",d),this.set("startPin_position",n[1]),this.set("endPin_position",n[n.length-2])}},C.prototype.setDistanceTop=function(){var e=this.get("sizerTop_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Zt).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[1]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},C.prototype.setDistanceRight=function(){var e=this.get("sizerRight_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Zt).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[1]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},C.prototype.setDistanceBottom=function(){var e=this.get("sizerBottom_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Zt).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[1]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},C.prototype.setDistanceLeft=function(){var e=this.get("sizerLeft_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Zt).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[1]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180))},new I(e)}}class Ft{centerPoint=null;startHeading=0;endHeading=160;constructor(){}get(e,t,o,n,i){this.centerPoint=new google.maps.LatLng(e,t);var s=o/6378137*(180/Math.PI),r=s/Math.cos(e*(Math.PI/180)),a=[],l=0,c=0;i-n<0&&(i+=360);for(var g=n*Math.PI/180,p=i*Math.PI/180,u=0;g<p;u++)g=(n+u)*Math.PI/180,l=e+s*Math.cos(g),c=t+r*Math.sin(g),a.push(new google.maps.LatLng(l,c));return a.push(a[0]),a}reduce(e,t){for(var o=[],n=0;n<e.getLength()-2;n++)n%5==0&&o.push(e.getAt(n));return o.push(e.getAt(e.getLength()-2)),o.push(e.getAt(e.getLength()-1)),t?o.reverse():o}edit(e,t,o,n,i,s,r){var a=0,l=160,c=null,g=null,p=null,u=null,d=null;if(s){var h='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" width="48" height="48">';h+='<path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" />',h+='<path fill="rgba(255,255,255,1)" stroke="#303030" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" />',h+="</svg>";var m={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(h),anchor:new google.maps.Point(24,24),id:"sizerIconTop"},f={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(h),anchor:new google.maps.Point(24,24),id:"sizerIconRight"},v={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(h),anchor:new google.maps.Point(24,24),id:"sizerIconBottom"},y={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(h),anchor:new google.maps.Point(24,24),id:"sizerIconLeft"},L={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(h),anchor:new google.maps.Point(24,24),id:"centerIcon"};0;var I={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,60),id:"handleIconUp"};0;var C={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4) rotate(180 26 26)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,0),id:"handleIconDown"},b='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" width="48" height="48">';b+='<path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" />',b+='<path fill="rgba(255,255,255,1)" stroke="'+t.strokeColor+'" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" />',b+="</svg>";var w={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(b),anchor:new google.maps.Point(24,24),id:"startPinIcon"},k={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(b),anchor:new google.maps.Point(24,24),id:"endPinIcon"}}else m={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconTop"},f={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconRight"},v={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconBottom"},y={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconLeft"},L={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"centerIcon"},w={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"startPinIcon"},k={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"endPinIcon"};function M(e,t){this.set("map",e),this.set("position",n),(c=new google.maps.Marker({icon:L,draggable:!0,raiseOnDrag:!1,title:"Move me!",id:"centerMarker"})).bindTo("map",this),c.bindTo("position",this);var i=new P;return i.bindTo("map",this),i.bindTo("center",this,"position"),this.bindTo("distance",i),this.bindTo("bounds",i),s&&(google.maps.event.addListener(c,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"centerIcon"==c.getIcon().id?c.setIcon(C):c.setIcon(L)})),google.maps.event.addListener(c,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),c.setIcon(C)})),r.push(c)),o}function P(){o=new google.maps.Polygon({id:t.id,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,isHole:t.isHole}),this.set("distance",i),this.bindTo("bounds",o),t.setVisible(!1),o.bindTo("map",this);var e=new google.maps.Circle({strokeColor:"#000000",strokeOpacity:.2,strokeWeight:2,fillColor:"#000000",fillOpacity:0});this.bindTo("bounds",e),e.bindTo("center",this),e.bindTo("map",this),e.bindTo("radius",this),this.addSizerTop_(),this.addSizerRight_(),this.addSizerBottom_(),this.addSizerLeft_(),this.addStartPin_(),this.addEndPin_()}return M.prototype=new google.maps.MVCObject,P.prototype=new google.maps.MVCObject,P.prototype.distance_changed=function(){this.set("radius",this.get("distance"))},P.prototype.addStartPin_=function(){var e=new google.maps.Marker({icon:w,draggable:!0,raiseOnDrag:!1,title:"Drag me!",id:"startPin"});e.bindTo("map",this),e.bindTo("position",this,"startPin_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"startPinIcon"==e.getIcon().id?a>90&&a<270?e.setIcon(C):e.setIcon(I):e.setIcon(w)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),a>90&&a<270?e.setIcon(C):e.setIcon(I)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){var e=t.get("startPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);a=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,5,a)):n>2e3&&t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,a)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){var e=t.get("startPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);a=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,5,a)):n>2e3&&t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,a)),t.setDistanceRight()}))},P.prototype.addEndPin_=function(){var e=new google.maps.Marker({icon:k,draggable:!0,crossOnDrag:!1,title:"Drag me!",id:"endPin"});e.bindTo("map",this),e.bindTo("position",this,"endPin_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"endPinIcon"==e.getIcon().id?l>90&&l<270?e.setIcon(C):e.setIcon(I):e.setIcon(k)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),l>90&&l<270?e.setIcon(C):e.setIcon(I)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){var e=t.get("endPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);l=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,5,l)):n>2e3&&t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,l)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){var e=t.get("endPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);l=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,5,l)):n>2e3&&t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,l)),t.setDistanceRight()}))},P.prototype.addSizerTop_=function(){(g=new google.maps.Marker({icon:m,draggable:!0,crossOnDrag:!1,title:"I'm the top radius sizer, drag me!",cursor:"row-resize",id:"sizerTop"})).bindTo("map",this),g.bindTo("position",this,"sizerTop_position");var e=this;s&&(google.maps.event.addListener(g,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"sizerIconTop"==g.getIcon().id?g.setIcon(I):g.setIcon(m)})),google.maps.event.addListener(g,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),g.setIcon(I)})),r.push(g)),google.maps.event.addListener(g,"drag",(function(){e.set("sizerTop_position",new google.maps.LatLng(e.get("sizerTop_position").lat(),e.get("center").lng()));var t=e.get("sizerTop_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&e.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),e.setDistanceTop()})),google.maps.event.addListener(g,"dragend",(function(){e.set("sizerTop_position",new google.maps.LatLng(e.get("sizerTop_position").lat(),e.get("center").lng()));var t=e.get("sizerTop_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&e.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),e.setDistanceTop()}))},P.prototype.addSizerRight_=function(){(u=new google.maps.Marker({icon:f,draggable:!0,crossOnDrag:!1,title:"I'm the right radius sizer, drag me!",cursor:"col-resize",id:"sizerRight"})).bindTo("map",this),u.bindTo("position",this,"sizerRight_position");var e=this;s&&(google.maps.event.addListener(u,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"sizerIconRight"==u.getIcon().id?u.setIcon(C):u.setIcon(f)})),google.maps.event.addListener(u,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),u.setIcon(C)})),r.push(u)),google.maps.event.addListener(u,"drag",(function(){e.set("sizerRight_position",new google.maps.LatLng(e.get("center").lat(),e.get("sizerRight_position").lng()));var t=e.get("sizerRight_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&e.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),e.setDistanceRight()})),google.maps.event.addListener(u,"dragend",(function(){e.set("sizerRight_position",new google.maps.LatLng(e.get("center").lat(),e.get("sizerRight_position").lng()));var t=e.get("sizerRight_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&e.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),e.setDistanceRight()}))},P.prototype.addSizerBottom_=function(){(d=new google.maps.Marker({icon:v,draggable:!0,crossOnDrag:!1,title:"I'm the bottom radius sizer, drag me!",cursor:"row-resize",id:"sizerBottom"})).bindTo("map",this),d.bindTo("position",this,"sizerBottom_position");var e=this;s&&(google.maps.event.addListener(d,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"sizerIconBottom"==d.getIcon().id?d.setIcon(C):d.setIcon(v)})),google.maps.event.addListener(d,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),d.setIcon(C)})),r.push(d)),google.maps.event.addListener(d,"drag",(function(){e.set("sizerBottom_position",new google.maps.LatLng(e.get("sizerBottom_position").lat(),e.get("center").lng()));var t=e.get("sizerBottom_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&e.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),e.setDistanceBottom()})),google.maps.event.addListener(d,"dragend",(function(){e.set("sizerBottom_position",new google.maps.LatLng(e.get("sizerBottom_position").lat(),e.get("center").lng()));var t=e.get("sizerBottom_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&e.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),e.setDistanceBottom()}))},P.prototype.addSizerLeft_=function(){(p=new google.maps.Marker({icon:y,draggable:!0,crossOnDrag:!1,title:"I'm the left radius sizer, drag me!",cursor:"col-resize",id:"sizerLeft"})).bindTo("map",this),p.bindTo("position",this,"sizerLeft_position");var e=this;s&&(google.maps.event.addListener(p,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"sizerIconLeft"==p.getIcon().id?p.setIcon(C):p.setIcon(y)})),google.maps.event.addListener(p,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),p.setIcon(C)})),r.push(p)),google.maps.event.addListener(p,"drag",(function(){e.set("sizerLeft_position",new google.maps.LatLng(e.get("center").lat(),e.get("sizerLeft_position").lng()));var t=e.get("sizerLeft_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&e.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),e.setDistanceLeft()})),google.maps.event.addListener(p,"dragend",(function(){e.set("sizerLeft_position",new google.maps.LatLng(e.get("center").lat(),e.get("sizerLeft_position").lng()));var t=e.get("sizerLeft_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&e.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),e.setDistanceLeft()}))},P.prototype.center_changed=function(){var e=this.get("bounds");this.get("center");var t=this.get("distance");if(e){var n=(new Ft).get(this.get("center").lat(),this.get("center").lng(),t,a,l);o.setPath(n);var i=e.getNorthEast().lat(),s=e.getNorthEast().lng(),r=e.getSouthWest().lat(),c=e.getSouthWest().lng(),g=new google.maps.LatLng(i,this.get("center").lng()),p=new google.maps.LatLng(this.get("center").lat(),s),u=new google.maps.LatLng(r,this.get("center").lng()),d=new google.maps.LatLng(this.get("center").lat(),c);this.set("sizerTop_position",g),this.set("sizerRight_position",p),this.set("sizerBottom_position",u),this.set("sizerLeft_position",d),this.set("startPin_position",n[0]),this.set("endPin_position",n[n.length-2])}},P.prototype.setDistanceTop=function(){var e=this.get("sizerTop_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Ft).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[0]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},P.prototype.setDistanceRight=function(){var e=this.get("sizerRight_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Ft).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[0]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},P.prototype.setDistanceBottom=function(){var e=this.get("sizerBottom_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Ft).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[0]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},P.prototype.setDistanceLeft=function(){var e=this.get("sizerLeft_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Ft).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[0]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180))},new M(e)}}var jt,Nt={exports:{}};jt||(jt=1,function(e){var t={};function o(e,t){e=Math.round(e*t),(e<<=1)<0&&(e=~e);for(var o="";e>=32;)o+=String.fromCharCode(63+(32|31&e)),e>>=5;return o+=String.fromCharCode(e+63)}function n(e){for(var t=[],o=0;o<e.length;o++)t.push(e[o].slice().reverse());return t}t.decode=function(e,t){for(var o,n=0,i=0,s=0,r=[],a=0,l=0,c=null,g=Math.pow(10,t||5);n<e.length;){c=null,a=0,l=0;do{l|=(31&(c=e.charCodeAt(n++)-63))<<a,a+=5}while(c>=32);o=1&l?~(l>>1):l>>1,a=l=0;do{l|=(31&(c=e.charCodeAt(n++)-63))<<a,a+=5}while(c>=32);i+=o,s+=1&l?~(l>>1):l>>1,r.push([i/g,s/g])}return r},t.encode=function(e,t){if(!e.length)return"";for(var n=Math.pow(10,t||5),i=o(e[0][0],n)+o(e[0][1],n),s=1;s<e.length;s++){var r=e[s],a=e[s-1];i+=o(r[0]-a[0],n),i+=o(r[1]-a[1],n)}return i},t.fromGeoJSON=function(e,o){if(e&&"Feature"===e.type&&(e=e.geometry),!e||"LineString"!==e.type)throw new Error("Input must be a GeoJSON LineString");return t.encode(n(e.coordinates),o)},t.toGeoJSON=function(e,o){return{type:"LineString",coordinates:n(t.decode(e,o))}},e.exports&&(e.exports=t)}(Nt));class Vt{constructor(e){var t,o,n,i,s,r,a=this,l=e,c=null,g=null,p=[],u=[],d=[],h={},m=[],f=[],v=[],y=[],L=[],I=[],C=[],b=[],w=[],k=[],M=[],P=[],z=null,x=null,E=null,S=null,O=null,_=20,T=20,B=[];function R(e,t="white"){var o=D(e.Poly),n=o.y,i=o.x,s=`${e.Area} ha`,r=function(e,t,o,n){var i=document.createElement("div");i.id="locname"+e,i.style.display="inline-block",i.style.fontFamily="Arial, sans-serif",i.style.fontSize=n+"px",i.textContent=t;var s=document.createElement("div");s.id="locarea"+e,s.style.display="inline-block",s.style.fontFamily="Arial, sans-serif",s.style.fontSize=n+"px",s.textContent=o;var r=document.createElement("div");r.id="locnameContainer"+e,r.style.position="absolute",r.style.top="0",r.style.left="-1000px";var a=document.createElement("div");a.id="locareaContainer"+e,a.style.position="absolute",a.style.top="0",a.style.left="-1000px",r.appendChild(i),a.appendChild(s),document.body.appendChild(r),document.body.appendChild(a);var l=document.getElementById("locname"+e),c=document.getElementById("locarea"+e),g=document.getElementById("locnameContainer"+e),p=document.getElementById("locareaContainer"+e),u=l.clientWidth,d=c.clientWidth;return g.remove(),p.remove(),{nameWidth:u,areaWidth:d}}(e.Id,e.LocationName,s,8),a=`<svg viewBox="0 0 200 30" xmlns="http://www.w3.org/2000/svg">\n <text x="0" y="12" fill="${t}" font-family="Arial, sans-serif" font-size="8px">${Mt.clearString(e.LocationName)}</text>\n <line x1="0" y1="15" x2="${Math.max(r.nameWidth,r.areaWidth)}" y2="15" style="stroke:${t};stroke-width:0.6"/>\n <text x="0" y="24" fill="${t}" font-family="Arial, sans-serif" font-size="8px">${s}</text>\n </svg>`,c=new google.maps.Marker({map:l,position:new google.maps.LatLng(parseFloat(n),parseFloat(i)),icon:{anchor:new google.maps.Point(1.3*r.nameWidth/2,21),url:`data:image/svg+xml;utf-8, ${a}`},id:`pl_${e.Id}`});y.push(c)}function D(e){var t=_t(e,1e-5);return{x:t[0],y:t[1]}}function A(){j(),console.log("mapOverlayManager, fields_BindPolyEvents",v),v.forEach((function(e){p.push(google.maps.event.addListener(e,"mouseover",(function(t){j(),U(t,e.content)}))),p.push(google.maps.event.addListener(e,"mousemove",Z)),p.push(google.maps.event.addListener(e,"mouseout",j)),p.push(google.maps.event.addListener(e,"click",(function(e){j(),h.FieldOnClick(this.id)})))}))}function U(e,t){!O&&e&&((O=document.createElement("div")).style.cssText="background: rgba(0, 0, 0, 0.5); color: #ffffff; border-radius: 4px; padding: 5px 10px; text-align: left; font-size: 12px; position: fixed;",O.innerHTML=t,O.style.top=e.domEvent.clientY+window.scrollY+T+"px",O.style.left=e.domEvent.clientX+window.scrollX+_+"px",document.body.appendChild(O))}function W(e,t){!O&&e&&((O=document.createElement("div")).style.cssText="background: rgba(0, 0, 0, 0.5); color: #ffffff; border-radius: 4px; padding: 5px 10px; text-align: left; font-size: 12px; position: fixed;",O.innerHTML=t,O.style.top=e.clientY+window.scrollY+T+"px",O.style.left=e.clientX+window.scrollX+_+"px",document.body.appendChild(O))}function Z(e){O&&e&&(O.style.top=e.domEvent.clientY+window.scrollY+T+"px",O.style.left=e.domEvent.clientX+window.scrollX+_+"px")}function F(e){O&&e&&(O.style.top=e.clientY+window.scrollY+T+"px",O.style.left=e.clientX+window.scrollX+_+"px")}function j(){O&&(document.body.removeChild(O),O=null)}function N(e,t,o="field",n,i,s){if(l.getMapCapabilities().isAdvancedMarkersAvailable&&e&&e.length>0){var r=new google.maps.LatLngBounds;if(e.forEach((function(e){var n,i=new google.maps.LatLngBounds;"farm"===o?(i.extend(new google.maps.LatLng(e.minLat,e.minLng)),i.extend(new google.maps.LatLng(e.maxLat,e.maxLng))):e.Poly[0].forEach((function(e){i.extend(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])))})),r.extend(i.getCenter());var s=function(e){const{iconName:t="pinIcon",fillColor:o="#f1a81e",width:n=30,height:i=41,strokeColor:s="#000000",strokeWidth:r=1}=e,a="http://www.w3.org/2000/svg",l=document.createElementNS(a,"svg");l.setAttribute("viewBox","0 0 57.64 83.57"),l.setAttribute("width",n),l.setAttribute("height",i),l.style.opacity=.8,l.style.zIndex=11e3;const c=document.createElementNS(a,"defs"),g=document.createElementNS(a,"clipPath");g.setAttribute("id",`clippath-${t}`);const p=document.createElementNS(a,"rect");p.setAttribute("width","57.64"),p.setAttribute("height","83.57"),c.appendChild(g),g.appendChild(p);const u=document.createElementNS(a,"style");u.textContent=`\n .cls-1 { clip-path: url(#clippath-${t}); }\n .cls-2 { fill: none; stroke: ${s}; stroke-width: ${r}; }\n .cls-3 { fill: ${o}; }\n `,c.appendChild(u),l.appendChild(c);const d=document.createElementNS(a,"g");d.setAttribute("class","cls-1");const h={pinIcon:"M16.01,31.23c-.07,7.22,5.73,12.51,11.98,12.86,3.84.22,7.17-1.04,9.9-3.73,2.36-2.32,3.64-5.2,3.77-8.49.31-7.8-5.87-13.21-12.29-13.47-7.66-.3-13.54,6.01-13.37,12.83M28.82.1c.43,0,.87-.03,1.3,0,.98.07,1.97.16,2.95.27,1.85.21,3.65.69,5.4,1.31,1.89.66,3.68,1.52,5.38,2.57,1.49.91,2.88,1.95,4.18,3.12,1.68,1.51,3.21,3.15,4.45,5.04.84,1.29,1.65,2.62,2.35,4,1.05,2.06,1.76,4.25,2.2,6.52.25,1.25.41,2.53.5,3.81.1,1.31.15,2.64.07,3.95-.15,2.38-.58,4.72-1.32,6.99-.64,1.97-1.49,3.87-2.54,5.67-1.07,1.83-2.08,3.7-3.13,5.54-.82,1.44-1.67,2.87-2.49,4.31-.8,1.39-1.58,2.78-2.37,4.17-.83,1.45-1.68,2.89-2.51,4.33-.68,1.18-1.34,2.37-2.02,3.55-1.3,2.26-2.61,4.52-3.91,6.79-1.02,1.77-2.02,3.55-3.04,5.32-.92,1.6-1.79,3.24-2.79,4.79-1.33,2.04-4.29,1.81-5.44-.18-1.33-2.3-2.67-4.6-3.99-6.91-1.42-2.46-2.82-4.93-4.23-7.39-1.18-2.06-2.36-4.12-3.54-6.18-1.36-2.37-2.74-4.73-4.1-7.1-1.29-2.25-2.57-4.5-3.83-6.76-1.21-2.17-2.46-4.32-3.6-6.53-1-1.93-1.66-4.01-2.09-6.14-.31-1.54-.58-3.09-.58-4.67,0-.48-.08-.96-.06-1.43.07-1.28.16-2.57.28-3.85.18-1.93.66-3.8,1.3-5.62.75-2.13,1.72-4.16,2.94-6.06,1.27-1.98,2.75-3.79,4.45-5.41,1.55-1.47,3.26-2.75,5.1-3.85,1.63-.98,3.36-1.77,5.14-2.42,1.61-.59,3.28-1.02,4.97-1.26,1.53-.22,3.09-.28,4.63-.41v.1"},m=document.createElementNS(a,"path");m.setAttribute("class","cls-3"),m.setAttribute("d",h[t]||"");const f=document.createElementNS(a,"path");return f.setAttribute("class","cls-2"),f.setAttribute("d",h[t]||""),d.appendChild(m),d.appendChild(f),l.appendChild(d),l}({iconName:t.name,fillColor:t.style.color,width:t.style.width,height:t.style.height,strokeColor:t.style.strokeColor,strokeWidth:t.style.strokeWidth});n=new google.maps.marker.AdvancedMarkerElement({map:l,position:i.getCenter(),content:s});const a="farm"===o?`${e.farmId}|${e.farmOrganization}|${e.farmName}`:`${e.Id}|${e.OrganisationName}|${e.FarmName}`;n.setAttribute("id",a),"farm"===o?u.push(n.addListener("click",(()=>{j(),h.AdvancedMarkerOnClick({type:"SUCCESS",message:"farm marker with id "+n.id+" clicked",code:200,data:e})}))):u.push(n.addListener("click",(()=>{j(),h.AdvancedMarkerOnClick({type:"SUCCESS",message:"field marker with id "+n.id+" clicked",code:200,data:e})}))),M.push(n)})),"farm"===o){if(n){var a=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){te(l.getCenter(),i,s)}));d.push(a),l.fitBounds(r)}j(),M.forEach((function(e){var t=e.id.split("|");u.push(e.content.addEventListener("mouseover",(function(e){j(),W(e,t[1]+"<br>Farm "+t[2])}))),u.push(e.content.addEventListener("mousemove",F)),u.push(e.content.addEventListener("mouseout",j))}))}}}function V(){M.forEach((function(e){e.setMap(null),e=null})),M=[]}function H(){p.forEach((function(e){google.maps.event.removeListener(e)})),p=[]}function $(){u.forEach((function(e){google.maps.event.removeListener(e)})),u=[]}function G(){d.forEach((function(e){google.maps.event.removeListener(e)})),d=[]}function Y(){L.forEach((function(e,t){e.setMap(null),e=null})),L=[]}function J(e,a,c,g,p,u,d){var h;if(void 0===n||void 0===i){var v=l.getBounds();v&&(t=Math.abs(v.getSouthWest().lat()-v.getNorthEast().lat()),o=Math.abs(v.getNorthEast().lng()-v.getSouthWest().lng()),n=o/a,i=t/c)}f=[],m.forEach((function(e){for(var t=e.getPath(),o=[],n=0;n<t.length;n++)o.push([t.getAt(n).lng(),t.getAt(n).lat()]);t.getAt(0).lng()==t.getAt(t.length-1).lng()&&t.getAt(0).lat()==t.getAt(t.length-1).lat()||o.push([t.getAt(0).lng(),t.getAt(0).lat()]),f.push(o)}));var y=D(f);s=y.y,r=y.x;for(var L=20;L>0;L--){var I=[];I.push([r-2*L*n,s+1.5*L*i]),I.push([r+2*L*n,s+1.5*L*i]),I.push([r+2*L*n,s-1.5*L*i]),I.push([r-2*L*n,s-1.5*L*i]),I.push([r-2*L*n,s+1.5*L*i]),f.push(I);var C=0;if(I.forEach((function(e,t){google.maps.geometry.poly.containsLocation(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])),m[0])||C++})),0==C){if(!(f.length>2)){h=q(L,e,g,p,u,d);break}for(var b=0,w=1;w<f.length-1;w++)for(var k=w+1;k<f.length;k++)K(f[w],f[k])&&b++;if(0==b){h=q(L,e,g,p,u,d);break}f.pop()}else f.pop()}return h}function K(e,t){const o=new google.maps.Polygon({paths:e.map((e=>new google.maps.LatLng(e[1],e[0])))}),n=new google.maps.Polygon({paths:t.map((e=>new google.maps.LatLng(e[1],e[0])))});for(let e=0;e<t.length;e++){const n=new google.maps.LatLng(t[e][1],t[e][0]);if(google.maps.geometry.poly.containsLocation(n,o))return!0}for(let t=0;t<e.length;t++){const o=new google.maps.LatLng(e[t][1],e[t][0]);if(google.maps.geometry.poly.containsLocation(o,n))return!0}return!1}function q(e,t,o,a,c,g){var p=[];p.push(new google.maps.LatLng(s+1.5*e*i,r-2*e*n)),p.push(new google.maps.LatLng(s+1.5*e*i,r+2*e*n)),p.push(new google.maps.LatLng(s-1.5*e*i,r+2*e*n)),p.push(new google.maps.LatLng(s-1.5*e*i,r-2*e*n)),p.reverse();var u=Date.now()+Math.floor(1e5*Math.random()),h=new google.maps.Polygon({path:p,id:u.toString(),content:"",strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:10200,clickable:!0,editable:!1,draggable:!1,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:!0,latitude:0,longitude:0,poly:0,area:0,perimeter:0});m.push(h);var f=new google.maps.LatLngBounds;m[0].getPath().forEach((function(e,t){f.extend(e)}));var v=!1,y=google.maps.event.addListener(l,"bounds_changed",(function(){if(!v){var e=l.getProjection().fromLatLngToPoint(f.getSouthWest()),t=l.getProjection().fromLatLngToPoint(f.getNorthEast()),n=l.getZoom(),i=1<<n;(t.x-e.x)*i>=c&&l.setZoom(n-1),te(f.getCenter(),o,a),v=!v,z=(new Et).edit(l,h,z,g)}}));return d.push(y),l.fitBounds(f),u}function X(e,t,o,n,i,s,r,a,c){var g=[];i.forEach((function(e){g.push(new google.maps.LatLng(e.lat(),e.lng()))}));var p=Date.now()+Math.floor(1e5*Math.random()),u=new google.maps.Polygon({map:l,path:g,id:p.toString(),content:"",strokeColor:e.strokeColor,strokeOpacity:e.strokeOpacity,strokeWeight:e.strokeWeight,fillColor:e.fillColor,fillOpacity:e.fillOpacity,zIndex:10200,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!0,isCircleSector:!1,isCircleSegment:!1,isHole:!0,latitude:0,longitude:0,poly:0,area:0,perimeter:0});m.push(u),x=(x=new Wt).edit(l,u,x,s,r,a,c);var h=new google.maps.LatLngBounds;m[0].getPath().forEach((function(e,t){h.extend(e)}));var f=!1,v=google.maps.event.addListener(l,"bounds_changed",(function(){if(!f){var e=l.getProjection().fromLatLngToPoint(h.getSouthWest()),i=l.getProjection().fromLatLngToPoint(h.getNorthEast()),s=l.getZoom(),r=1<<s;(i.x-e.x)*r>=n&&l.setZoom(s-1),te(h.getCenter(),t,o),f=!f}}));return d.push(v),l.fitBounds(h),p}function Q(e,t,o,n,i,s,r,a,c){var g=[];i.forEach((function(e){g.push(new google.maps.LatLng(e.lat(),e.lng()))}));var p=Date.now()+Math.floor(1e5*Math.random()),u=new google.maps.Polygon({map:l,path:g,id:p.toString(),content:"",strokeColor:e.strokeColor,strokeOpacity:e.strokeOpacity,strokeWeight:e.strokeWeight,fillColor:e.fillColor,fillOpacity:e.fillOpacity,zIndex:10200,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!1,isCircleSector:!0,isCircleSegment:!1,isHole:!0,latitude:0,longitude:0,poly:0,area:0,perimeter:0});m.push(u),E=(E=new Zt).edit(l,u,E,s,r,a,c);var h=new google.maps.LatLngBounds;m[0].getPath().forEach((function(e,t){h.extend(e)}));var f=!1,v=google.maps.event.addListener(l,"bounds_changed",(function(){if(!f){var e=l.getProjection().fromLatLngToPoint(h.getSouthWest()),i=l.getProjection().fromLatLngToPoint(h.getNorthEast()),s=l.getZoom(),r=1<<s;(i.x-e.x)*r>=n&&l.setZoom(s-1),te(h.getCenter(),t,o),f=!f}}));return d.push(v),l.fitBounds(h),p}function ee(e,t,o,n,i,s,r,a,c){var g=[];i.forEach((function(e){g.push(new google.maps.LatLng(e.lat(),e.lng()))}));var p=Date.now()+Math.floor(1e5*Math.random()),u=new google.maps.Polygon({map:l,path:g,id:p.toString(),content:"",strokeColor:e.strokeColor,strokeOpacity:e.strokeOpacity,strokeWeight:e.strokeWeight,fillColor:e.fillColor,fillOpacity:e.fillOpacity,zIndex:10200,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!1,isCircleSector:!1,isCircleSegment:!0,isHole:!0,latitude:0,longitude:0,poly:0,area:0,perimeter:0});m.push(u),S=(S=new Ft).edit(l,u,S,s,r,a,c);var h=new google.maps.LatLngBounds;m[0].getPath().forEach((function(e,t){h.extend(e)}));var f=!1,v=google.maps.event.addListener(l,"bounds_changed",(function(){if(!f){var e=l.getProjection().fromLatLngToPoint(h.getSouthWest()),i=l.getProjection().fromLatLngToPoint(h.getNorthEast()),s=l.getZoom(),r=1<<s;(i.x-e.x)*r>=n&&l.setZoom(s-1),te(h.getCenter(),t,o),f=!f}}));return d.push(v),l.fitBounds(h),p}function te(e,t,o){var n=1<<l.getZoom(),i=l.getProjection().fromLatLngToPoint(e),s=new google.maps.Point(t/n||0,o/n||0),r=new google.maps.Point(i.x-s.x,i.y+s.y),a=l.getProjection().fromPointToLatLng(r);l.setCenter(a)}function oe(e,t,o,n,i,s,r,a,g){G(),H(),$(),V(),Y(),function(e,t,o,n,i,s,r,a,g){var u,m,f=e,v=null,y=null;c=new google.maps.LatLngBounds,f.forEach((function(e){u=e.poly.split(","),m=[],u.forEach((function(e){var t=Ut.decode(e);y=[],t.forEach((function(e){y.push(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1]))),c.extend(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1])))})),m.push(y)}));var t=e.name;"Ward"==e.type&&(t="Ward "+e.name),v=new google.maps.Polygon({paths:m,strokeColor:"#000000",strokeOpacity:1,strokeWeight:3,fillColor:"#000000",fillOpacity:.3,zIndex:1e4,id:e.id,content:t,type:e.type,map:l}),L.push(v)})),function(e){j(),L.forEach((function(t){p.push(google.maps.event.addListener(t,"mouseover",(function(e){t.setOptions({strokeColor:"#f1a81e",zIndex:10010}),j(),U(e,t.content)}))),p.push(google.maps.event.addListener(t,"mousemove",Z)),p.push(google.maps.event.addListener(t,"mouseout",(function(e){t.setOptions({strokeColor:"#000000",zIndex:1e4}),j()}))),e||p.push(google.maps.event.addListener(t,"click",(function(e){j(),h.SAAdminPolyOnClick(this.id)})))}))}(g);var I=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){te(l.getCenter(),s,r)}));d.push(I),l.fitBounds(c)}(e,0,0,0,0,s,r,0,g)}function ne(e,t,o,n,i,s){G(),H(),$(),V(),Y();var r=google.maps.event.addListener(l,"dragend",(function(){l.getZoom()>=12&&l.getZoom()<=17?h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on dragend",code:200,data:null}):(G(),Y(),l.getZoom()<12&&l.setZoom(12),l.getZoom()>17&&l.setZoom(17),h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on dragend, zoom outside range",code:200,data:null}))}));d.push(r);var a=google.maps.event.addListener(l,"zoom_changed",(function(){l.getZoom()>=12&&l.getZoom()<=17?h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on zoom changed",code:200,data:null}):(G(),Y(),l.getZoom()<12&&l.setZoom(12),l.getZoom()>17&&l.setZoom(17),h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on zoom changed, zoom outside range",code:200,data:null}))}));d.push(a);var g=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){l.getZoom()>=12&&l.getZoom()<=17?h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on bounds changed",code:200,data:null}):(G(),Y(),l.getZoom()<12&&l.setZoom(12),l.getZoom()>17&&l.setZoom(17),h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on bounds changed, zoom outside range",code:200,data:null}))}));d.push(g),l.getZoom()>=12&&l.getZoom()<=17&&function(e,t,o,n,i,s){var r=e.parentFarms,a=e.farmPortions,g=e.erven;r.length>0&&r.forEach((function(e){s&&(c=new google.maps.LatLngBounds);var t=JSON.parse(e.geojson,!0);if("Polygon"==t.type){var o=[],n=[];t.coordinates[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}else if("MultiPolygon"==t.type){o=[];t.coordinates.forEach((function(e,t){var n=[];e[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}))}var i=e.geomarea/1e4,r="Farm: "+e.name+"<br>"+e.lpi+"<br>"+i.toFixed(2)+" ha",a=new google.maps.Polygon({map:l,paths:o,strokeWeight:5,strokeColor:"#000000",strokeOpacity:1,fillColor:"#000000",fillOpacity:.01,id:e.id,content:r,type:"pf",zIndex:10001});s&&l.fitBounds(c),L.push(a)}));a.length>0&&a.forEach((function(e){s&&(c=new google.maps.LatLngBounds);var t=JSON.parse(e.geojson,!0);if("Polygon"==t.type){var o=[],n=[];t.coordinates[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}else if("MultiPolygon"==t.type){o=[];t.coordinates.forEach((function(e,t){var n=[];e[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}))}var i=e.geomarea/1e4,r="Farm: "+e.farm+"<br>Portion: "+e.name+"<br>"+e.lpi+"<br>"+i.toFixed(2)+" ha",a=new google.maps.Polygon({map:l,paths:o,strokeWeight:3,strokeColor:"#000000",strokeOpacity:1,fillColor:"#000000",fillOpacity:.01,id:e.id,content:r,type:"fp",zIndex:10002});s&&l.fitBounds(c),L.push(a)}));g.length>0&&g.forEach((function(e){s&&(c=new google.maps.LatLngBounds);var t=JSON.parse(e.geojson,!0);if("Polygon"==t.type){var o=[],n=[];t.coordinates[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}else if("MultiPolygon"==t.type){o=[];t.coordinates.forEach((function(e,t){var n=[];e[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}))}var i=e.geomarea/1e4,r="Erf: "+e.name+"<br>"+e.lpi+"<br>"+i.toFixed(2)+" ha",a=new google.maps.Polygon({map:l,paths:o,strokeWeight:2,strokeColor:"#000000",strokeOpacity:1,fillColor:"#000000",fillOpacity:.01,id:e.id,content:r,type:"er",zIndex:10003});s&&l.fitBounds(c),L.push(a)}));!function(e){j(),L.forEach((function(t){p.push(google.maps.event.addListener(t,"mouseover",(function(e){"pf"==t.type?t.setOptions({strokeColor:"#f1a81e",strokeWeight:5,zIndex:10011}):"fp"==t.type?t.setOptions({strokeColor:"#f1a81e",strokeWeight:3,zIndex:10012}):"er"==t.type&&t.setOptions({strokeColor:"#f1a81e",strokeWeight:2,zIndex:10013}),j(),U(e,t.content)}))),p.push(google.maps.event.addListener(t,"mousemove",Z)),p.push(google.maps.event.addListener(t,"mouseout",(function(e){"pf"==t.type?t.setOptions({strokeColor:"#000000",strokeWeight:5,zIndex:10001}):"fp"==t.type?t.setOptions({strokeColor:"#000000",strokeWeight:3,zIndex:10002}):"er"==t.type&&t.setOptions({strokeColor:"#000000",strokeWeight:2,zIndex:10003}),j()}))),e||p.push(google.maps.event.addListener(t,"click",(function(e){j(),h.SACadastralPolyOnClick(this.id)})))}))}(i)}(e,0,0,0,i,s)}function ie(e,t,o,n,i,s){G(),H(),$(),V(),Y();var r=google.maps.event.addListener(l,"dragend",(function(){l.getZoom()>=13&&l.getZoom()<=17?h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on dragend",code:200,data:null}):(G(),Y(),l.getZoom()<13&&l.setZoom(13),l.getZoom()>17&&l.setZoom(17),h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on dragend, zoom outside range",code:200,data:null}))}));d.push(r);var a=google.maps.event.addListener(l,"zoom_changed",(function(){l.getZoom()>=13&&l.getZoom()<=17?h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on zoom changed",code:200,data:null}):(G(),Y(),l.getZoom()<13&&l.setZoom(13),l.getZoom()>17&&l.setZoom(17),h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on zoom changed, zoom outside range",code:200,data:null}))}));d.push(a);var g=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){l.getZoom()>=13&&l.getZoom()<=17?h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on bounds changed",code:200,data:null}):(G(),Y(),l.getZoom()<13&&l.setZoom(13),l.getZoom()>17&&l.setZoom(17),h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on bounds changed, zoom outside range",code:200,data:null}))}));d.push(g),l.getZoom()>=13&&l.getZoom()<=17&&function(e,t,o,n,i,s){var r=e;r&&r.length>0&&r.forEach((function(e){s&&(c=new google.maps.LatLngBounds);var t=e.poly.split(","),o=[];t.forEach((function(e){var t=Ut.decode(e),n=[];t.forEach((function(e){n.push(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1]))),s&&c.extend(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1])))})),o.push(n)}));var n=e.area/1e4,i=e.category+"<br>"+n.toFixed(2)+" ha",r=new google.maps.Polygon({map:l,paths:o,strokeWeight:3,strokeColor:"#000000",strokeOpacity:1,fillColor:"#000000",fillOpacity:.01,id:e.id,content:i,zIndex:10001});s&&l.fitBounds(c),L.push(r)}));!function(e){j(),L.forEach((function(t){p.push(google.maps.event.addListener(t,"mouseover",(function(e){t.setOptions({strokeColor:"#f1a81e",strokeWeight:3,zIndex:10011}),j(),U(e,t.content)}))),p.push(google.maps.event.addListener(t,"mousemove",Z)),p.push(google.maps.event.addListener(t,"mouseout",(function(e){t.setOptions({strokeColor:"#000000",strokeWeight:3,zIndex:10001}),j()}))),e||p.push(google.maps.event.addListener(t,"click",(function(e){j(),h.SADelineatedFieldPolyOnClick(this.id)})))}))}(i)}(e,0,0,0,i,s)}function se(e,t,o,n){var i=e;c=new google.maps.LatLngBounds;var s=!1;if(i.forEach((function(e){var t=new google.maps.LatLng(e.latitude,e.longitude);c.extend(new google.maps.LatLng(e.latitude,e.longitude));var o=new DOMParser,n='<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none">';n+='<g transform="translate(0.5, 4)"><path d="M0,0 32,0 16,27.7Z" stroke="#000000" stroke-width="1" fill="'+e.iconColor+'" fill-opacity="0.9"></path></g>',n+="</svg>";var i=o.parseFromString(n,"image/svg+xml").documentElement,s=new google.maps.marker.AdvancedMarkerElement({map:l,position:t,content:i,zIndex:10002});s.setAttribute("id",e.id+"|"+e.name+"|"+e.companyName+"|"+e.jseAbbreviation+"|"+e.label+"|"+e.capacity+"|"+e.sagisCode),M.push(s)})),i.length>1){var r=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){if(!s){var e=l.getProjection().fromLatLngToPoint(c.getSouthWest()),i=l.getProjection().fromLatLngToPoint(c.getNorthEast()),r=l.getZoom(),a=1<<r;(i.x-e.x)*a>=n&&l.setZoom(r-1),l.getZoom()>16&&l.setZoom(16),te(c.getCenter(),t,o),s=!s}}));d.push(r),l.fitBounds(c)}else if(1==i.length){r=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){s||(te(l.getCenter(),t,o),s=!s)}));l.panTo(new google.maps.LatLng(i[0].latitude,i[0].longitude)),l.setZoom(9)}}function re(e,t,o,n,i,s,r){G(),H(),$(),V(),Y(),function(e,t){var o=null;e.forEach((function(e){if((e.id==t||0===t)&&e&&e.poly&&e.poly.length>0){var n=google.maps.geometry.encoding.decodePath(e.poly,5);o=new google.maps.Polygon({map:l,path:n,strokeColor:"#000000",strokeOpacity:1,strokeWeight:3,fillColor:"#000000",fillOpacity:.3,id:e.id,content:e.regionName,zIndex:1e4}),L.push(o)}}))}(e,o),function(e){j(),L.forEach((function(t){p.push(google.maps.event.addListener(t,"mouseover",(function(e){t.setOptions({strokeColor:"#f1a81e",strokeWeight:3,zIndex:10012}),j(),U(e,t.content)}))),p.push(google.maps.event.addListener(t,"mousemove",Z)),p.push(google.maps.event.addListener(t,"mouseout",(function(e){t.setOptions({strokeColor:"#000000",strokeWeight:3,zIndex:10002}),j()}))),e||p.push(google.maps.event.addListener(t,"click",(function(e){j(),h.CPRPolyOnClick({type:"SUCCESS",message:"CPRPoly clicked",code:200,data:t.id})})))}))}(r),se(t,n,i,s),le()}function ae(e,t,o,n,i,s,r){G(),H(),$(),V(),Y(),function(e,t){var o,n,i=null;e.forEach((function(e){e.id!=t&&0!==t||e&&e.poly&&e.poly.length>0&&(n=[],e.poly.split(",").forEach((function(e){o=google.maps.geometry.encoding.decodePath(e,5),n.push(o)})),i=new google.maps.Polygon({map:l,paths:n,strokeColor:"#000000",strokeOpacity:1,strokeWeight:3,fillColor:"#000000",fillOpacity:.3,id:e.id,content:e.name,zIndex:1e4}),L.push(i))}))}(e,o),function(e){j(),L.forEach((function(t){p.push(google.maps.event.addListener(t,"mouseover",(function(e){t.setOptions({strokeColor:"#f1a81e",strokeWeight:3,zIndex:10012}),j(),U(e,t.content)}))),p.push(google.maps.event.addListener(t,"mousemove",Z)),p.push(google.maps.event.addListener(t,"mouseout",(function(e){t.setOptions({strokeColor:"#000000",strokeWeight:3,zIndex:10002}),j()}))),e||p.push(google.maps.event.addListener(t,"click",(function(e){j(),h.CSProvincePolyOnClick({type:"SUCCESS",message:"CSProvincePoly clicked",code:200,data:t.id})})))}))}(r),se(t,n,i,s),le()}function le(e){j(),M.forEach((function(e){var t=e.id.split("|"),o="<b>"+t[1]+"</b><br>";o+="Company: "+t[2]+" ("+t[3]+")<br>",o+="Type: "+t[4]+"<br>",parseInt(t[5])>0?o+="Capacity: "+t[5]+"t<br>":o+="Capacity: n/a<br>",parseInt(t[6])>0?o+="Sagis Code: "+t[6]:o+="Sagis Code: n/a";var n=e.addListener("click",(function(e){h.GSMarkerOnClick({type:"SUCCESS",message:"GSMarker clicked",code:200,data:parseInt(t[0])})}));u.push(n);var i=e.content.addEventListener("mouseover",(function(e){j(),W(e,o)}));u.push(i);var s=e.content.addEventListener("mousemove",(function(e){F(e)}));u.push(s);var r=e.content.addEventListener("mouseout",(function(e){j()}));u.push(r)}))}a.eventHandlers_set=function(e){Object.assign(h,e)},a.eventHandlers_get=function(){return h},a.center_get=function(){return l.getCenter()},a.zoom_get=function(){return l.getZoom()},a.fpolies_get=function(){return L},a.locPolygons_get=function(){return m},a.overlayMapTypes_get=function(){return l.overlayMapTypes},a.RenderFields=function(e,t){var o=new google.maps.LatLngBounds;e.forEach((function(e){if(e&&e.Poly&&e.Poly.length>0&&e.Id.length>0){var n=e.Poly.map((e=>e.map((e=>new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0]))))));n[0].forEach((e=>o.extend(e)));let r=`${e.FarmName} - ${e.LocationName}<br>${e.Area} ha${e.IsIrrigated?", irrigated":""}`;e.CropPlanted&&(r+=`<br>${e.CropPlanted}`,e.CultivarPlanted&&(r+=` (${e.CultivarPlanted})`),e.PlantingDate&&(r+=`<br>Planted: ${e.PlantingDate.replace(/-/g,"/")}`));var i={paths:n,id:e.Id,content:r};i=e.MapLocationFeature?{...i,content:r,strokeColor:e.MapLocationFeature.StrokeColor,strokeOpacity:e.MapLocationFeature.StrokeOpacity,strokeWeight:e.MapLocationFeature.StrokeWeight,fillColor:e.MapLocationFeature.FillColor,fillOpacity:e.MapLocationFeature.FillOpacity,zIndex:e.MapLocationFeature.ZIndex}:{...i,...t.polygonOptions.unselected};var s=new google.maps.Polygon(i);v.push(s),t.labelVisable&&R(e)}})),l.fitBounds(o),A(),t.icon&&N(e,t.icon),v.forEach((function(e,t){e.setMap(l)})),m.forEach((function(e,t){e.setMap(l)})),l.getZoom()>=13?y.forEach((function(e,t){e.setMap(l)})):y.forEach((function(e,t){e.setMap(null)})),g=google.maps.event.addListener(l,"zoom_changed",(function(){l.getZoom()>=13?y.forEach((function(e,t){e.setMap(l)})):y.forEach((function(e,t){e.setMap(null)}))})),d.push(g)},a.destroy=function(){mapConfig=null,P=[],selectedProvinceFieldId=null,defaultCenterLatitude=null,defaultCenterLongitude=null,m=[],v=[],y=[],a.map_clear()},a.map_clear=function(){if(H(),$(),G(),C.forEach((function(e){e.setMap(null),e=null})),C=[],I.forEach((function(e){e.setMap(null),e=null})),I=[],V(),b.forEach((function(e){e.setMap(null),e=null})),b=[],y.forEach((function(e){e.setMap(null),e=null})),y=[],v.forEach((function(e){e.setMap(null),e=null})),v=[],function(){null!=z&&(z=(new Et).delete(l,z));m.forEach((function(e){e.setMap(null),e=null})),m=[]}(),Y(),w.forEach((function(e){e.setMap(null),e=null})),k.forEach((function(e){e.setMap(null),e=null})),z&&(z=(new Et).delete(l,z),z=null),x&&(x.setMap(null),x=null),E&&(E.setMap(null),E=null),S&&(S.setMap(null),S=null),l.overlayMapTypes)for(;l.overlayMapTypes.getLength()>0;)l.overlayMapTypes.pop();j(),B.length>0&&(B.forEach((e=>{e.setMap&&e.setMap(null)})),B=[]),m=[],f=[],v=[],y=[],L=[],I=[],C=[],b=[],w=[],k=[],M=[],c=null},a.fmarkers_clear=function(){M.forEach((function(e){e.setMap(null),e=null})),M=[]},a.mapListeners_clear=function(){d.forEach((function(e){google.maps.event.removeListener(e)})),d=[]},a.DrawField_DrawLocation=function(e,t,o,n){var i;P=JSON.parse(e,!0);var s=new google.maps.LatLngBounds;P.forEach((function(e){if(e&&e.Poly&&e.Poly.length>0&&e.Id>0){var r=e.Poly.map((e=>e.map((e=>new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0]))))));e.FarmIdentifier==t&&r[0].forEach((e=>s.extend(e)));let c=`${e.FarmName} - ${e.LocationName}<br>${e.Area} ha${e.IsIrrigated?", irrigated":""}`;if(e.CropPlanted&&(c+=`<br>${e.CropPlanted}`,e.CultivarPlanted&&(c+=` (${e.CultivarPlanted})`),e.PlantingDate&&(c+=`<br>Planted: ${e.PlantingDate.replace(/-/g,"/")}`)),e.Poly.forEach((function(t,s){if(e.Id==o){var a=google.maps.geometry.spherical.computeSignedArea(path)>0&&0!==s;i=Date.now()+Math.floor(1e5*Math.random());var c=new google.maps.Polygon({map:l,path:r[s],id:i,strokeColor:n.StrokeColor,strokeOpacity:n.StrokeOpacity,strokeWeight:n.StrokeWeight,fillColor:n.FillColor,fillOpacity:n.FillOpacity,zIndex:a?10200:10100,clickable:!0,editable:!1,draggable:!0,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:a,latitude:e.Latitude,longitude:e.Longitude,poly:e.Poly,area:e.Area,perimeter:e.Perimeter});m.push(c)}})),e.Id!=o){i=Date.now()+Math.floor(1e5*Math.random());let t=`${e.FarmName} - ${e.LocationName}<br>${e.Area} ha${e.IsIrrigated?", irrigated":""}`;e.CropPlanted&&(t+=`<br>${e.CropPlanted}`,e.CultivarPlanted&&(t+=` (${e.CultivarPlanted})`),e.PlantingDate&&(t+=`<br>Planted: ${e.PlantingDate.replace(/-/g,"/")}`));var a=new google.maps.Polygon({map:l,paths:r,id:i,content:t,strokeColor:n.StrokeColor,strokeOpacity:n.StrokeOpacity,strokeWeight:n.StrokeWeight,fillColor:n.FillColor,fillOpacity:n.FillOpacity,zIndex:1e4,clickable:!1,editable:!1,draggable:!1});v.push(a)}}})),l.fitBounds(s),A()},a.Shape_IsShapeHole=function(e){let t=!1;return m.forEach((function(o){o.id==e&&(t=o.isHole)})),t},a.SelectedShape_GetType=function(e,t){var o=m.find((t=>t.id==e));if(o.id==e){if(o.isPolygon)return t.ShapeTypeId_Polygon;if(o.isCircle)return t.ShapeTypeId_Circle;if(o.isCircleSector)return t.ShapeTypeId_CircleSector;if(o.isCircleSegment)return t.ShapeTypeId_CircleSegment}},a.SelectedShape_GetByShapeId=function(e){return m.find((t=>t.id==e))},a.selectShape=function(e,t,o){if(console.log("Selecting shape:",e),console.log("Current locPolygons:",m),m.forEach((function(e){e&&(console.log("Applying unselected style to polygon:",e.id),null!=z&&e.isPolygon&&(z=(new Et).delete(l,z),z=null,e.setMap(l)),null!=x&&e.isCircle&&(x.set("map",null),x=null),null!=E&&e.isCircleSector&&(E.set("map",null),E=null),null!=S&&e.isCircleSegment&&(S.set("map",null),S=null),e.setOptions({...o,editable:!1,draggable:!1}))})),e){const o=m.find((t=>t.id==e));o?(console.log("Applying selected style to shape:",e),o.setOptions(t)):console.warn("Shape not found in locPolygons:",e)}},a.isShapeInLocPolygons=function(e){return m.some((t=>t.id==e))},a.panAndZoomToShape=function(e){let t=m.find((t=>t.id==e))||v.find((t=>t.id==e));if(console.log("locPolygons - panAndZoomToShape",m),t&&l){const e=new google.maps.LatLngBounds;if(t.getPath)t.getPath().forEach((t=>e.extend(t)));else if(t.getCenter&&t.getRadius){const o=t.getCenter(),n=t.getRadius();e.extend(google.maps.geometry.spherical.computeOffset(o,n,0)),e.extend(google.maps.geometry.spherical.computeOffset(o,n,180))}else t.getBounds&&e.union(t.getBounds());const o=l.getZoom();l.fitBounds(e,{padding:50}),google.maps.event.addListenerOnce(l,"bounds_changed",(function(){const e=l.getZoom();Math.abs(e-o)>3&&l.setZoom(Math.min(e,18))}))}else console.error("Shape not found:",e)},a.Shape_Edit=function(e){m.forEach(((t,o)=>{t.id===e&&(t.setEditable(!0),o>0&&t.setDraggable(!0))}))},a.Shape_DrawingDone=function(e){m.forEach((function(t){if(t.id==e)if(t.isPolygon){if(null!=z){var o=z.getPath();t.setPath(o),z=(new Et).delete(l,z),z=null}t.setMap(l),t.setEditable(!1),t.setDraggable(!1),t.setVisible(!0)}else if(t.isCircle){var n=(new Wt).reduce(x.getPath(),t.isHole);t.setPath(n),t.isPolygon=!1,t.isCircle=!0,t.setEditable(!1),t.setDraggable(!1),x.setMap(null),x=null,t.setVisible(!0)}else if(t.isCircleSector){n=(new Zt).reduce(E.getPath(),t.isHole);t.setPath(n),t.isPolygon=!1,t.isCircleSector=!0,t.setEditable(!1),t.setDraggable(!1),E.setMap(null),E=null,t.setVisible(!0)}else if(t.isCircleSegment){n=(new Ft).reduce(S.getPath(),t.isHole);t.setPath(n),t.isPolygon=!1,t.isCircleSegment=!0,t.setEditable(!1),t.setDraggable(!1),S.setMap(null),S=null,t.setVisible(!0)}}))},a.Shape_Delete=function(e,t){const o=l.getBounds(),n=l.getCenter(),i=l.getZoom();H(),this.eventHandlers_set(t);if(m.length>0&&m[0].id==e)a.Shape_DeleteAll();else{var s=-1;m.forEach((function(t,o){t.id==e&&(null!=z&&(z=(new Et).delete(l,z),z=null),null!=x&&(x.set("map",null),x=null),null!=E&&(E.set("map",null),E=null),null!=S&&(S.set("map",null),S=null),t.setMap(null),s=o)})),s>=0&&m.splice(s,1),n&&o&&(l.setZoom(i),l.setCenter(n),l.fitBounds(o))}},a.Shape_DeleteAll=function(e){const t=l.getBounds(),o=l.getCenter(),n=l.getZoom();H(),m.forEach((function(e){null!=z&&(z=(new Et).delete(l,z),z=null),null!=x&&(x.set("map",null),x=null),null!=E&&(E.set("map",null),E=null),null!=S&&(S.set("map",null),S=null),e.setMap(null),e=null})),m=[],o&&t&&(l.setZoom(n),l.setCenter(o),l.fitBounds(t))},a.Shape_PolygonCustomEdit_Add=function(e,s,r,a,c,g,p,u){if(e)return J(s,a,c,p,u,g,r);var d=l.getBounds(),h=l.getCenter(),f=h.lat(),v=h.lng(),y=[];d&&(t=Math.abs(d.getSouthWest().lat()-d.getNorthEast().lat()),o=Math.abs(d.getNorthEast().lng()-d.getSouthWest().lng()),n=o/a,i=t/c,y.push(new google.maps.LatLng(f+u*i+60*i,v+p*n-80*n)),y.push(new google.maps.LatLng(f+u*i+60*i,v+p*n+80*n)),y.push(new google.maps.LatLng(f+u*i-60*i,v+p*n+80*n)),y.push(new google.maps.LatLng(f+u*i-60*i,v+p*n-80*n)));var L=Date.now()+Math.floor(1e5*Math.random()),I=new google.maps.Polygon({map:l,path:y,id:L.toString(),content:"",strokeColor:s.strokeColor,strokeOpacity:s.strokeOpacity,strokeWeight:s.strokeWeight,fillColor:s.fillColor,fillOpacity:s.fillOpacity,zIndex:10100,clickable:!0,editable:!1,draggable:!0,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:!1,latitude:0,longitude:0,poly:0,area:0,perimeter:0});return m.push(I),z=(new Et).edit(l,I,z,r),L},a.Shape_Polygon_Add=function(e,s,r,a,c,g,p,u){if(e)return J(s,a,c,p,u,g,r);var d=l.getBounds(),h=l.getCenter(),v=h.lat(),y=h.lng(),L=[],I=[];d&&(t=Math.abs(d.getSouthWest().lat()-d.getNorthEast().lat()),o=Math.abs(d.getNorthEast().lng()-d.getSouthWest().lng()),n=o/a,i=t/c,L.push(new google.maps.LatLng(v+u*i+60*i,y+p*n-80*n)),L.push(new google.maps.LatLng(v+u*i+60*i,y+p*n+80*n)),L.push(new google.maps.LatLng(v+u*i-60*i,y+p*n+80*n)),L.push(new google.maps.LatLng(v+u*i-60*i,y+p*n-80*n)),I.push([y+p*n-80*n,v+u*i+60*i]),I.push([y+p*n+80*n,v+u*i+60*i]),I.push([y+p*n+80*n,v+u*i-60*i]),I.push([y+p*n-80*n,v+u*i-60*i]),I.push([y+p*n-80*n,v+u*i+60*i]),f.push(I));var C=Date.now()+Math.floor(1e5*Math.random()),b=new google.maps.Polygon({map:l,path:L,id:C.toString(),content:"",strokeColor:s.strokeColor,strokeOpacity:s.strokeOpacity,strokeWeight:s.strokeWeight,fillColor:s.fillColor,fillOpacity:s.fillOpacity,zIndex:10100,clickable:!0,editable:!0,draggable:!0,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:e,latitude:0,longitude:0,poly:0,area:0,perimeter:0});return console.log("shape",b),m.push(b),C},a.Shape_CircleFull_Add=function(e,a,c,g,p,u,d,h,v,y){if(e){var L=function(e,a,c,g,p,u,d,h){var v;if(void 0===n||void 0===i){var y=l.getBounds();y&&(t=Math.abs(y.getSouthWest().lat()-y.getNorthEast().lat()),o=Math.abs(y.getNorthEast().lng()-y.getSouthWest().lng()),n=o/a,i=t/c)}f=[],m.forEach((function(e){for(var t=e.getPath(),o=[],n=0;n<t.length;n++)o.push([t.getAt(n).lng(),t.getAt(n).lat()]);t.getAt(0).lng()==t.getAt(t.length-1).lng()&&t.getAt(0).lat()==t.getAt(t.length-1).lat()||o.push([t.getAt(0).lng(),t.getAt(0).lat()]),f.push(o)}));var L=D(f);s=L.y,r=L.x;for(var I=0,C=360,b=20;b>0;b--){var w=[],k=s,M=r+2*b*n,P=new google.maps.LatLng(s,r),z=kt(s,r,k,M),x=(new Wt).get(s,r,z,I,C);x.forEach((function(e){w.push([e.lng(),e.lat()])})),f.push(w);var E=0;if(w.forEach((function(e,t){google.maps.geometry.poly.containsLocation(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])),m[0])||E++})),0==E){if(!(f.length>2)){v=X(e,g,p,u,x,P,z,d,h);break}for(var S=0,O=1;O<f.length-1;O++)for(var _=O+1;_<f.length;_++)K(f[O],f[_])&&S++;if(0==S){v=X(e,g,p,u,x,P,z,d,h);break}f.pop()}else f.pop()}return v}(a,g,p,v,y,u,c,I);return L}var C=l.getBounds(),b=l.getCenter(),w=b.lat(),k=b.lng();t=Math.abs(C.getSouthWest().lat()-C.getNorthEast().lat()),o=Math.abs(C.getNorthEast().lng()-C.getSouthWest().lng());var M=w+y*(i=t/p),P=k+v*(n=o/g),z=new google.maps.LatLng(M,P),E=kt(M,P,M,P+80*n),S=(new Wt).get(M,P,E,0,360),O=Date.now()+Math.floor(1e5*Math.random()),_=new google.maps.Polygon({map:l,path:S,id:O.toString(),content:"",strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight,fillColor:a.fillColor,fillOpacity:a.fillOpacity,zIndex:10100,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!0,isCircleSector:!1,isCircleSegment:!1,isHole:e,latitude:0,longitude:0,poly:0,area:0,perimeter:0});return m.push(_),x=(x=new Wt).edit(l,_,x,z,E,c,I),O},a.Shape_CircleSector_Add=function(e,a,c,g,p,u,d,h,v,y){if(e){var L=function(e,a,c,g,p,u,d,h){var v;if(void 0===n||void 0===i){var y=l.getBounds();y&&(t=Math.abs(y.getSouthWest().lat()-y.getNorthEast().lat()),o=Math.abs(y.getNorthEast().lng()-y.getSouthWest().lng()),n=o/a,i=t/c)}f=[],m.forEach((function(e){for(var t=e.getPath(),o=[],n=0;n<t.length;n++)o.push([t.getAt(n).lng(),t.getAt(n).lat()]);t.getAt(0).lng()==t.getAt(t.length-1).lng()&&t.getAt(0).lat()==t.getAt(t.length-1).lat()||o.push([t.getAt(0).lng(),t.getAt(0).lat()]),f.push(o)}));var L=D(f);s=L.y,r=L.x;for(var I=60,C=120,b=20;b>0;b--){var w=[],k=s,M=r+2*b*n,P=new google.maps.LatLng(s,r),z=kt(s,r,k,M),x=(new Zt).get(s,r,z,I,C);x.forEach((function(e){w.push([e.lng(),e.lat()])})),f.push(w);var E=0;if(w.forEach((function(e,t){google.maps.geometry.poly.containsLocation(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])),m[0])||E++})),0==E){if(!(f.length>2)){v=Q(e,g,p,u,x,P,z,d,h);break}for(var S=0,O=1;O<f.length-1;O++)for(var _=O+1;_<f.length;_++)K(f[O],f[_])&&S++;if(0==S){v=Q(e,g,p,u,x,P,z,d,h);break}f.pop()}else f.pop()}return v}(a,g,p,v,y,u,c,I);return L}var C=l.getBounds(),b=l.getCenter(),w=b.lat(),k=b.lng();t=Math.abs(C.getSouthWest().lat()-C.getNorthEast().lat()),o=Math.abs(C.getNorthEast().lng()-C.getSouthWest().lng());var M=w+y*(i=t/p),P=k+v*(n=o/g),z=new google.maps.LatLng(M,P),x=kt(M,P,M,P+80*n),S=(new Zt).get(M,P,x,60,120),O=Date.now()+Math.floor(1e5*Math.random()),_=new google.maps.Polygon({map:l,path:S,id:O.toString(),content:"",strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight,fillColor:a.fillColor,fillOpacity:a.fillOpacity,zIndex:e?10200:10100,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!1,isCircleSector:!0,isCircleSegment:!1,isHole:e,latitude:0,longitude:0,poly:0,area:0,perimeter:0});return m.push(_),E=(E=new Zt).edit(l,_,E,z,x,c,I),O},a.Shape_CircleSegment_Add=function(e,a,c,g,p,u,d,h,v,y){if(e){var L=function(e,a,c,g,p,u,d,h){var v;if(void 0===n||void 0===i){var y=l.getBounds();y&&(t=Math.abs(y.getSouthWest().lat()-y.getNorthEast().lat()),o=Math.abs(y.getNorthEast().lng()-y.getSouthWest().lng()),n=o/a,i=t/c)}f=[],m.forEach((function(e){for(var t=e.getPath(),o=[],n=0;n<t.length;n++)o.push([t.getAt(n).lng(),t.getAt(n).lat()]);t.getAt(0).lng()==t.getAt(t.length-1).lng()&&t.getAt(0).lat()==t.getAt(t.length-1).lat()||o.push([t.getAt(0).lng(),t.getAt(0).lat()]),f.push(o)}));var L=D(f);s=L.y,r=L.x;for(var I=0,C=160,b=20;b>0;b--){var w=[],k=s,M=r+2*b*n,P=new google.maps.LatLng(s,r),z=kt(s,r,k,M),x=(new Zt).get(s,r,z,I,C);x.forEach((function(e){w.push([e.lng(),e.lat()])})),f.push(w);var E=0;if(w.forEach((function(e,t){google.maps.geometry.poly.containsLocation(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])),m[0])||E++})),0==E){if(!(f.length>2)){v=ee(e,g,p,u,x,P,z,d,h);break}for(var S=0,O=1;O<f.length-1;O++)for(var _=O+1;_<f.length;_++)K(f[O],f[_])&&S++;if(0==S){v=ee(e,g,p,u,x,P,z,d,h);break}f.pop()}else f.pop()}return v}(a,g,p,v,y,u,c,I);return L}var C=l.getBounds(),b=l.getCenter(),w=b.lat(),k=b.lng();t=Math.abs(C.getSouthWest().lat()-C.getNorthEast().lat()),o=Math.abs(C.getNorthEast().lng()-C.getSouthWest().lng());var M=w+y*(i=t/p),P=k+v*(n=o/g),z=new google.maps.LatLng(M,P),x=kt(M,P,M,P+80*n),E=(new Ft).get(M,P,x,0,160),O=Date.now()+Math.floor(1e5*Math.random()),_=new google.maps.Polygon({map:l,path:E,id:O.toString(),content:"",strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight,fillColor:a.fillColor,fillOpacity:a.fillOpacity,zIndex:e?10200:10100,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!1,isCircleSector:!1,isCircleSegment:!0,isHole:e,latitude:0,longitude:0,poly:0,area:0,perimeter:0});return m.push(_),S=(S=new Ft).edit(l,_,S,z,x,c,I),O},a.RenderRegionFarms=function(e,t,o,n,i){t&&N(e,t,"farm",o,n,i)},a.TriggerField_ChangeEvent=function(){var e,t,o=0,n=0,i="",s=new google.maps.LatLngBounds,r="",l=[];return m.forEach((function(e,t){var r;r=e.getPath(),({perimeter:n,area:o,path:i}=function(e,t,o,n,i,s){var r,a=[];if(0===e){for(r=0;r<t.getLength();r++)a.push(t.getAt(r)),o.extend(t.getAt(r)),r<t.getLength()-1&&(n+=google.maps.geometry.spherical.computeDistanceBetween(t.getAt(r),t.getAt(r+1)));a[0].lat()!=a[a.length-1].lat()&&a[0].lng()!=a[a.length-1].lng()&&a.push(a[0]),google.maps.geometry.spherical.computeSignedArea(a)>0&&a.reverse(),i+=google.maps.geometry.spherical.computeSignedArea(a),s=google.maps.geometry.encoding.encodePath(a)+","}else{for(r=0;r<t.getLength();r++)a.push(t.getAt(r)),o.extend(t.getAt(r)),r<t.getLength()-1&&(n+=google.maps.geometry.spherical.computeDistanceBetween(t.getAt(r),t.getAt(r+1)));i+=google.maps.geometry.spherical.computeSignedArea(a),s+=google.maps.geometry.encoding.encodePath(a)+","}return{perimeter:n,area:i,path:s}}(t,r,s,n,o,i)),l.push({path:i.split(",")[t],isHole:e.isHole})})),""!==(i=i.substr(0,i.length-1))&&(console.log("Checking field overlaps..."),a.checkForBackgroundFieldOverlaps()||(console.log("Overlap detected - setting error message"),r="Error: Field overlaps with an existing field")),o=-o,e=parseFloat(s.getCenter().lat()),t=parseFloat(s.getCenter().lng()),new St(i,o,n,e,t,r)},a.DrawField_AttachEvents=function(e,t,o){m.forEach((function(n){var i=google.maps.event.addListener(n,"mouseover",(function(){e.JS_ShapeOnMouseIn(this.id)}));p.push(i);var s=google.maps.event.addListener(n,"mouseout",(function(){e.JS_ShapeOnMouseOut(this.id)}));p.push(s);var r=google.maps.event.addListener(n,"click",(function(){e.ShapeSelect(this.id)}));p.push(r),n.id==t&&void 0!==o&&n.setOptions({strokeColor:o,strokeWeight:3})}))},a.DrawField_DetachEvents=function(e,t){H(),m.forEach((function(o){o.id==t&&o.setOptions({strokeColor:e})}))},a.PolygonCustomEdit_Edit=function(e,t){var o=m.find((t=>t.id==e));if(o){var n=o.getPath();n.getAt(0).lat()==n.getAt(n.getLength()-1).lat()&&n.getAt(0).lng()==n.getAt(n.getLength()-1).lng()&&n.pop(),o.setPath(n),o.setMap(null),z=(new Et).edit(l,o,z,t)}},a.CircleSector_Edit=function(e,t){var o=m.find((t=>t.id==e));if(o){var n=new google.maps.LatLngBounds;o.getPath().forEach((e=>n.extend(e)));var i=n.getCenter(),s=google.maps.geometry.spherical.computeDistanceBetween(i,o.getPath().getAt(0));E=(new Zt).edit(l,o,E,i,s,t,I)}},a.CircleFull_Edit=function(e,t){var o=m.find((t=>t.id==e));if(o){var n=new google.maps.LatLngBounds;o.getPath().forEach((e=>n.extend(e)));var i=n.getCenter(),s=google.maps.geometry.spherical.computeDistanceBetween(i,o.getPath().getAt(0));x=(new Wt).edit(l,o,x,i,s,t,I)}},a.CircleSegment_Edit=function(e,t){var o=m.find((t=>t.id==e));if(o){a.Shape_Delete(e);var n=new google.maps.LatLngBounds;o.getPath().forEach((e=>n.extend(e)));var i=n.getCenter(),s=google.maps.geometry.spherical.computeDistanceBetween(i,o.getPath().getAt(0));S=(new Ft).edit(l,o,S,i,s,t,I)}},a.RenderRegions=function(e,t,o,n,i,s){var r=null,a=null,c=null;L=[],d=[];var g=new google.maps.LatLngBounds;e.forEach((function(e){const o="string"==typeof e.Id?e.Id.length>0:"number"==typeof e.Id&&e.Id>0;if(e&&o){var n=[];n=!e.Poly.length>0?e.Coords:e.Poly.split(",");var i=[];n.forEach((function(t,o){!e.Poly.length>0?(c=[],t.forEach((function(e){c.push(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0]))),g.extend(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])))})),i.push(c)):(a=Ut.decode(t),c=[],a.forEach((function(e){c.push(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1]))),g.extend(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1])))})),i.push(c))}));var s={...t.polygonOptions.unselected,paths:i,id:e.Id,content:e.LocationName,map:l};r=new google.maps.Polygon(s),L.push(r)}}));var u=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){te(l.getCenter(),i,s)}));d.push(u),l.fitBounds(g),function(e,t){j(),L.forEach((function(e){e instanceof google.maps.Polygon?(p.push(google.maps.event.addListener(e,"mouseover",(function(t){j(),U(t,e.get("content"))}))),p.push(google.maps.event.addListener(e,"mousemove",Z)),p.push(google.maps.event.addListener(e,"mouseout",j)),p.push(google.maps.event.addListener(e,"click",(function(e){j()})))):console.warn("Invalid polygon object found in fpolies array:",e)})),N(e,t,"farm",!1)}(o,n)},a.Shape_Convert=function(e){m.forEach((function(t){if(t.id==e&&!t.isPolygon){var o,n=Date.now()+Math.floor(1e5*Math.random());if(t.isCircle){var i=function(e,t,o,n){for(var i,s,r,a,l,c,g,p,u=[],d=0;d<o;++d)u.push((i=e,s=t,r=2*Math.PI*-d/o,a=void 0,l=void 0,c=void 0,g=void 0,p=void 0,a=Pt(i[1]),l=Pt(i[0]),c=s/6378137,g=Math.asin(Math.sin(a)*Math.cos(c)+Math.cos(a)*Math.sin(c)*Math.cos(r)),p=l+Math.atan2(Math.sin(r)*Math.sin(c)*Math.cos(a),Math.cos(c)-Math.sin(a)*Math.sin(g)),new google.maps.LatLng({lat:zt(g),lng:zt(p)})));return n?u:u.reverse()}([t.getCenter().lng(),t.getCenter().lat()],t.getRadius(),72,t.isHole);o=new google.maps.Polygon({map:t.map,path:i,id:n,content:t.content,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,clickable:t.clickable,editable:t.editable,draggable:t.draggable,visible:!1,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:t.isHole,latitude:t.latitude,longitude:t.longitude,poly:t.poly,area:t.area,perimeter:t.perimeter})}else t.isCircleSector?o=new google.maps.Polygon({map:t.map,paths:t.paths,id:n,content:t.content,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,clickable:t.clickable,editable:t.editable,draggable:t.draggable,visible:!1,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:t.isHole,latitude:t.latitude,longitude:t.longitude,poly:t.poly,area:t.area,perimeter:t.perimeter}):t.isCircleSegment&&(o=new google.maps.Polygon({map:t.map,paths:t.paths,id:n,content:t.content,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,clickable:t.clickable,editable:t.editable,draggable:t.draggable,visible:!1,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!0,isHole:t.isHole,latitude:t.latitude,longitude:t.longitude,poly:t.poly,area:t.area,perimeter:t.perimeter}));return m.push(o),n}}))},a.addToLocPolygons=function(e){(m=[]).push(e)},a.RenderBackgroundFields=function(e,t){var o=new google.maps.LatLngBounds;B.forEach((e=>{e.setMap(null)})),B=[],e.forEach((function(e){if(e&&e.Poly&&e.Poly.length>0&&e.Id.length>0){var n=e.Poly.map((e=>e.map((e=>new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0]))))));n[0].forEach((e=>o.extend(e)));let r=`${e.FarmName} - ${e.LocationName}<br>${e.Area} ha${e.IsIrrigated?", irrigated":""}`;e.CropPlanted&&(r+=`<br>${e.CropPlanted}`,e.CultivarPlanted&&(r+=` (${e.CultivarPlanted})`),e.PlantingDate&&(r+=`<br>Planted: ${e.PlantingDate.replace(/-/g,"/")}`));var i={...t.polygonOptions.other,paths:n,id:e.Id,content:r,map:l},s=new google.maps.Polygon(i);B.push(s)}})),l.fitBounds(o)},a.clearBackgroundFields=function(){B.forEach((e=>{e.setMap(null)})),B=[]},a.checkForBackgroundFieldOverlaps=function(){if(console.log("Checking overlaps - Background Fields:",B.length,"Local Polygons:",m.length),!B.length||!m.length)return console.log("No fields to check for overlap"),!0;for(const e of m)for(const t of B){const o=e.getPath().getArray(),n=t.getPath().getArray();for(const e of o)if(google.maps.geometry.poly.containsLocation(e,t))return console.log("Overlap detected: Local polygon point inside background field"),!1;for(const t of n)if(google.maps.geometry.poly.containsLocation(t,e))return console.log("Overlap detected: Background field point inside local polygon"),!1}return console.log("No overlaps detected"),!0},a.RenderSAAdministrative=function(e,t,o,n,i,s,r,a,l){oe(e,0,0,0,0,s,r,0,l)},a.RenderSACadastral=function(e,t,o,n,i,s){ne(e,0,0,0,i,s)},a.RenderSADelineatedFields=function(e,t,o,n,i,s){ie(e,0,0,0,i,s)},a.RenderGSGPRegions=function(e,t,o,n,i,s,r){re(e,t,o,n,i,s,r)},a.RenderGSProvinces=function(e,t,o,n,i,s,r){ae(e,t,o,n,i,s,r)},a.NDVI_AddOverlay_DEA=function(e,t,o,n,i,s,r,a,c,g,p,u){var m,f,v=e[0],y=new google.maps.LatLngBounds;if(v&&v.Poly&&v.Poly.length>0&&v.Id>0){var L=D(v.Poly);m=L.y,f=L.x,v.Poly.forEach((function(e,t){e.forEach((function(e,o){0==t&&y.extend(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])))}))}))}else m=r,f=a;var I=0;p&&(I=1);var C=o,b=!1;if(!b){const e=document.createElement("img");e.src=s,e.width=120,e.height=120,e.style.transform="translate(0, 50%)";const t=new google.maps.LatLng(m,f);var w=new google.maps.marker.AdvancedMarkerElement({map:l,position:t,content:e});M.push(w),b=!0}var k=[];if(l.getZoom()>17){var P=google.maps.event.addListenerOnce(l,"zoom_changed",(function(){k=[];var e=new google.maps.ImageMapType({getTileUrl:function(e,o){if(C.indexOf(o+"|"+e.x+"|"+e.y)>-1){const s=I?"true":"false";return k.push({eosLocationCropperRefId:n,eosViewId:i,z:o,x:e.x,y:e.y}),[t.replace(/{l}/,n).replace(/{v}/,i).replace(/{p}/,c).replace(/{f}/,s).replace(/{z}/,o).replace(/{x}/,e.x).replace(/{y}/,e.y)].join("")}},tileSize:new google.maps.Size(256,256),minZoom:13,maxZoom:17});e.addListener("tilesloaded",(function(){if(b&&M.forEach((function(e,t){e.setMap(null),M.splice(t,1),b=!1})),k.length>0&&k[0].fullView,k.length>0){const e=l.getZoom();let t=[];k.forEach((function(o){-1==t.indexOf(o.z+"|"+o.x+"|"+o.y)&&o.z==e&&t.push(o.z+"|"+o.x+"|"+o.y)}));let n=0;o.forEach((t=>{parseInt(t.substring(0,t.indexOf("|")))==e&&n++})),t.length==n?h.OverlayTilesLoaded({type:"SUCCESS",message:"NDVI overlay completed",code:200,data:k[0]}):h.OverlayTilesLoaded({type:"ERROR",message:"Not all tiles loaded",code:400,data:null})}else h.OverlayTilesLoaded({type:"ERROR",message:"No tiles loaded",code:400,data:null});k=[]})),l.overlayMapTypes.push(e)}));d.push(P),l.setZoom(17)}else if(l.getZoom()<13){P=google.maps.event.addListenerOnce(l,"zoom_changed",(function(){k=[];var e=new google.maps.ImageMapType({getTileUrl:function(e,o){if(C.indexOf(o+"|"+e.x+"|"+e.y)>-1){const s=I?"true":"false";return k.push({eosLocationCropperRefId:n,eosViewId:i,z:o,x:e.x,y:e.y}),[t.replace(/{l}/,n).replace(/{v}/,i).replace(/{p}/,c).replace(/{f}/,s).replace(/{z}/,o).replace(/{x}/,e.x).replace(/{y}/,e.y)].join("")}},tileSize:new google.maps.Size(256,256),minZoom:13,maxZoom:17});e.addListener("tilesloaded",(function(){if(b&&M.forEach((function(e,t){e.setMap(null),M.splice(t,1),b=!1})),k.length>0&&k[0].fullView,k.length>0){const e=l.getZoom();let t=[];k.forEach((function(o){-1==t.indexOf(o.z+"|"+o.x+"|"+o.y)&&o.z==e&&t.push(o.z+"|"+o.x+"|"+o.y)}));let n=0;o.forEach((t=>{parseInt(t.substring(0,t.indexOf("|")))==e&&n++})),t.length==n?h.OverlayTilesLoaded({type:"SUCCESS",message:"NDVI overlay completed",code:200,data:k[0]}):h.OverlayTilesLoaded({type:"ERROR",message:"Not all tiles loaded",code:400,data:null})}else h.OverlayTilesLoaded({type:"ERROR",message:"No tiles loaded",code:400,data:null});k=[]})),l.overlayMapTypes.push(e)}));d.push(P),l.setZoom(13)}else{k=[];var z=new google.maps.ImageMapType({getTileUrl:function(e,o){if(C.indexOf(o+"|"+e.x+"|"+e.y)>-1){const s=I?"true":"false";return k.push({eosLocationCropperRefId:n,eosViewId:i,z:o,x:e.x,y:e.y}),[t.replace(/{l}/,n).replace(/{v}/,i).replace(/{p}/,c).replace(/{f}/,s).replace(/{z}/,o).replace(/{x}/,e.x).replace(/{y}/,e.y)].join("")}},tileSize:new google.maps.Size(256,256),minZoom:13,maxZoom:17});z.addListener("tilesloaded",(function(){if(b&&M.forEach((function(e,t){e.setMap(null),M.splice(t,1),b=!1})),k.length>0&&k[0].fullView,k.length>0){const e=l.getZoom();let t=0,n=[];k.forEach((function(t){-1==n.indexOf(t.z+"|"+t.x+"|"+t.y)&&t.z==e&&n.push(t.z+"|"+t.x+"|"+t.y)})),o.forEach((o=>{parseInt(o.substring(0,o.indexOf("|")))==e&&t++})),n.length==t?h.OverlayTilesLoaded({type:"SUCCESS",message:"NDVI overlay completed",code:200,data:k[0]}):h.OverlayTilesLoaded({type:"ERROR",message:"Not all tiles loaded",code:400,data:null})}else h.OverlayTilesLoaded({type:"ERROR",message:"No tiles loaded",code:400,data:null});k=[]})),l.overlayMapTypes.push(z)}},a.NDVI_RemoveOverlay=function(){l.overlayMapTypes.clear()},a.NDVI_DrawLocation=function(e,t,o,n,i,s){var r=e[0],a=null,c=!1;if(r&&r.Poly&&r.Poly.length>0&&r.Id>0){var g=[],u=new google.maps.LatLngBounds;r.Poly.forEach((function(e,t){var o=[];e.forEach((function(e){o.push(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0]))),0==t&&u.extend(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])))})),g.push(o)})),a=new google.maps.Polygon({map:l,paths:g,fillColor:"transparent",id:r.Id});var m=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){if(!c){var e=l.getProjection().fromLatLngToPoint(u.getSouthWest()),i=l.getProjection().fromLatLngToPoint(u.getNorthEast()),s=l.getZoom(),r=1<<s;(i.x-e.x)*r>=n&&l.setZoom(s-1),l.getZoom()>16&&l.setZoom(16),te(u.getCenter(),t,o),c=!c}}));if(d.push(m),l.fitBounds(u),i){var f=google.maps.event.addListener(a,"mouseover",(function(e){U(e,a.content)})),v=google.maps.event.addListener(a,"mousemove",(function(e){Z(e)})),I=google.maps.event.addListener(a,"mouseout",(function(e){j()}));p.push(f),p.push(v),p.push(I)}if(s){var C=google.maps.event.addListener(a,"click",(function(e){h.PolygonOnClick({id:r.Id,poly:r.Poly,lat:e.latLng.lat(),lng:e.latLng.lng()})}));p.push(C)}L.push(a)}l.getZoom()>=13?y.forEach((function(e){e.setMap(l)})):y.forEach((function(e){e.setMap(null)}));var b=google.maps.event.addListener(l,"zoom_changed",(function(){l.getZoom()>=13?y.forEach((function(e,t){e.setMap(l)})):y.forEach((function(e,t){e.setMap(null)}))}));d.push(b)},a.NLC_AddOverlay=function(e,t,o,n,i,s){if(t&&te(new google.maps.LatLng(o,n),i,s),l.getZoom()>14){var r=google.maps.event.addListenerOnce(l,"zoom_changed",(function(){var t=new google.maps.ImageMapType({getTileUrl:function(t,o){return console.log([e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")),[e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")},tileSize:new google.maps.Size(256,256),minZoom:5,maxZoom:14});l.overlayMapTypes.push(t)}));d.push(r),l.setZoom(14)}else if(l.getZoom()<5){r=google.maps.event.addListenerOnce(l,"zoom_changed",(function(){var t=new google.maps.ImageMapType({getTileUrl:function(t,o){return console.log([e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")),[e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")},tileSize:new google.maps.Size(256,256),minZoom:5,maxZoom:14});l.overlayMapTypes.push(t)}));d.push(r),l.setZoom(5)}else{var a=new google.maps.ImageMapType({getTileUrl:function(t,o){return console.log([e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")),[e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")},tileSize:new google.maps.Size(256,256),minZoom:5,maxZoom:14});l.overlayMapTypes.push(a)}},a.NLC_RemoveOverlay=function(){l.overlayMapTypes.clear()}}}var Ht={width:"100%",height:"100%"},$t={lat:-25.7652061,lng:28.2710333},Gt=["places","marker","geometry"],Yt={disableDefaultUI:!0,mapId:"JP_DEMO_MAP",mapTypeId:"hybrid",mapTypeControl:!0,zoomControl:!0},Jt=e.memo((function(t){var o=t.gmAPIkey,n=t.jpMap,i=e.useState(null),s=i[0],r=i[1],a=function(t){var o=t.mapInstance,n=e.useRef(null);return e.useEffect((function(){if(o){var e=new Vt(o);return n.current=e,function(){n.current&&n.current.map_clear()}}}),[o]),{mapManager:n.current}}({mapInstance:s}).mapManager,l=function(t){var o=t.id,n=void 0===o?W.id:o,i=t.version,s=void 0===i?W.version:i,r=t.nonce,a=t.googleMapsApiKey,l=t.language,c=t.region,g=t.libraries,p=void 0===g?$:g,u=t.preventGoogleFontsLoading,d=t.mapIds,h=t.authReferrerPolicy,m=e.useRef(!1),f=e.useState(!1),v=f[0],y=f[1],L=e.useState(void 0),I=L[0],C=L[1];e.useEffect((function(){return m.current=!0,function(){m.current=!1}}),[]);var b=e.useMemo((function(){return new H({id:n,apiKey:a,version:s,libraries:p,language:l||"en",region:c||"US",mapIds:d||[],nonce:r||"",authReferrerPolicy:h||"origin"})}),[n,a,s,p,l,c,d,r,h]);e.useEffect((function(){v||b.load().then((function(){m.current&&y(!0)})).catch((function(e){C(e)}))}),[]),e.useEffect((function(){O&&u&&B()}),[u]);var w=e.useRef();return e.useEffect((function(){w.current&&p!==w.current&&console.warn("Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables"),w.current=p}),[p]),{isLoaded:v,loadError:I}}({id:"google-map-script",googleMapsApiKey:o,libraries:Gt}).isLoaded,c=e.useCallback((function(e){r(e)}),[]);e.useEffect((function(){null!==s&&n({isMapInitialized:!0,mapObject:s,mapManager:a})}),[s,n]);var g=e.useCallback((function(e){r(null)}),[]);return l?u.jsx(S,{mapContainerStyle:Ht,center:$t,zoom:5,options:Yt,onLoad:c,onUnmount:g,children:u.jsx(u.Fragment,{})}):u.jsx(u.Fragment,{})}));module.exports=Jt;
53
+ ***************************************************************************** */class Oe{static isAdvancedMarkerAvailable(e){return google.maps.marker&&!0===e.getMapCapabilities().isAdvancedMarkersAvailable}static isAdvancedMarker(e){return google.maps.marker&&e instanceof google.maps.marker.AdvancedMarkerElement}static setMap(e,t){this.isAdvancedMarker(e)?e.map=t:e.setMap(t)}static getPosition(e){if(this.isAdvancedMarker(e)){if(e.position){if(e.position instanceof google.maps.LatLng)return e.position;if(e.position.lat&&e.position.lng)return new google.maps.LatLng(e.position.lat,e.position.lng)}return new google.maps.LatLng(null)}return e.getPosition()}static getVisible(e){return!!this.isAdvancedMarker(e)||e.getVisible()}}class _e{constructor({markers:e,position:t}){this.markers=e,t&&(t instanceof google.maps.LatLng?this._position=t:this._position=new google.maps.LatLng(t))}get bounds(){if(0===this.markers.length&&!this._position)return;const e=new google.maps.LatLngBounds(this._position,this._position);for(const t of this.markers)e.extend(Oe.getPosition(t));return e}get position(){return this._position||this.bounds.getCenter()}get count(){return this.markers.filter((e=>Oe.getVisible(e))).length}push(e){this.markers.push(e)}delete(){this.marker&&(Oe.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}class Te{constructor({maxZoom:e=16}){this.maxZoom=e}noop({markers:e}){return Be(e)}}const Be=e=>e.map((e=>new _e({position:Oe.getPosition(e),markers:[e]})));class Re extends Te{constructor(e){var{maxZoom:t,radius:o=60}=e,n=function(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(o[n[i]]=e[n[i]])}return o}(e,["maxZoom","radius"]);super({maxZoom:t}),this.state={zoom:-1},this.superCluster=new Me(Object.assign({maxZoom:this.maxZoom,radius:o},n))}calculate(e){let t=!1;const o={zoom:e.map.getZoom()};if(!he(e.markers,this.markers)){t=!0,this.markers=[...e.markers];const o=this.markers.map((e=>{const t=Oe.getPosition(e);return{type:"Feature",geometry:{type:"Point",coordinates:[t.lng(),t.lat()]},properties:{marker:e}}}));this.superCluster.load(o)}return t||(this.state.zoom<=this.maxZoom||o.zoom<=this.maxZoom)&&(t=!he(this.state,o)),this.state=o,t&&(this.clusters=this.cluster(e)),{clusters:this.clusters,changed:t}}cluster({map:e}){return this.superCluster.getClusters([-180,-90,180,90],Math.round(e.getZoom())).map((e=>this.transformCluster(e)))}transformCluster({geometry:{coordinates:[e,t]},properties:o}){if(o.cluster)return new _e({markers:this.superCluster.getLeaves(o.cluster_id,1/0).map((e=>e.properties.marker)),position:{lat:t,lng:e}});const n=o.marker;return new _e({markers:[n],position:Oe.getPosition(n)})}}class De{constructor(e,t){this.markers={sum:e.length};const o=t.map((e=>e.count)),n=o.reduce(((e,t)=>e+t),0);this.clusters={count:t.length,markers:{mean:n/t.length,sum:n,min:Math.min(...o),max:Math.max(...o)}}}}class Ae{render({count:e,position:t},o,n){const i=`<svg fill="${e>Math.max(10,o.clusters.markers.mean)?"#ff0000":"#0000ff"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50">\n<circle cx="120" cy="120" opacity=".6" r="70" />\n<circle cx="120" cy="120" opacity=".3" r="90" />\n<circle cx="120" cy="120" opacity=".2" r="110" />\n<text x="50%" y="50%" style="fill:#fff" text-anchor="middle" font-size="50" dominant-baseline="middle" font-family="roboto,arial,sans-serif">${e}</text>\n</svg>`,s=`Cluster of ${e} markers`,r=Number(google.maps.Marker.MAX_ZINDEX)+e;if(Oe.isAdvancedMarkerAvailable(n)){const e=(new DOMParser).parseFromString(i,"image/svg+xml").documentElement;e.setAttribute("transform","translate(0 25)");const o={map:n,position:t,zIndex:r,title:s,content:e};return new google.maps.marker.AdvancedMarkerElement(o)}const a={position:t,zIndex:r,title:s,icon:{url:`data:image/svg+xml;base64,${btoa(i)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(a)}}class Ue{constructor(){!function(e,t){for(let o in t.prototype)e.prototype[o]=t.prototype[o]}(Ue,google.maps.OverlayView)}}var We;!function(e){e.CLUSTERING_BEGIN="clusteringbegin",e.CLUSTERING_END="clusteringend",e.CLUSTER_CLICK="click"}(We||(We={}));const Ze=(e,t,o)=>{o.fitBounds(t.bounds)};class Fe extends Ue{constructor({map:e,markers:t=[],algorithmOptions:o={},algorithm:n=new Re(o),renderer:i=new Ae,onClusterClick:s=Ze}){super(),this.markers=[...t],this.clusters=[],this.algorithm=n,this.renderer=i,this.onClusterClick=s,e&&this.setMap(e)}addMarker(e,t){this.markers.includes(e)||(this.markers.push(e),t||this.render())}addMarkers(e,t){e.forEach((e=>{this.addMarker(e,!0)})),t||this.render()}removeMarker(e,t){const o=this.markers.indexOf(e);return-1!==o&&(Oe.setMap(e,null),this.markers.splice(o,1),t||this.render(),!0)}removeMarkers(e,t){let o=!1;return e.forEach((e=>{o=this.removeMarker(e,!0)||o})),o&&!t&&this.render(),o}clearMarkers(e){this.markers.length=0,e||this.render()}render(){const e=this.getMap();if(e instanceof google.maps.Map&&e.getProjection()){google.maps.event.trigger(this,We.CLUSTERING_BEGIN,this);const{clusters:t,changed:o}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(o||null==o){const e=new Set;for(const o of t)1==o.markers.length&&e.add(o.markers[0]);const o=[];for(const t of this.clusters)null!=t.marker&&(1==t.markers.length?e.has(t.marker)||Oe.setMap(t.marker,null):o.push(t.marker));this.clusters=t,this.renderClusters(),requestAnimationFrame((()=>o.forEach((e=>Oe.setMap(e,null)))))}google.maps.event.trigger(this,We.CLUSTERING_END,this)}}onAdd(){this.idleListener=this.getMap().addListener("idle",this.render.bind(this)),this.render()}onRemove(){google.maps.event.removeListener(this.idleListener),this.reset()}reset(){this.markers.forEach((e=>Oe.setMap(e,null))),this.clusters.forEach((e=>e.delete())),this.clusters=[]}renderClusters(){const e=new De(this.markers,this.clusters),t=this.getMap();this.clusters.forEach((o=>{1===o.markers.length?o.marker=o.markers[0]:(o.marker=this.renderer.render(o,e,t),o.markers.forEach((e=>Oe.setMap(e,null))),this.onClusterClick&&o.marker.addListener("click",(e=>{google.maps.event.trigger(this,We.CLUSTER_CLICK,o),this.onClusterClick(e,o,t)}))),Oe.setMap(o.marker,t)}))}}function je(t){var o=function(){C(!!e.useContext,"useGoogleMap is React hook and requires React version 16.8+");var t=e.useContext(b);return C(!!t,"useGoogleMap needs a GoogleMap available up in the tree"),t}(),n=e.useState(null),i=n[0],s=n[1];return e.useEffect((function(){if(o&&null===i){var e=new Fe(m(m({},t),{map:o}));s(e)}}),[o]),i}e.memo((function(e){var t=e.children,o=je(e.options);return null!==o?t(o):null}));var Ne={onCloseClick:"closeclick",onContentChanged:"content_changed",onDomReady:"domready",onPositionChanged:"position_changed",onZindexChanged:"zindex_changed"},Ve={options:function(e,t){e.setOptions(t)},position:function(e,t){e.setPosition(t)},zIndex:function(e,t){e.setZIndex(t)}};e.memo((function(o){var n=o.children,i=o.anchor,s=o.options,r=o.position,a=o.zIndex,l=o.onCloseClick,c=o.onDomReady,g=o.onContentChanged,p=o.onPositionChanged,u=o.onZindexChanged,d=o.onLoad,h=o.onUnmount,f=e.useContext(b),v=e.useState(null),y=v[0],L=v[1],I=e.useState(null),w=I[0],k=I[1],M=e.useState(null),P=M[0],z=M[1],x=e.useState(null),E=x[0],S=x[1],O=e.useState(null),_=O[0],T=O[1],B=e.useState(null),R=B[0],D=B[1],A=e.useRef(null);return e.useEffect((function(){null!==y&&(y.close(),i?y.open(f,i):y.getPosition()&&y.open(f))}),[f,y,i]),e.useEffect((function(){s&&null!==y&&y.setOptions(s)}),[y,s]),e.useEffect((function(){r&&null!==y&&y.setPosition(r)}),[r]),e.useEffect((function(){"number"==typeof a&&null!==y&&y.setZIndex(a)}),[a]),e.useEffect((function(){y&&l&&(null!==w&&google.maps.event.removeListener(w),k(google.maps.event.addListener(y,"closeclick",l)))}),[l]),e.useEffect((function(){y&&c&&(null!==P&&google.maps.event.removeListener(P),z(google.maps.event.addListener(y,"domready",c)))}),[c]),e.useEffect((function(){y&&g&&(null!==E&&google.maps.event.removeListener(E),S(google.maps.event.addListener(y,"content_changed",g)))}),[g]),e.useEffect((function(){y&&p&&(null!==_&&google.maps.event.removeListener(_),T(google.maps.event.addListener(y,"position_changed",p)))}),[p]),e.useEffect((function(){y&&u&&(null!==R&&google.maps.event.removeListener(R),D(google.maps.event.addListener(y,"zindex_changed",u)))}),[u]),e.useEffect((function(){var e=new google.maps.InfoWindow(m({},s||{}));return L(e),A.current=document.createElement("div"),l&&k(google.maps.event.addListener(e,"closeclick",l)),c&&z(google.maps.event.addListener(e,"domready",c)),g&&S(google.maps.event.addListener(e,"content_changed",g)),p&&T(google.maps.event.addListener(e,"position_changed",p)),u&&D(google.maps.event.addListener(e,"zindex_changed",u)),e.setContent(A.current),r&&e.setPosition(r),a&&e.setZIndex(a),i?e.open(f,i):e.getPosition()?e.open(f):C(!1,"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>."),d&&d(e),function(){w&&google.maps.event.removeListener(w),E&&google.maps.event.removeListener(E),P&&google.maps.event.removeListener(P),_&&google.maps.event.removeListener(_),R&&google.maps.event.removeListener(R),h&&h(e),e.close()}}),[]),A.current?t.createPortal(e.Children.only(n),A.current):null})),function(o){function n(){var e=null!==o&&o.apply(this,arguments)||this;return e.registeredEvents=[],e.containerElement=null,e.state={infoWindow:null},e.open=function(t,o){o?t.open(e.context,o):t.getPosition()?t.open(e.context):C(!1,"You must provide either an anchor (typically render it inside a <Marker>) or a position props for <InfoWindow>.")},e.setInfoWindowCallback=function(){null!==e.state.infoWindow&&null!==e.containerElement&&(e.state.infoWindow.setContent(e.containerElement),e.open(e.state.infoWindow,e.props.anchor),e.props.onLoad&&e.props.onLoad(e.state.infoWindow))},e}h(n,o),n.prototype.componentDidMount=function(){var e=new google.maps.InfoWindow(m({},this.props.options||{}));this.containerElement=document.createElement("div"),this.registeredEvents=z({updaterMap:Ve,eventMap:Ne,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{infoWindow:e}}),this.setInfoWindowCallback)},n.prototype.componentDidUpdate=function(e){null!==this.state.infoWindow&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:Ve,eventMap:Ne,prevProps:e,nextProps:this.props,instance:this.state.infoWindow}))},n.prototype.componentWillUnmount=function(){null!==this.state.infoWindow&&(P(this.registeredEvents),this.props.onUnmount&&this.props.onUnmount(this.state.infoWindow),this.state.infoWindow.close())},n.prototype.render=function(){return this.containerElement?t.createPortal(e.Children.only(this.props.children),this.containerElement):null},n.contextType=b}(e.PureComponent);var He={onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},$e={draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},path:function(e,t){e.setPath(t)},visible:function(e,t){e.setVisible(t)}},Ge={};e.memo((function(t){var o=t.options,n=t.draggable,i=t.editable,s=t.visible,r=t.path,a=t.onDblClick,l=t.onDragEnd,c=t.onDragStart,g=t.onMouseDown,p=t.onMouseMove,u=t.onMouseOut,d=t.onMouseOver,h=t.onMouseUp,f=t.onRightClick,v=t.onClick,y=t.onDrag,L=t.onLoad,I=t.onUnmount,C=e.useContext(b),w=e.useState(null),k=w[0],M=w[1],P=e.useState(null),z=P[0],x=P[1],E=e.useState(null),S=E[0],O=E[1],_=e.useState(null),T=_[0],B=_[1],R=e.useState(null),D=R[0],A=R[1],U=e.useState(null),W=U[0],Z=U[1],F=e.useState(null),j=F[0],N=F[1],V=e.useState(null),H=V[0],$=V[1],G=e.useState(null),Y=G[0],J=G[1],K=e.useState(null),q=K[0],X=K[1],Q=e.useState(null),ee=Q[0],te=Q[1],oe=e.useState(null),ne=oe[0],ie=oe[1];return e.useEffect((function(){null!==k&&k.setMap(C)}),[C]),e.useEffect((function(){void 0!==o&&null!==k&&k.setOptions(o)}),[k,o]),e.useEffect((function(){void 0!==n&&null!==k&&k.setDraggable(n)}),[k,n]),e.useEffect((function(){void 0!==i&&null!==k&&k.setEditable(i)}),[k,i]),e.useEffect((function(){void 0!==s&&null!==k&&k.setVisible(s)}),[k,s]),e.useEffect((function(){void 0!==r&&null!==k&&k.setPath(r)}),[k,r]),e.useEffect((function(){k&&a&&(null!==z&&google.maps.event.removeListener(z),x(google.maps.event.addListener(k,"dblclick",a)))}),[a]),e.useEffect((function(){k&&l&&(null!==S&&google.maps.event.removeListener(S),O(google.maps.event.addListener(k,"dragend",l)))}),[l]),e.useEffect((function(){k&&c&&(null!==T&&google.maps.event.removeListener(T),B(google.maps.event.addListener(k,"dragstart",c)))}),[c]),e.useEffect((function(){k&&g&&(null!==D&&google.maps.event.removeListener(D),A(google.maps.event.addListener(k,"mousedown",g)))}),[g]),e.useEffect((function(){k&&p&&(null!==W&&google.maps.event.removeListener(W),Z(google.maps.event.addListener(k,"mousemove",p)))}),[p]),e.useEffect((function(){k&&u&&(null!==j&&google.maps.event.removeListener(j),N(google.maps.event.addListener(k,"mouseout",u)))}),[u]),e.useEffect((function(){k&&d&&(null!==H&&google.maps.event.removeListener(H),$(google.maps.event.addListener(k,"mouseover",d)))}),[d]),e.useEffect((function(){k&&h&&(null!==Y&&google.maps.event.removeListener(Y),J(google.maps.event.addListener(k,"mouseup",h)))}),[h]),e.useEffect((function(){k&&f&&(null!==q&&google.maps.event.removeListener(q),X(google.maps.event.addListener(k,"rightclick",f)))}),[f]),e.useEffect((function(){k&&v&&(null!==ee&&google.maps.event.removeListener(ee),te(google.maps.event.addListener(k,"click",v)))}),[v]),e.useEffect((function(){k&&y&&(null!==ne&&google.maps.event.removeListener(ne),ie(google.maps.event.addListener(k,"drag",y)))}),[y]),e.useEffect((function(){var e=new google.maps.Polyline(m(m({},o||Ge),{map:C}));return r&&e.setPath(r),void 0!==s&&e.setVisible(s),void 0!==i&&e.setEditable(i),void 0!==n&&e.setDraggable(n),a&&x(google.maps.event.addListener(e,"dblclick",a)),l&&O(google.maps.event.addListener(e,"dragend",l)),c&&B(google.maps.event.addListener(e,"dragstart",c)),g&&A(google.maps.event.addListener(e,"mousedown",g)),p&&Z(google.maps.event.addListener(e,"mousemove",p)),u&&N(google.maps.event.addListener(e,"mouseout",u)),d&&$(google.maps.event.addListener(e,"mouseover",d)),h&&J(google.maps.event.addListener(e,"mouseup",h)),f&&X(google.maps.event.addListener(e,"rightclick",f)),v&&te(google.maps.event.addListener(e,"click",v)),y&&ie(google.maps.event.addListener(e,"drag",y)),M(e),L&&L(e),function(){null!==z&&google.maps.event.removeListener(z),null!==S&&google.maps.event.removeListener(S),null!==T&&google.maps.event.removeListener(T),null!==D&&google.maps.event.removeListener(D),null!==W&&google.maps.event.removeListener(W),null!==j&&google.maps.event.removeListener(j),null!==H&&google.maps.event.removeListener(H),null!==Y&&google.maps.event.removeListener(Y),null!==q&&google.maps.event.removeListener(q),null!==ee&&google.maps.event.removeListener(ee),I&&I(e),e.setMap(null)}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={polyline:null},t.setPolylineCallback=function(){null!==t.state.polyline&&t.props.onLoad&&t.props.onLoad(t.state.polyline)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.Polyline(m(m({},this.props.options||{}),{map:this.context}));this.registeredEvents=z({updaterMap:$e,eventMap:He,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{polyline:e}}),this.setPolylineCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.polyline&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:$e,eventMap:He,prevProps:e,nextProps:this.props,instance:this.state.polyline}))},t.prototype.componentWillUnmount=function(){null!==this.state.polyline&&(this.props.onUnmount&&this.props.onUnmount(this.state.polyline),P(this.registeredEvents),this.state.polyline.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var Ye={onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},Je={draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},path:function(e,t){e.setPath(t)},paths:function(e,t){e.setPaths(t)},visible:function(e,t){e.setVisible(t)}};e.memo((function(t){var o=t.options,n=t.draggable,i=t.editable,s=t.visible,r=t.path,a=t.paths,l=t.onDblClick,c=t.onDragEnd,g=t.onDragStart,p=t.onMouseDown,u=t.onMouseMove,d=t.onMouseOut,h=t.onMouseOver,f=t.onMouseUp,v=t.onRightClick,y=t.onClick,L=t.onDrag,I=t.onLoad,C=t.onUnmount,w=t.onEdit,k=e.useContext(b),M=e.useState(null),P=M[0],z=M[1],x=e.useState(null),E=x[0],S=x[1],O=e.useState(null),_=O[0],T=O[1],B=e.useState(null),R=B[0],D=B[1],A=e.useState(null),U=A[0],W=A[1],Z=e.useState(null),F=Z[0],j=Z[1],N=e.useState(null),V=N[0],H=N[1],$=e.useState(null),G=$[0],Y=$[1],J=e.useState(null),K=J[0],q=J[1],X=e.useState(null),Q=X[0],ee=X[1],te=e.useState(null),oe=te[0],ne=te[1],ie=e.useState(null),se=ie[0],re=ie[1];return e.useEffect((function(){null!==P&&P.setMap(k)}),[k]),e.useEffect((function(){void 0!==o&&null!==P&&P.setOptions(o)}),[P,o]),e.useEffect((function(){void 0!==n&&null!==P&&P.setDraggable(n)}),[P,n]),e.useEffect((function(){void 0!==i&&null!==P&&P.setEditable(i)}),[P,i]),e.useEffect((function(){void 0!==s&&null!==P&&P.setVisible(s)}),[P,s]),e.useEffect((function(){void 0!==r&&null!==P&&P.setPath(r)}),[P,r]),e.useEffect((function(){void 0!==a&&null!==P&&P.setPaths(a)}),[P,a]),e.useEffect((function(){P&&l&&(null!==E&&google.maps.event.removeListener(E),S(google.maps.event.addListener(P,"dblclick",l)))}),[l]),e.useEffect((function(){P&&(google.maps.event.addListener(P.getPath(),"insert_at",(function(){null==w||w(P)})),google.maps.event.addListener(P.getPath(),"set_at",(function(){null==w||w(P)})))}),[P,w]),e.useEffect((function(){P&&c&&(null!==_&&google.maps.event.removeListener(_),T(google.maps.event.addListener(P,"dragend",c)))}),[c]),e.useEffect((function(){P&&g&&(null!==R&&google.maps.event.removeListener(R),D(google.maps.event.addListener(P,"dragstart",g)))}),[g]),e.useEffect((function(){P&&p&&(null!==U&&google.maps.event.removeListener(U),W(google.maps.event.addListener(P,"mousedown",p)))}),[p]),e.useEffect((function(){P&&u&&(null!==F&&google.maps.event.removeListener(F),j(google.maps.event.addListener(P,"mousemove",u)))}),[u]),e.useEffect((function(){P&&d&&(null!==V&&google.maps.event.removeListener(V),H(google.maps.event.addListener(P,"mouseout",d)))}),[d]),e.useEffect((function(){P&&h&&(null!==G&&google.maps.event.removeListener(G),Y(google.maps.event.addListener(P,"mouseover",h)))}),[h]),e.useEffect((function(){P&&f&&(null!==K&&google.maps.event.removeListener(K),q(google.maps.event.addListener(P,"mouseup",f)))}),[f]),e.useEffect((function(){P&&v&&(null!==Q&&google.maps.event.removeListener(Q),ee(google.maps.event.addListener(P,"rightclick",v)))}),[v]),e.useEffect((function(){P&&y&&(null!==oe&&google.maps.event.removeListener(oe),ne(google.maps.event.addListener(P,"click",y)))}),[y]),e.useEffect((function(){P&&L&&(null!==se&&google.maps.event.removeListener(se),re(google.maps.event.addListener(P,"drag",L)))}),[L]),e.useEffect((function(){var e=new google.maps.Polygon(m(m({},o||{}),{map:k}));return r&&e.setPath(r),a&&e.setPaths(a),void 0!==s&&e.setVisible(s),void 0!==i&&e.setEditable(i),void 0!==n&&e.setDraggable(n),l&&S(google.maps.event.addListener(e,"dblclick",l)),c&&T(google.maps.event.addListener(e,"dragend",c)),g&&D(google.maps.event.addListener(e,"dragstart",g)),p&&W(google.maps.event.addListener(e,"mousedown",p)),u&&j(google.maps.event.addListener(e,"mousemove",u)),d&&H(google.maps.event.addListener(e,"mouseout",d)),h&&Y(google.maps.event.addListener(e,"mouseover",h)),f&&q(google.maps.event.addListener(e,"mouseup",f)),v&&ee(google.maps.event.addListener(e,"rightclick",v)),y&&ne(google.maps.event.addListener(e,"click",y)),L&&re(google.maps.event.addListener(e,"drag",L)),z(e),I&&I(e),function(){null!==E&&google.maps.event.removeListener(E),null!==_&&google.maps.event.removeListener(_),null!==R&&google.maps.event.removeListener(R),null!==U&&google.maps.event.removeListener(U),null!==F&&google.maps.event.removeListener(F),null!==V&&google.maps.event.removeListener(V),null!==G&&google.maps.event.removeListener(G),null!==K&&google.maps.event.removeListener(K),null!==Q&&google.maps.event.removeListener(Q),null!==oe&&google.maps.event.removeListener(oe),C&&C(e),e.setMap(null)}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={polygon:null},t.setPolygonCallback=function(){null!==t.state.polygon&&t.props.onLoad&&t.props.onLoad(t.state.polygon)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.Polygon(m(m({},this.props.options||{}),{map:this.context}));this.registeredEvents=z({updaterMap:Je,eventMap:Ye,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{polygon:e}}),this.setPolygonCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.polygon&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:Je,eventMap:Ye,prevProps:e,nextProps:this.props,instance:this.state.polygon}))},t.prototype.componentWillUnmount=function(){null!==this.state.polygon&&(this.props.onUnmount&&this.props.onUnmount(this.state.polygon),P(this.registeredEvents),this.state.polygon&&this.state.polygon.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var Ke={onBoundsChanged:"bounds_changed",onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},qe={bounds:function(e,t){e.setBounds(t)},draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},visible:function(e,t){e.setVisible(t)}};e.memo((function(t){var o=t.options,n=t.bounds,i=t.draggable,s=t.editable,r=t.visible,a=t.onDblClick,l=t.onDragEnd,c=t.onDragStart,g=t.onMouseDown,p=t.onMouseMove,u=t.onMouseOut,d=t.onMouseOver,h=t.onMouseUp,f=t.onRightClick,v=t.onClick,y=t.onDrag,L=t.onBoundsChanged,I=t.onLoad,C=t.onUnmount,w=e.useContext(b),k=e.useState(null),M=k[0],P=k[1],z=e.useState(null),x=z[0],E=z[1],S=e.useState(null),O=S[0],_=S[1],T=e.useState(null),B=T[0],R=T[1],D=e.useState(null),A=D[0],U=D[1],W=e.useState(null),Z=W[0],F=W[1],j=e.useState(null),N=j[0],V=j[1],H=e.useState(null),$=H[0],G=H[1],Y=e.useState(null),J=Y[0],K=Y[1],q=e.useState(null),X=q[0],Q=q[1],ee=e.useState(null),te=ee[0],oe=ee[1],ne=e.useState(null),ie=ne[0],se=ne[1],re=e.useState(null),ae=re[0],le=re[1];return e.useEffect((function(){null!==M&&M.setMap(w)}),[w]),e.useEffect((function(){void 0!==o&&null!==M&&M.setOptions(o)}),[M,o]),e.useEffect((function(){void 0!==i&&null!==M&&M.setDraggable(i)}),[M,i]),e.useEffect((function(){void 0!==s&&null!==M&&M.setEditable(s)}),[M,s]),e.useEffect((function(){void 0!==r&&null!==M&&M.setVisible(r)}),[M,r]),e.useEffect((function(){void 0!==n&&null!==M&&M.setBounds(n)}),[M,n]),e.useEffect((function(){M&&a&&(null!==x&&google.maps.event.removeListener(x),E(google.maps.event.addListener(M,"dblclick",a)))}),[a]),e.useEffect((function(){M&&l&&(null!==O&&google.maps.event.removeListener(O),_(google.maps.event.addListener(M,"dragend",l)))}),[l]),e.useEffect((function(){M&&c&&(null!==B&&google.maps.event.removeListener(B),R(google.maps.event.addListener(M,"dragstart",c)))}),[c]),e.useEffect((function(){M&&g&&(null!==A&&google.maps.event.removeListener(A),U(google.maps.event.addListener(M,"mousedown",g)))}),[g]),e.useEffect((function(){M&&p&&(null!==Z&&google.maps.event.removeListener(Z),F(google.maps.event.addListener(M,"mousemove",p)))}),[p]),e.useEffect((function(){M&&u&&(null!==N&&google.maps.event.removeListener(N),V(google.maps.event.addListener(M,"mouseout",u)))}),[u]),e.useEffect((function(){M&&d&&(null!==$&&google.maps.event.removeListener($),G(google.maps.event.addListener(M,"mouseover",d)))}),[d]),e.useEffect((function(){M&&h&&(null!==J&&google.maps.event.removeListener(J),K(google.maps.event.addListener(M,"mouseup",h)))}),[h]),e.useEffect((function(){M&&f&&(null!==X&&google.maps.event.removeListener(X),Q(google.maps.event.addListener(M,"rightclick",f)))}),[f]),e.useEffect((function(){M&&v&&(null!==te&&google.maps.event.removeListener(te),oe(google.maps.event.addListener(M,"click",v)))}),[v]),e.useEffect((function(){M&&y&&(null!==ie&&google.maps.event.removeListener(ie),se(google.maps.event.addListener(M,"drag",y)))}),[y]),e.useEffect((function(){M&&L&&(null!==ae&&google.maps.event.removeListener(ae),le(google.maps.event.addListener(M,"bounds_changed",L)))}),[L]),e.useEffect((function(){var e=new google.maps.Rectangle(m(m({},o||{}),{map:w}));return void 0!==r&&e.setVisible(r),void 0!==s&&e.setEditable(s),void 0!==i&&e.setDraggable(i),void 0!==n&&e.setBounds(n),a&&E(google.maps.event.addListener(e,"dblclick",a)),l&&_(google.maps.event.addListener(e,"dragend",l)),c&&R(google.maps.event.addListener(e,"dragstart",c)),g&&U(google.maps.event.addListener(e,"mousedown",g)),p&&F(google.maps.event.addListener(e,"mousemove",p)),u&&V(google.maps.event.addListener(e,"mouseout",u)),d&&G(google.maps.event.addListener(e,"mouseover",d)),h&&K(google.maps.event.addListener(e,"mouseup",h)),f&&Q(google.maps.event.addListener(e,"rightclick",f)),v&&oe(google.maps.event.addListener(e,"click",v)),y&&se(google.maps.event.addListener(e,"drag",y)),L&&le(google.maps.event.addListener(e,"bounds_changed",L)),P(e),I&&I(e),function(){null!==x&&google.maps.event.removeListener(x),null!==O&&google.maps.event.removeListener(O),null!==B&&google.maps.event.removeListener(B),null!==A&&google.maps.event.removeListener(A),null!==Z&&google.maps.event.removeListener(Z),null!==N&&google.maps.event.removeListener(N),null!==$&&google.maps.event.removeListener($),null!==J&&google.maps.event.removeListener(J),null!==X&&google.maps.event.removeListener(X),null!==te&&google.maps.event.removeListener(te),null!==ie&&google.maps.event.removeListener(ie),null!==ae&&google.maps.event.removeListener(ae),C&&C(e),e.setMap(null)}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={rectangle:null},t.setRectangleCallback=function(){null!==t.state.rectangle&&t.props.onLoad&&t.props.onLoad(t.state.rectangle)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.Rectangle(m(m({},this.props.options||{}),{map:this.context}));this.registeredEvents=z({updaterMap:qe,eventMap:Ke,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{rectangle:e}}),this.setRectangleCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.rectangle&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:qe,eventMap:Ke,prevProps:e,nextProps:this.props,instance:this.state.rectangle}))},t.prototype.componentWillUnmount=function(){null!==this.state.rectangle&&(this.props.onUnmount&&this.props.onUnmount(this.state.rectangle),P(this.registeredEvents),this.state.rectangle.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var Xe={onCenterChanged:"center_changed",onRadiusChanged:"radius_changed",onClick:"click",onDblClick:"dblclick",onDrag:"drag",onDragEnd:"dragend",onDragStart:"dragstart",onMouseDown:"mousedown",onMouseMove:"mousemove",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick"},Qe={center:function(e,t){e.setCenter(t)},draggable:function(e,t){e.setDraggable(t)},editable:function(e,t){e.setEditable(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},radius:function(e,t){e.setRadius(t)},visible:function(e,t){e.setVisible(t)}},et={};e.memo((function(t){var o=t.options,n=t.center,i=t.radius,s=t.draggable,r=t.editable,a=t.visible,l=t.onDblClick,c=t.onDragEnd,g=t.onDragStart,p=t.onMouseDown,u=t.onMouseMove,d=t.onMouseOut,h=t.onMouseOver,f=t.onMouseUp,v=t.onRightClick,y=t.onClick,L=t.onDrag,I=t.onCenterChanged,C=t.onRadiusChanged,w=t.onLoad,k=t.onUnmount,M=e.useContext(b),P=e.useState(null),z=P[0],x=P[1],E=e.useState(null),S=E[0],O=E[1],_=e.useState(null),T=_[0],B=_[1],R=e.useState(null),D=R[0],A=R[1],U=e.useState(null),W=U[0],Z=U[1],F=e.useState(null),j=F[0],N=F[1],V=e.useState(null),H=V[0],$=V[1],G=e.useState(null),Y=G[0],J=G[1],K=e.useState(null),q=K[0],X=K[1],Q=e.useState(null),ee=Q[0],te=Q[1],oe=e.useState(null),ne=oe[0],ie=oe[1],se=e.useState(null),re=se[0],ae=se[1],le=e.useState(null),ce=le[0],ge=le[1],pe=e.useState(null),ue=pe[0],de=pe[1];return e.useEffect((function(){null!==z&&z.setMap(M)}),[M]),e.useEffect((function(){void 0!==o&&null!==z&&z.setOptions(o)}),[z,o]),e.useEffect((function(){void 0!==s&&null!==z&&z.setDraggable(s)}),[z,s]),e.useEffect((function(){void 0!==r&&null!==z&&z.setEditable(r)}),[z,r]),e.useEffect((function(){void 0!==a&&null!==z&&z.setVisible(a)}),[z,a]),e.useEffect((function(){"number"==typeof i&&null!==z&&z.setRadius(i)}),[z,i]),e.useEffect((function(){void 0!==n&&null!==z&&z.setCenter(n)}),[z,n]),e.useEffect((function(){z&&l&&(null!==S&&google.maps.event.removeListener(S),O(google.maps.event.addListener(z,"dblclick",l)))}),[l]),e.useEffect((function(){z&&c&&(null!==T&&google.maps.event.removeListener(T),B(google.maps.event.addListener(z,"dragend",c)))}),[c]),e.useEffect((function(){z&&g&&(null!==D&&google.maps.event.removeListener(D),A(google.maps.event.addListener(z,"dragstart",g)))}),[g]),e.useEffect((function(){z&&p&&(null!==W&&google.maps.event.removeListener(W),Z(google.maps.event.addListener(z,"mousedown",p)))}),[p]),e.useEffect((function(){z&&u&&(null!==j&&google.maps.event.removeListener(j),N(google.maps.event.addListener(z,"mousemove",u)))}),[u]),e.useEffect((function(){z&&d&&(null!==H&&google.maps.event.removeListener(H),$(google.maps.event.addListener(z,"mouseout",d)))}),[d]),e.useEffect((function(){z&&h&&(null!==Y&&google.maps.event.removeListener(Y),J(google.maps.event.addListener(z,"mouseover",h)))}),[h]),e.useEffect((function(){z&&f&&(null!==q&&google.maps.event.removeListener(q),X(google.maps.event.addListener(z,"mouseup",f)))}),[f]),e.useEffect((function(){z&&v&&(null!==ee&&google.maps.event.removeListener(ee),te(google.maps.event.addListener(z,"rightclick",v)))}),[v]),e.useEffect((function(){z&&y&&(null!==ne&&google.maps.event.removeListener(ne),ie(google.maps.event.addListener(z,"click",y)))}),[y]),e.useEffect((function(){z&&L&&(null!==re&&google.maps.event.removeListener(re),ae(google.maps.event.addListener(z,"drag",L)))}),[L]),e.useEffect((function(){z&&I&&(null!==ce&&google.maps.event.removeListener(ce),ge(google.maps.event.addListener(z,"center_changed",I)))}),[y]),e.useEffect((function(){z&&C&&(null!==ue&&google.maps.event.removeListener(ue),de(google.maps.event.addListener(z,"radius_changed",C)))}),[C]),e.useEffect((function(){var e=new google.maps.Circle(m(m({},o||et),{map:M}));return"number"==typeof i&&e.setRadius(i),void 0!==n&&e.setCenter(n),"number"==typeof i&&e.setRadius(i),void 0!==a&&e.setVisible(a),void 0!==r&&e.setEditable(r),void 0!==s&&e.setDraggable(s),l&&O(google.maps.event.addListener(e,"dblclick",l)),c&&B(google.maps.event.addListener(e,"dragend",c)),g&&A(google.maps.event.addListener(e,"dragstart",g)),p&&Z(google.maps.event.addListener(e,"mousedown",p)),u&&N(google.maps.event.addListener(e,"mousemove",u)),d&&$(google.maps.event.addListener(e,"mouseout",d)),h&&J(google.maps.event.addListener(e,"mouseover",h)),f&&X(google.maps.event.addListener(e,"mouseup",f)),v&&te(google.maps.event.addListener(e,"rightclick",v)),y&&ie(google.maps.event.addListener(e,"click",y)),L&&ae(google.maps.event.addListener(e,"drag",L)),I&&ge(google.maps.event.addListener(e,"center_changed",I)),C&&de(google.maps.event.addListener(e,"radius_changed",C)),x(e),w&&w(e),function(){null!==S&&google.maps.event.removeListener(S),null!==T&&google.maps.event.removeListener(T),null!==D&&google.maps.event.removeListener(D),null!==W&&google.maps.event.removeListener(W),null!==j&&google.maps.event.removeListener(j),null!==H&&google.maps.event.removeListener(H),null!==Y&&google.maps.event.removeListener(Y),null!==q&&google.maps.event.removeListener(q),null!==ee&&google.maps.event.removeListener(ee),null!==ne&&google.maps.event.removeListener(ne),null!==ce&&google.maps.event.removeListener(ce),null!==ue&&google.maps.event.removeListener(ue),k&&k(e),e.setMap(null)}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={circle:null},t.setCircleCallback=function(){null!==t.state.circle&&t.props.onLoad&&t.props.onLoad(t.state.circle)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.Circle(m(m({},this.props.options||{}),{map:this.context}));this.registeredEvents=z({updaterMap:Qe,eventMap:Xe,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{circle:e}}),this.setCircleCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.circle&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:Qe,eventMap:Xe,prevProps:e,nextProps:this.props,instance:this.state.circle}))},t.prototype.componentWillUnmount=function(){var e;null!==this.state.circle&&(this.props.onUnmount&&this.props.onUnmount(this.state.circle),P(this.registeredEvents),null===(e=this.state.circle)||void 0===e||e.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var tt={onClick:"click",onDblClick:"dblclick",onMouseDown:"mousedown",onMouseOut:"mouseout",onMouseOver:"mouseover",onMouseUp:"mouseup",onRightClick:"rightclick",onAddFeature:"addfeature",onRemoveFeature:"removefeature",onRemoveProperty:"removeproperty",onSetGeometry:"setgeometry",onSetProperty:"setproperty"},ot={add:function(e,t){e.add(t)},addgeojson:function(e,t,o){e.addGeoJson(t,o)},contains:function(e,t){e.contains(t)},foreach:function(e,t){e.forEach(t)},loadgeojson:function(e,t,o,n){e.loadGeoJson(t,o,n)},overridestyle:function(e,t,o){e.overrideStyle(t,o)},remove:function(e,t){e.remove(t)},revertstyle:function(e,t){e.revertStyle(t)},controlposition:function(e,t){e.setControlPosition(t)},controls:function(e,t){e.setControls(t)},drawingmode:function(e,t){e.setDrawingMode(t)},map:function(e,t){e.setMap(t)},style:function(e,t){e.setStyle(t)},togeojson:function(e,t){e.toGeoJson(t)}};e.memo((function(t){var o=t.options,n=t.onClick,i=t.onDblClick,s=t.onMouseDown,r=t.onMouseMove,a=t.onMouseOut,l=t.onMouseOver,c=t.onMouseUp,g=t.onRightClick,p=t.onAddFeature,u=t.onRemoveFeature,d=t.onRemoveProperty,h=t.onSetGeometry,f=t.onSetProperty,v=t.onLoad,y=t.onUnmount,L=e.useContext(b),I=e.useState(null),C=I[0],w=I[1],k=e.useState(null),M=k[0],P=k[1],z=e.useState(null),x=z[0],E=z[1],S=e.useState(null),O=S[0],_=S[1],T=e.useState(null),B=T[0],R=T[1],D=e.useState(null),A=D[0],U=D[1],W=e.useState(null),Z=W[0],F=W[1],j=e.useState(null),N=j[0],V=j[1],H=e.useState(null),$=H[0],G=H[1],Y=e.useState(null),J=Y[0],K=Y[1],q=e.useState(null),X=q[0],Q=q[1],ee=e.useState(null),te=ee[0],oe=ee[1],ne=e.useState(null),ie=ne[0],se=ne[1],re=e.useState(null),ae=re[0],le=re[1];return e.useEffect((function(){null!==C&&C.setMap(L)}),[L]),e.useEffect((function(){C&&i&&(null!==M&&google.maps.event.removeListener(M),P(google.maps.event.addListener(C,"dblclick",i)))}),[i]),e.useEffect((function(){C&&s&&(null!==x&&google.maps.event.removeListener(x),E(google.maps.event.addListener(C,"mousedown",s)))}),[s]),e.useEffect((function(){C&&r&&(null!==O&&google.maps.event.removeListener(O),_(google.maps.event.addListener(C,"mousemove",r)))}),[r]),e.useEffect((function(){C&&a&&(null!==B&&google.maps.event.removeListener(B),R(google.maps.event.addListener(C,"mouseout",a)))}),[a]),e.useEffect((function(){C&&l&&(null!==A&&google.maps.event.removeListener(A),U(google.maps.event.addListener(C,"mouseover",l)))}),[l]),e.useEffect((function(){C&&c&&(null!==Z&&google.maps.event.removeListener(Z),F(google.maps.event.addListener(C,"mouseup",c)))}),[c]),e.useEffect((function(){C&&g&&(null!==N&&google.maps.event.removeListener(N),V(google.maps.event.addListener(C,"rightclick",g)))}),[g]),e.useEffect((function(){C&&n&&(null!==$&&google.maps.event.removeListener($),G(google.maps.event.addListener(C,"click",n)))}),[n]),e.useEffect((function(){C&&p&&(null!==J&&google.maps.event.removeListener(J),K(google.maps.event.addListener(C,"addfeature",p)))}),[p]),e.useEffect((function(){C&&u&&(null!==X&&google.maps.event.removeListener(X),Q(google.maps.event.addListener(C,"removefeature",u)))}),[u]),e.useEffect((function(){C&&d&&(null!==te&&google.maps.event.removeListener(te),oe(google.maps.event.addListener(C,"removeproperty",d)))}),[d]),e.useEffect((function(){C&&h&&(null!==ie&&google.maps.event.removeListener(ie),se(google.maps.event.addListener(C,"setgeometry",h)))}),[h]),e.useEffect((function(){C&&f&&(null!==ae&&google.maps.event.removeListener(ae),le(google.maps.event.addListener(C,"setproperty",f)))}),[f]),e.useEffect((function(){if(null!==L){var e=new google.maps.Data(m(m({},o||{}),{map:L}));i&&P(google.maps.event.addListener(e,"dblclick",i)),s&&E(google.maps.event.addListener(e,"mousedown",s)),r&&_(google.maps.event.addListener(e,"mousemove",r)),a&&R(google.maps.event.addListener(e,"mouseout",a)),l&&U(google.maps.event.addListener(e,"mouseover",l)),c&&F(google.maps.event.addListener(e,"mouseup",c)),g&&V(google.maps.event.addListener(e,"rightclick",g)),n&&G(google.maps.event.addListener(e,"click",n)),p&&K(google.maps.event.addListener(e,"addfeature",p)),u&&Q(google.maps.event.addListener(e,"removefeature",u)),d&&oe(google.maps.event.addListener(e,"removeproperty",d)),h&&se(google.maps.event.addListener(e,"setgeometry",h)),f&&le(google.maps.event.addListener(e,"setproperty",f)),w(e),v&&v(e)}return function(){C&&(null!==M&&google.maps.event.removeListener(M),null!==x&&google.maps.event.removeListener(x),null!==O&&google.maps.event.removeListener(O),null!==B&&google.maps.event.removeListener(B),null!==A&&google.maps.event.removeListener(A),null!==Z&&google.maps.event.removeListener(Z),null!==N&&google.maps.event.removeListener(N),null!==$&&google.maps.event.removeListener($),null!==J&&google.maps.event.removeListener(J),null!==X&&google.maps.event.removeListener(X),null!==te&&google.maps.event.removeListener(te),null!==ie&&google.maps.event.removeListener(ie),null!==ae&&google.maps.event.removeListener(ae),y&&y(C),C.setMap(null))}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={data:null},t.setDataCallback=function(){null!==t.state.data&&t.props.onLoad&&t.props.onLoad(t.state.data)},t}h(t,e),t.prototype.componentDidMount=function(){if(null!==this.context){var e=new google.maps.Data(m(m({},this.props.options||{}),{map:this.context}));this.registeredEvents=z({updaterMap:ot,eventMap:tt,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{data:e}}),this.setDataCallback)}},t.prototype.componentDidUpdate=function(e){null!==this.state.data&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:ot,eventMap:tt,prevProps:e,nextProps:this.props,instance:this.state.data}))},t.prototype.componentWillUnmount=function(){null!==this.state.data&&(this.props.onUnmount&&this.props.onUnmount(this.state.data),P(this.registeredEvents),this.state.data&&this.state.data.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var nt={onClick:"click",onDefaultViewportChanged:"defaultviewport_changed",onStatusChanged:"status_changed"},it={options:function(e,t){e.setOptions(t)},url:function(e,t){e.setUrl(t)},zIndex:function(e,t){e.setZIndex(t)}};function st(e,t){return"function"==typeof t?t(e.offsetWidth,e.offsetHeight):{x:0,y:0}}function rt(e,t){return new t(e.lat,e.lng)}function at(e,t){return new t(new google.maps.LatLng(e.ne.lat,e.ne.lng),new google.maps.LatLng(e.sw.lat,e.sw.lng))}function lt(e,t,o,n){return void 0!==o?function(e,t,o){var n=e&&e.fromLatLngToDivPixel(o.getNorthEast()),i=e&&e.fromLatLngToDivPixel(o.getSouthWest());return n&&i?{left:"".concat(i.x+t.x,"px"),top:"".concat(n.y+t.y,"px"),width:"".concat(n.x-i.x-t.x,"px"),height:"".concat(i.y-n.y-t.y,"px")}:{left:"-9999px",top:"-9999px"}}(e,t,(i=o,s=google.maps.LatLngBounds,r=at,i instanceof s?i:r(i,s))):function(e,t,o){var n=e&&e.fromLatLngToDivPixel(o);if(n){var i=n.x,s=n.y;return{left:"".concat(i+t.x,"px"),top:"".concat(s+t.y,"px")}}return{left:"-9999px",top:"-9999px"}}(e,t,function(e,t,o){return e instanceof t?e:o(e,t)}(n,google.maps.LatLng,rt));var i,s,r}function ct(e){return e?(e instanceof google.maps.LatLng?e:new google.maps.LatLng(e.lat,e.lng))+"":""}function gt(e){return e?(e instanceof google.maps.LatLngBounds?e:new google.maps.LatLngBounds(new google.maps.LatLng(e.south,e.east),new google.maps.LatLng(e.north,e.west)))+"":""}function pt(){}!function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={kmlLayer:null},t.setKmlLayerCallback=function(){null!==t.state.kmlLayer&&t.props.onLoad&&t.props.onLoad(t.state.kmlLayer)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.KmlLayer(m(m({},this.props.options),{map:this.context}));this.registeredEvents=z({updaterMap:it,eventMap:nt,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{kmlLayer:e}}),this.setKmlLayerCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.kmlLayer&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:it,eventMap:nt,prevProps:e,nextProps:this.props,instance:this.state.kmlLayer}))},t.prototype.componentWillUnmount=function(){null!==this.state.kmlLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.kmlLayer),P(this.registeredEvents),this.state.kmlLayer.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent),e.memo((function(t){var o=t.position,i=t.bounds,s=t.mapPaneName,r=t.zIndex,a=t.onLoad,l=t.onUnmount,c=t.getPixelPositionOffset,g=t.children,p=e.useContext(b),u=e.useMemo((function(){var e=document.createElement("div");return e.style.position="absolute",e}),[]),d=e.useMemo((function(){return function(e,t,o,n,i){var s=function(e){function t(t,o,n,i){var s=e.call(this)||this;return s.container=t,s.pane=o,s.position=n,s.bounds=i,s}return h(t,e),t.prototype.onAdd=function(){var e,t=null===(e=this.getPanes())||void 0===e?void 0:e[this.pane];null==t||t.appendChild(this.container)},t.prototype.draw=function(){for(var e=lt(this.getProjection(),m({},this.container?st(this.container,i):{x:0,y:0}),this.bounds,this.position),t=0,o=Object.entries(e);t<o.length;t++){var n=o[t],s=n[0],r=n[1];this.container.style[s]=r}},t.prototype.onRemove=function(){null!==this.container.parentNode&&this.container.parentNode.removeChild(this.container)},t}(google.maps.OverlayView);return new s(e,t,o,n)}(u,s,o,i,c)}),[u,s,o,i]);return e.useEffect((function(){return null==a||a(d),null==d||d.setMap(p),function(){null==l||l(d),null==d||d.setMap(null)}}),[p,d]),e.useEffect((function(){u.style.zIndex="".concat(r)}),[r,u]),n.createPortal(g,u)})),function(t){function o(o){var n=t.call(this,o)||this;n.state={paneEl:null,containerStyle:{position:"absolute"}},n.updatePane=function(){var e=n.props.mapPaneName,t=n.overlayView.getPanes();C(!!e,"OverlayView requires props.mapPaneName but got %s",e),t?n.setState({paneEl:t[e]}):n.setState({paneEl:null})},n.onAdd=function(){var e,t;n.updatePane(),null===(t=(e=n.props).onLoad)||void 0===t||t.call(e,n.overlayView)},n.onPositionElement=function(){var e=lt(n.overlayView.getProjection(),m({x:0,y:0},n.containerRef.current?st(n.containerRef.current,n.props.getPixelPositionOffset):{}),n.props.bounds,n.props.position),t=n.state.containerStyle,o=t.left,i=t.top;t.width;var s,r,a=t.height;r={left:o,top:i,height:a},((s=e).left!==r.left||s.top!==r.top||s.width!==r.height||s.height!==r.height)&&n.setState({containerStyle:{top:e.top||0,left:e.left||0,width:e.width||0,height:e.height||0,position:"absolute"}})},n.draw=function(){n.onPositionElement()},n.onRemove=function(){var e,t;n.setState((function(){return{paneEl:null}})),null===(t=(e=n.props).onUnmount)||void 0===t||t.call(e,n.overlayView)},n.containerRef=e.createRef();var i=new google.maps.OverlayView;return i.onAdd=n.onAdd,i.draw=n.draw,i.onRemove=n.onRemove,n.overlayView=i,n}h(o,t),o.prototype.componentDidMount=function(){this.overlayView.setMap(this.context)},o.prototype.componentDidUpdate=function(e){var t=ct(e.position),o=ct(this.props.position),n=gt(e.bounds),i=gt(this.props.bounds);t===o&&n===i||this.overlayView.draw(),e.mapPaneName!==this.props.mapPaneName&&this.updatePane()},o.prototype.componentWillUnmount=function(){this.overlayView.setMap(null)},o.prototype.render=function(){var t=this.state.paneEl;return t?n.createPortal(u.jsx("div",{ref:this.containerRef,style:this.state.containerStyle,children:e.Children.only(this.props.children)}),t):null},o.FLOAT_PANE="floatPane",o.MAP_PANE="mapPane",o.MARKER_LAYER="markerLayer",o.OVERLAY_LAYER="overlayLayer",o.OVERLAY_MOUSE_TARGET="overlayMouseTarget",o.contextType=b}(e.PureComponent);var ut={onDblClick:"dblclick",onClick:"click"},dt={opacity:function(e,t){e.setOpacity(t)}};e.memo((function(t){var o=t.url,n=t.bounds,i=t.options,s=t.visible,r=e.useContext(b),a=new google.maps.LatLngBounds(new google.maps.LatLng(n.south,n.west),new google.maps.LatLng(n.north,n.east)),l=e.useMemo((function(){return new google.maps.GroundOverlay(o,a,m({},i))}),[]);return e.useEffect((function(){null!==l&&l.setMap(r)}),[r]),e.useEffect((function(){void 0!==o&&null!==l&&(l.set("url",o),l.setMap(r))}),[l,o]),e.useEffect((function(){void 0!==s&&null!==l&&l.setOpacity(s?1:0)}),[l,s]),e.useEffect((function(){var e=new google.maps.LatLngBounds(new google.maps.LatLng(n.south,n.west),new google.maps.LatLng(n.north,n.east));void 0!==n&&null!==l&&(l.set("bounds",e),l.setMap(r))}),[l,n]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={groundOverlay:null},t.setGroundOverlayCallback=function(){null!==t.state.groundOverlay&&t.props.onLoad&&t.props.onLoad(t.state.groundOverlay)},t}h(t,e),t.prototype.componentDidMount=function(){C(!!this.props.url||!!this.props.bounds,"For GroundOverlay, url and bounds are passed in to constructor and are immutable after instantiated. This is the behavior of Google Maps JavaScript API v3 ( See https://developers.google.com/maps/documentation/javascript/reference#GroundOverlay) Hence, use the corresponding two props provided by `react-google-maps-api`, url and bounds. In some cases, you'll need the GroundOverlay component to reflect the changes of url and bounds. You can leverage the React's key property to remount the component. Typically, just `key={url}` would serve your need. See https://github.com/tomchentw/react-google-maps/issues/655");var e=new google.maps.GroundOverlay(this.props.url,this.props.bounds,m(m({},this.props.options),{map:this.context}));this.registeredEvents=z({updaterMap:dt,eventMap:ut,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{groundOverlay:e}}),this.setGroundOverlayCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.groundOverlay&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:dt,eventMap:ut,prevProps:e,nextProps:this.props,instance:this.state.groundOverlay}))},t.prototype.componentWillUnmount=function(){this.state.groundOverlay&&(this.props.onUnmount&&this.props.onUnmount(this.state.groundOverlay),this.state.groundOverlay.setMap(null))},t.prototype.render=function(){return null},t.defaultProps={onLoad:pt},t.contextType=b}(e.PureComponent);var ht={},mt={data:function(e,t){e.setData(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)}};e.memo((function(t){var o=t.data,n=t.onLoad,i=t.onUnmount,s=t.options,r=e.useContext(b),a=e.useState(null),l=a[0],c=a[1];return e.useEffect((function(){google.maps.visualization||C(!!google.maps.visualization,'Did you include prop libraries={["visualization"]} in useJsApiScript? %s',google.maps.visualization)}),[]),e.useEffect((function(){C(!!o,"data property is required in HeatmapLayer %s",o)}),[o]),e.useEffect((function(){null!==l&&l.setMap(r)}),[r]),e.useEffect((function(){s&&null!==l&&l.setOptions(s)}),[l,s]),e.useEffect((function(){var e=new google.maps.visualization.HeatmapLayer(m(m({},s||{}),{data:o,map:r}));return c(e),n&&n(e),function(){null!==l&&(i&&i(l),l.setMap(null))}}),[]),null})),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={heatmapLayer:null},t.setHeatmapLayerCallback=function(){null!==t.state.heatmapLayer&&t.props.onLoad&&t.props.onLoad(t.state.heatmapLayer)},t}h(t,e),t.prototype.componentDidMount=function(){C(!!google.maps.visualization,'Did you include prop libraries={["visualization"]} to <LoadScript />? %s',google.maps.visualization),C(!!this.props.data,"data property is required in HeatmapLayer %s",this.props.data);var e=new google.maps.visualization.HeatmapLayer(m(m({},this.props.options||{}),{data:this.props.data,map:this.context}));this.registeredEvents=z({updaterMap:mt,eventMap:ht,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{heatmapLayer:e}}),this.setHeatmapLayerCallback)},t.prototype.componentDidUpdate=function(e){P(this.registeredEvents),this.registeredEvents=z({updaterMap:mt,eventMap:ht,prevProps:e,nextProps:this.props,instance:this.state.heatmapLayer})},t.prototype.componentWillUnmount=function(){null!==this.state.heatmapLayer&&(this.props.onUnmount&&this.props.onUnmount(this.state.heatmapLayer),P(this.registeredEvents),this.state.heatmapLayer.setMap(null))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent);var ft={onCloseClick:"closeclick",onPanoChanged:"pano_changed",onPositionChanged:"position_changed",onPovChanged:"pov_changed",onResize:"resize",onStatusChanged:"status_changed",onVisibleChanged:"visible_changed",onZoomChanged:"zoom_changed"},vt={register:function(e,t,o){e.registerPanoProvider(t,o)},links:function(e,t){e.setLinks(t)},motionTracking:function(e,t){e.setMotionTracking(t)},options:function(e,t){e.setOptions(t)},pano:function(e,t){e.setPano(t)},position:function(e,t){e.setPosition(t)},pov:function(e,t){e.setPov(t)},visible:function(e,t){e.setVisible(t)},zoom:function(e,t){e.setZoom(t)}};!function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={streetViewPanorama:null},t.setStreetViewPanoramaCallback=function(){null!==t.state.streetViewPanorama&&t.props.onLoad&&t.props.onLoad(t.state.streetViewPanorama)},t}h(t,e),t.prototype.componentDidMount=function(){var e,t,o=null!==(t=null===(e=this.context)||void 0===e?void 0:e.getStreetView())&&void 0!==t?t:null;this.registeredEvents=z({updaterMap:vt,eventMap:ft,prevProps:{},nextProps:this.props,instance:o}),this.setState((function(){return{streetViewPanorama:o}}),this.setStreetViewPanoramaCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.streetViewPanorama&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:vt,eventMap:ft,prevProps:e,nextProps:this.props,instance:this.state.streetViewPanorama}))},t.prototype.componentWillUnmount=function(){null!==this.state.streetViewPanorama&&(this.props.onUnmount&&this.props.onUnmount(this.state.streetViewPanorama),P(this.registeredEvents),this.state.streetViewPanorama.setVisible(!1))},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={streetViewService:null},t.setStreetViewServiceCallback=function(){null!==t.state.streetViewService&&t.props.onLoad&&t.props.onLoad(t.state.streetViewService)},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.StreetViewService;this.setState((function(){return{streetViewService:e}}),this.setStreetViewServiceCallback)},t.prototype.componentWillUnmount=function(){null!==this.state.streetViewService&&this.props.onUnmount&&this.props.onUnmount(this.state.streetViewService)},t.prototype.render=function(){return null},t.contextType=b}(e.PureComponent),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={directionsService:null},t.setDirectionsServiceCallback=function(){null!==t.state.directionsService&&t.props.onLoad&&t.props.onLoad(t.state.directionsService)},t}h(t,e),t.prototype.componentDidMount=function(){C(!!this.props.options,"DirectionsService expected options object as parameter, but got %s",this.props.options);var e=new google.maps.DirectionsService;this.setState((function(){return{directionsService:e}}),this.setDirectionsServiceCallback)},t.prototype.componentDidUpdate=function(){null!==this.state.directionsService&&this.state.directionsService.route(this.props.options,this.props.callback)},t.prototype.componentWillUnmount=function(){null!==this.state.directionsService&&this.props.onUnmount&&this.props.onUnmount(this.state.directionsService)},t.prototype.render=function(){return null}}(e.PureComponent);var yt={onDirectionsChanged:"directions_changed"},Lt={directions:function(e,t){e.setDirections(t)},map:function(e,t){e.setMap(t)},options:function(e,t){e.setOptions(t)},panel:function(e,t){e.setPanel(t)},routeIndex:function(e,t){e.setRouteIndex(t)}};!function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.registeredEvents=[],t.state={directionsRenderer:null},t.setDirectionsRendererCallback=function(){null!==t.state.directionsRenderer&&(t.state.directionsRenderer.setMap(t.context),t.props.onLoad&&t.props.onLoad(t.state.directionsRenderer))},t}h(t,e),t.prototype.componentDidMount=function(){var e=new google.maps.DirectionsRenderer(this.props.options);this.registeredEvents=z({updaterMap:Lt,eventMap:yt,prevProps:{},nextProps:this.props,instance:e}),this.setState((function(){return{directionsRenderer:e}}),this.setDirectionsRendererCallback)},t.prototype.componentDidUpdate=function(e){null!==this.state.directionsRenderer&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:Lt,eventMap:yt,prevProps:e,nextProps:this.props,instance:this.state.directionsRenderer}))},t.prototype.componentWillUnmount=function(){null!==this.state.directionsRenderer&&(this.props.onUnmount&&this.props.onUnmount(this.state.directionsRenderer),P(this.registeredEvents),this.state.directionsRenderer&&this.state.directionsRenderer.setMap(null))},t.prototype.render=function(){return u.jsx(u.Fragment,{})},t.contextType=b}(e.PureComponent),function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={distanceMatrixService:null},t.setDistanceMatrixServiceCallback=function(){null!==t.state.distanceMatrixService&&t.props.onLoad&&t.props.onLoad(t.state.distanceMatrixService)},t}h(t,e),t.prototype.componentDidMount=function(){C(!!this.props.options,"DistanceMatrixService expected options object as parameter, but go %s",this.props.options);var e=new google.maps.DistanceMatrixService;this.setState((function(){return{distanceMatrixService:e}}),this.setDistanceMatrixServiceCallback)},t.prototype.componentDidUpdate=function(){null!==this.state.distanceMatrixService&&this.state.distanceMatrixService.getDistanceMatrix(this.props.options,this.props.callback)},t.prototype.componentWillUnmount=function(){null!==this.state.distanceMatrixService&&this.props.onUnmount&&this.props.onUnmount(this.state.distanceMatrixService)},t.prototype.render=function(){return null}}(e.PureComponent);var It={onPlacesChanged:"places_changed"},Ct={bounds:function(e,t){e.setBounds(t)}};!function(t){function o(){var o=null!==t&&t.apply(this,arguments)||this;return o.registeredEvents=[],o.containerElement=e.createRef(),o.state={searchBox:null},o.setSearchBoxCallback=function(){null!==o.state.searchBox&&o.props.onLoad&&o.props.onLoad(o.state.searchBox)},o}h(o,t),o.prototype.componentDidMount=function(){if(C(!!google.maps.places,'You need to provide libraries={["places"]} prop to <LoadScript /> component %s',google.maps.places),null!==this.containerElement&&null!==this.containerElement.current){var e=this.containerElement.current.querySelector("input");if(null!==e){var t=new google.maps.places.SearchBox(e,this.props.options);this.registeredEvents=z({updaterMap:Ct,eventMap:It,prevProps:{},nextProps:this.props,instance:t}),this.setState((function(){return{searchBox:t}}),this.setSearchBoxCallback)}}},o.prototype.componentDidUpdate=function(e){null!==this.state.searchBox&&(P(this.registeredEvents),this.registeredEvents=z({updaterMap:Ct,eventMap:It,prevProps:e,nextProps:this.props,instance:this.state.searchBox}))},o.prototype.componentWillUnmount=function(){null!==this.state.searchBox&&(this.props.onUnmount&&this.props.onUnmount(this.state.searchBox),P(this.registeredEvents))},o.prototype.render=function(){return u.jsx("div",{ref:this.containerElement,children:e.Children.only(this.props.children)})},o.contextType=b}(e.PureComponent);var bt={onPlaceChanged:"place_changed"},wt={bounds:function(e,t){e.setBounds(t)},restrictions:function(e,t){e.setComponentRestrictions(t)},fields:function(e,t){e.setFields(t)},options:function(e,t){e.setOptions(t)},types:function(e,t){e.setTypes(t)}};function kt(e,t,o,n){var i=o*Math.PI/180-e*Math.PI/180,s=n*Math.PI/180-t*Math.PI/180,r=Math.sin(i/2)*Math.sin(i/2)+Math.cos(e*Math.PI/180)*Math.cos(o*Math.PI/180)*Math.sin(s/2)*Math.sin(s/2);return 6378137*(2*Math.atan2(Math.sqrt(r),Math.sqrt(1-r)))}!function(t){function o(){var o=null!==t&&t.apply(this,arguments)||this;return o.registeredEvents=[],o.containerElement=e.createRef(),o.state={autocomplete:null},o.setAutocompleteCallback=function(){null!==o.state.autocomplete&&o.props.onLoad&&o.props.onLoad(o.state.autocomplete)},o}h(o,t),o.prototype.componentDidMount=function(){var e;C(!!google.maps.places,'You need to provide libraries={["places"]} prop to <LoadScript /> component %s',google.maps.places);var t=null===(e=this.containerElement.current)||void 0===e?void 0:e.querySelector("input");if(t){var o=new google.maps.places.Autocomplete(t,this.props.options);this.registeredEvents=z({updaterMap:wt,eventMap:bt,prevProps:{},nextProps:this.props,instance:o}),this.setState((function(){return{autocomplete:o}}),this.setAutocompleteCallback)}},o.prototype.componentDidUpdate=function(e){P(this.registeredEvents),this.registeredEvents=z({updaterMap:wt,eventMap:bt,prevProps:e,nextProps:this.props,instance:this.state.autocomplete})},o.prototype.componentWillUnmount=function(){null!==this.state.autocomplete&&P(this.registeredEvents)},o.prototype.render=function(){return u.jsx("div",{ref:this.containerElement,className:this.props.className,children:e.Children.only(this.props.children)})},o.defaultProps={className:""},o.contextType=b}(e.PureComponent);var Mt=function(){function e(){}return e.clearString=function(e){return e.replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;")},e}();function Pt(e){return e*Math.PI/180}function zt(e){return 180*e/Math.PI}const xt=[];class Et{constructor(){}delete(e,t){if(!t)return null;const o=t.getPath().getLength();for(let e=0;e<o;e++){const t=xt[e];t&&(t.ghostMarker&&(google.maps.event.clearInstanceListeners(t.ghostMarker),t.ghostMarker.setMap(null),delete t.ghostMarker.marker,delete t.ghostMarker),t.marker&&(google.maps.event.clearInstanceListeners(t.marker),t.marker.setMap(null),t.marker=null))}return xt.length=0,t}edit(e,t,o,n){let i,s,r,a;if(n){i={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48"><path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" /><path fill="rgba(255,255,255,1)" stroke="#303030" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" /></svg>'),anchor:new google.maps.Point(24,24)};s={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48"><path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" /><path fill="rgba(255,255,255,0.4)" stroke="#303030" stroke-width="0.3" stroke-opacity="0.01" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" /></svg>'),anchor:new google.maps.Point(24,24)};r={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52"><g transform="scale(0.4 0.4)"><path style="fill:#f1a81e;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"></g></g></svg>'),anchor:new google.maps.Point(30,60)};a={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52"><g transform="scale(0.4 0.4) rotate(180 26 26)"><path style="fill:#f1a81e;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"></g></g></svg>'),anchor:new google.maps.Point(30,0)}}else i={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1},s={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:.4,anchor:new google.maps.Point(4,4),strokeWeight:.3,strokeOpacity:.01,strokeColor:"#303030",scale:1};const l=new google.maps.Polyline({map:e,strokeColor:"#ffff00",strokeOpacity:.6,strokeWeight:2,clickable:!1,zIndex:10100}),c=function(){for(let e=0;e<xt.length;e++){const t=xt[e]?.marker;t&&t.setIcon(i)}const e=t.getPath(),o=new google.maps.LatLngBounds;for(let t=0,n=e.getLength();t<n;t++)o.extend(e.getAt(t));if(n&&r&&a){const e=o.getCenter(),t=this.getPosition();if(!t)return;this.setIcon(t.lat()>=e.lat()?r:a)}},g=function(){const e=this.marker.editIndex,o=t.getPath(),n=o.getLength()-1,i=this.marker.getPosition(),s=this.getPosition(),r=e<n?o.getAt(e+1):o.getAt(0);0===l.getPath().getLength()?l.setPath([i,s,r]):l.getPath().setAt(1,s)},p=function(){const o=this.marker;if(!o)return;const n=this.getPosition();if(!n)return;const s=t.getPath(),r=s.getLength();if(r<1)return;const a=o.editIndex,c=a===r-1?0:a+1,g=xt[a];google.maps.event.clearInstanceListeners(this),this.setMap(null),s.insertAt(c,n);const p=new google.maps.Marker({map:e,icon:i,draggable:!0,raiseOnDrag:!1,position:n});google.maps.event.addListener(p,"dragstart",u),google.maps.event.addListener(p,"drag",d),google.maps.event.addListener(p,"dragend",h),xt.splice(c,0,{marker:p,ghostMarker:void 0});for(let e=c;e<xt.length;e++){const t=xt[e]?.marker;t&&(t.editIndex=e)}const m=g?.ghostMarker;m&&m!==this?(google.maps.event.clearInstanceListeners(m),m.setMap(null),delete m.marker,delete g.ghostMarker):g&&delete g?.ghostMarker;const v=0===c?s.getLength()-1:c-1;for(f(v),f(c);l.getPath().getLength()>0;)l.getPath().pop();google.maps.event.trigger(t,"insert_at",c,n)},u=function(){for(let e=0;e<xt.length;e++){const t=xt[e]?.marker;t&&t.setIcon(i)}const e=t.getPath(),o=new google.maps.LatLngBounds;for(let t=0,n=e.getLength();t<n;t++)o.extend(e.getAt(t));if(n&&r&&a){const e=o.getCenter(),t=this.getPosition();if(!t)return;this.setIcon(t.lat()>=e.lat()?r:a)}},d=function(){const e=this.editIndex,o=this.getPosition();t.getPath().setAt(e,o);const n=t.getPath(),i=0===e?n.getLength()-1:e-1;f(i),f(e)},h=function(){google.maps.event.trigger(t,"update_at",this.editIndex,this.getPosition())},m=(o,n)=>{const i=t.getPath().getAt(o);let s=xt[o]?.marker;return s?(s.setPosition(i),s.editIndex=o):(s=new google.maps.Marker({position:i,map:e,icon:n,draggable:!0,raiseOnDrag:!1}),google.maps.event.addListener(s,"dragstart",u),google.maps.event.addListener(s,"drag",d),google.maps.event.addListener(s,"dragend",h),s.editIndex=o,xt[o]={marker:s}),s},f=o=>{const n=t.getPath(),i=n.getLength();if(i<2)return null;const r=n.getAt(o),a=o<i-1?o+1:0,l=n.getAt(a),u=google.maps.geometry?google.maps.geometry.spherical.interpolate(r,l,.5):new google.maps.LatLng(r.lat()+.5*(l.lat()-r.lat()),r.lng()+.5*(l.lng()-r.lng())),d=xt[o]?.marker;if(!d)return null;let h=xt[o]?.ghostMarker;return h&&null!==h.getMap()?h.marker=d:(h=new google.maps.Marker({map:e,icon:s,draggable:!0,raiseOnDrag:!1}),h.marker=d,google.maps.event.addListener(h,"dragstart",c),google.maps.event.addListener(h,"drag",g),google.maps.event.addListener(h,"dragend",p),xt[o].ghostMarker=h),h.setPosition(u),h},v=()=>{const e=t.getPath();for(let t=0;t<e.getLength();t++){const o=e.getAt(t),n=xt[t];if(!n)continue;const i=n.marker;i&&(i.setPosition(o),i.editIndex=t),f(t)}},y=e=>{for(let t=0;t<xt.length;t++){const o=xt[t];o?.marker?.setDraggable(e),o?.ghostMarker?.setDraggable(e)}};function L(e,t,o,n){return t.setMap(e),t.getPath().forEach(((e,t)=>{m(t,n&&r&&1===t?r:i).editIndex=t,f(t)})),t}return google.maps.event.addListener(t,"dragstart",(()=>{y(!1)})),google.maps.event.addListener(t,"drag",(()=>{v()})),google.maps.event.addListener(t,"dragend",(()=>{v(),y(!0)})),L.prototype=new google.maps.MVCObject,new L(e,t,o,n)}}class St{IsValid="";Poly="";Area=0;Perimeter=0;Latitude=0;Longitude=0;constructor(e,t,o,n,i,s){this.Poly=e,this.Area=t,this.Perimeter=o,this.Latitude=n,this.Longitude=i,this.IsValid=s,this.GeoJSON=void 0}}class Ot{constructor(e=[],t=(e,t)=>e<t?-1:e>t?1:0){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this._up(this.length++)}pop(){if(0===this.length)return;const e=this.data[0],t=this.data.pop();return--this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:t,compare:o}=this,n=t[e];for(;e>0;){const i=e-1>>1,s=t[i];if(o(n,s)>=0)break;t[e]=s,e=i}t[e]=n}_down(e){const{data:t,compare:o}=this,n=this.length>>1,i=t[e];for(;e<n;){let n=1+(e<<1);const s=n+1;if(s<this.length&&o(t[s],t[n])<0&&(n=s),o(t[n],i)>=0)break;t[e]=t[n],e=n}t[e]=i}}function _t(e,t=1,o=!1){let n=1/0,i=1/0,s=-1/0,r=-1/0;for(const[t,o]of e[0])t<n&&(n=t),o<i&&(i=o),t>s&&(s=t),o>r&&(r=o);const a=s-n,l=r-i,c=Math.max(t,Math.min(a,l));if(c===t){const e=[n,i];return e.distance=0,e}const g=new Ot([],((e,t)=>t.max-e.max));let p=function(e){let t=0,o=0,n=0;const i=e[0];for(let e=0,s=i.length,r=s-1;e<s;r=e++){const s=i[e],a=i[r],l=s[0]*a[1]-a[0]*s[1];o+=(s[0]+a[0])*l,n+=(s[1]+a[1])*l,t+=3*l}const s=new Tt(o/t,n/t,0,e);return 0===t||s.d<0?new Tt(i[0][0],i[0][1],0,e):s}(e);const u=new Tt(n+a/2,i+l/2,0,e);u.d>p.d&&(p=u);let d=2;function h(n,i,s){const r=new Tt(n,i,s,e);d++,r.max>p.d+t&&g.push(r),r.d>p.d&&(p=r,o&&console.log(`found best ${Math.round(1e4*r.d)/1e4} after ${d} probes`))}let m=c/2;for(let e=n;e<s;e+=c)for(let t=i;t<r;t+=c)h(e+m,t+m,m);for(;g.length;){const{max:e,x:o,y:n,h:i}=g.pop();if(e-p.d<=t)break;m=i/2,h(o-m,n-m,m),h(o+m,n-m,m),h(o-m,n+m,m),h(o+m,n+m,m)}o&&console.log(`num probes: ${d}\nbest distance: ${p.d}`);const f=[p.x,p.y];return f.distance=p.d,f}function Tt(e,t,o,n){this.x=e,this.y=t,this.h=o,this.d=function(e,t,o){let n=!1,i=1/0;for(const s of o)for(let o=0,r=s.length,a=r-1;o<r;a=o++){const r=s[o],l=s[a];r[1]>t!=l[1]>t&&e<(l[0]-r[0])*(t-r[1])/(l[1]-r[1])+r[0]&&(n=!n),i=Math.min(i,Bt(e,t,r,l))}return 0===i?0:(n?1:-1)*Math.sqrt(i)}(e,t,n),this.max=this.d+this.h*Math.SQRT2}function Bt(e,t,o,n){let i=o[0],s=o[1],r=n[0]-i,a=n[1]-s;if(0!==r||0!==a){const o=((e-i)*r+(t-s)*a)/(r*r+a*a);o>1?(i=n[0],s=n[1]):o>0&&(i+=r*o,s+=a*o)}return r=e-i,a=t-s,r*r+a*a}var Rt,Dt={exports:{}};var At=(Rt||(Rt=1,function(e){var t={};function o(e){return Math.floor(Math.abs(e)+.5)*(e>=0?1:-1)}function n(e,t,n){var i=2*((e=o(e*n))-(t=o(t*n)));i<0&&(i=-i-1);for(var s="";i>=32;)s+=String.fromCharCode(63+(32|31&i)),i/=32;return s+=String.fromCharCode(63+(0|i))}function i(e){for(var t=[],o=0;o<e.length;o++){var n=e[o].slice();t.push([n[1],n[0]])}return t}t.decode=function(e,t){for(var o,n=0,i=0,s=0,r=[],a=0,l=0,c=null,g=Math.pow(10,Number.isInteger(t)?t:5);n<e.length;){c=null,a=1,l=0;do{l+=(31&(c=e.charCodeAt(n++)-63))*a,a*=32}while(c>=32);o=1&l?(-l-1)/2:l/2,a=1,l=0;do{l+=(31&(c=e.charCodeAt(n++)-63))*a,a*=32}while(c>=32);i+=o,s+=1&l?(-l-1)/2:l/2,r.push([i/g,s/g])}return r},t.encode=function(e,t){if(!e.length)return"";for(var o=Math.pow(10,Number.isInteger(t)?t:5),i=n(e[0][0],0,o)+n(e[0][1],0,o),s=1;s<e.length;s++){var r=e[s],a=e[s-1];i+=n(r[0],a[0],o),i+=n(r[1],a[1],o)}return i},t.fromGeoJSON=function(e,o){if(e&&"Feature"===e.type&&(e=e.geometry),!e||"LineString"!==e.type)throw new Error("Input must be a GeoJSON LineString");return t.encode(i(e.coordinates),o)},t.toGeoJSON=function(e,o){return{type:"LineString",coordinates:i(t.decode(e,o))}},e.exports&&(e.exports=t)}(Dt)),Dt.exports),Ut=i(At);class Wt{centerPoint=null;constructor(){}get(e,t,o,n,i){this.centerPoint=new google.maps.LatLng(e,t);var s=o/6378137*(180/Math.PI),r=s/Math.cos(e*(Math.PI/180)),a=[],l=0,c=0;i-n<0&&(i+=360);for(var g=n*Math.PI/180,p=i*Math.PI/180,u=0;g<p;u++)g=(n+u)*Math.PI/180,l=e+s*Math.cos(g),c=t+r*Math.sin(g),a.push(new google.maps.LatLng(l,c));return a}reduce(e,t){var o=[];o.push(e.getAt(0));for(var n=1;n<e.getLength()-2;n++)n%10==1&&o.push(e.getAt(n));return o.push(e.getAt(e.getLength()-2)),o.push(e.getAt(e.getLength()-1)),t?o.reverse():o}edit(e,t,o,n,i,s,r){var a=360;if(s){var l='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" width="48" height="48">';l+='<path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" />',l+='<path fill="rgba(255,255,255,1)" stroke="#303030" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" />',l+="</svg>";var c={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(l),anchor:new google.maps.Point(24,24),id:"sizerIconTop"},g={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(l),anchor:new google.maps.Point(24,24),id:"sizerIconRight"},p={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(l),anchor:new google.maps.Point(24,24),id:"sizerIconBottom"},u={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(l),anchor:new google.maps.Point(24,24),id:"sizerIconLeft"},d={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(l),anchor:new google.maps.Point(24,24),id:"centerIcon"};0;var h={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,60),id:"handleIconUp"};0;var m={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4) rotate(180 26 26)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,0),id:"handleIconDown"}}else c={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconTop"},g={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconRight"},p={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconBottom"},u={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconLeft"},d={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"centerIcon"};function f(e,t){this.set("map",e),this.set("position",n);var i=new google.maps.Marker({icon:d,draggable:!0,raiseOnDrag:!1,title:"Move me!",id:"centerMarker"});i.bindTo("map",this),i.bindTo("position",this);var a=new v;return a.bindTo("map",this),a.bindTo("center",this,"position"),this.bindTo("distance",a),this.bindTo("bounds",a),s&&(google.maps.event.addListener(i,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),"centerIcon"==i.getIcon().id?i.setIcon(m):i.setIcon(d)})),google.maps.event.addListener(i,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),i.setIcon(m)})),r.push(i)),o}function v(){o=new google.maps.Polygon({id:t.id,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,isHole:t.isHole}),this.set("distance",i),this.bindTo("bounds",o),t.setVisible(!1),o.bindTo("map",this);var e=new google.maps.Circle({strokeColor:"#000000",strokeOpacity:.2,strokeWeight:2,fillColor:"#000000",fillOpacity:0});this.bindTo("bounds",e),e.bindTo("center",this),e.bindTo("map",this),e.bindTo("radius",this),this.addSizerTop_(),this.addSizerRight_(),this.addSizerBottom_(),this.addSizerLeft_()}return f.prototype=new google.maps.MVCObject,v.prototype=new google.maps.MVCObject,v.prototype.distance_changed=function(){this.set("radius",this.get("distance"))},v.prototype.addSizerTop_=function(){var e=new google.maps.Marker({icon:c,draggable:!0,crossOnDrag:!1,title:"I'm the top radius sizer, drag me!",cursor:"row-resize",id:"sizerTop"});e.bindTo("map",this),e.bindTo("position",this,"sizerTop_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),"sizerIconTop"==e.getIcon().id?e.setIcon(h):e.setIcon(c)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),e.setIcon(h)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerTop_position",new google.maps.LatLng(t.get("sizerTop_position").lat(),t.get("center").lng()));var e=t.get("sizerTop_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),t.setDistanceTop()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerTop_position",new google.maps.LatLng(t.get("sizerTop_position").lat(),t.get("center").lng()));var e=t.get("sizerTop_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),t.setDistanceTop()}))},v.prototype.addSizerRight_=function(){var e=new google.maps.Marker({icon:g,draggable:!0,crossOnDrag:!1,title:"I'm the right radius sizer, drag me!",cursor:"col-resize",id:"sizerRight"});e.bindTo("map",this),e.bindTo("position",this,"sizerRight_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),"sizerIconRight"==e.getIcon().id?e.setIcon(m):e.setIcon(g)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerRight_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerRight_position").lng()));var e=t.get("sizerRight_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerRight_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerRight_position").lng()));var e=t.get("sizerRight_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),t.setDistanceRight()}))},v.prototype.addSizerBottom_=function(){var e=new google.maps.Marker({icon:p,draggable:!0,crossOnDrag:!1,title:"I'm the bottom radius sizer, drag me!",cursor:"row-resize",id:"sizerBottom"});e.bindTo("map",this),e.bindTo("position",this,"sizerBottom_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),"sizerIconBottom"==e.getIcon().id?e.setIcon(m):e.setIcon(p)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerBottom_position",new google.maps.LatLng(t.get("sizerBottom_position").lat(),t.get("center").lng()));var e=t.get("sizerBottom_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),t.setDistanceBottom()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerBottom_position",new google.maps.LatLng(t.get("sizerBottom_position").lat(),t.get("center").lng()));var e=t.get("sizerBottom_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),t.setDistanceBottom()}))},v.prototype.addSizerLeft_=function(){var e=new google.maps.Marker({icon:u,draggable:!0,crossOnDrag:!1,title:"I'm the left radius sizer, drag me!",cursor:"col-resize",id:"sizerLeft"});e.bindTo("map",this),e.bindTo("position",this,"sizerLeft_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),"sizerIconLeft"==e.getIcon().id?e.setIcon(m):e.setIcon(u)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(d):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(c):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(g):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(p):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(u)})),e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerLeft_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerLeft_position").lng()));var e=t.get("sizerLeft_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),t.setDistanceLeft()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerLeft_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerLeft_position").lng()));var e=t.get("sizerLeft_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),t.setDistanceLeft()}))},v.prototype.center_changed=function(){var e=this.get("bounds");this.get("center");var t=this.get("distance");if(e){var n=(new Wt).get(this.get("center").lat(),this.get("center").lng(),t,0,a);o.setPath(n);var i=e.getNorthEast().lat(),s=e.getNorthEast().lng(),r=e.getSouthWest().lat(),l=e.getSouthWest().lng(),c=new google.maps.LatLng(i,this.get("center").lng()),g=new google.maps.LatLng(this.get("center").lat(),s),p=new google.maps.LatLng(r,this.get("center").lng()),u=new google.maps.LatLng(this.get("center").lat(),l);this.set("sizerTop_position",c),this.set("sizerRight_position",g),this.set("sizerBottom_position",p),this.set("sizerLeft_position",u)}},v.prototype.setDistanceTop=function(){var e=this.get("sizerTop_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Wt).get(this.get("center").lat(),this.get("center").lng(),n,0,a);o.setPath(i),this.set("distance",n),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},v.prototype.setDistanceRight=function(){var e=this.get("sizerRight_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Wt).get(this.get("center").lat(),this.get("center").lng(),n,0,a);o.setPath(i),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},v.prototype.setDistanceBottom=function(){var e=this.get("sizerBottom_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Wt).get(this.get("center").lat(),this.get("center").lng(),n,0,a);o.setPath(i),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},v.prototype.setDistanceLeft=function(){var e=this.get("sizerLeft_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Wt).get(this.get("center").lat(),this.get("center").lng(),n,0,a);o.setPath(i),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180))},new f(e)}}class Zt{centerPoint=null;constructor(){}get(e,t,o,n,i){this.centerPoint=new google.maps.LatLng(e,t);var s=o/6378137*(180/Math.PI),r=s/Math.cos(e*(Math.PI/180)),a=[],l=0,c=0;a.push(this.centerPoint),i-n<0&&(i+=360);for(var g=n*Math.PI/180,p=i*Math.PI/180,u=0;g<p;u++)g=(n+u)*Math.PI/180,l=e+s*Math.cos(g),c=t+r*Math.sin(g),a.push(new google.maps.LatLng(l,c));return a.push(this.centerPoint),a}reduce(e,t){for(var o=[],n=1;n<e.getLength()-2;n++)n%5==1&&o.push(e.getAt(n));return o.push(e.getAt(e.getLength()-2)),o.push(e.getAt(e.getLength()-1)),t?o.reverse():o}edit(e,t,o,n,i,s,r){var a=60,l=120;if(s){var c='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" width="48" height="48">';c+='<path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" />',c+='<path fill="rgba(255,255,255,1)" stroke="#303030" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" />',c+="</svg>";var g={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(c),anchor:new google.maps.Point(24,24),id:"sizerIconTop"},p={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(c),anchor:new google.maps.Point(24,24),id:"sizerIconRight"},u={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(c),anchor:new google.maps.Point(24,24),id:"sizerIconBottom"},d={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(c),anchor:new google.maps.Point(24,24),id:"sizerIconLeft"},h={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(c),anchor:new google.maps.Point(24,24),id:"centerIcon"};0;var m={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,60),id:"handleIconUp"};0;var f={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4) rotate(180 26 26)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,0),id:"handleIconDown"},v='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" width="48" height="48">';v+='<path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" />',v+='<path fill="rgba(255,255,255,1)" stroke="'+t.strokeColor+'" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" />',v+="</svg>";var y={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(v),anchor:new google.maps.Point(24,24),id:"startPinIcon"},L={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(v),anchor:new google.maps.Point(24,24),id:"endPinIcon"}}else g={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconTop"},p={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconRight"},u={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconBottom"},d={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconLeft"},h={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"centerIcon"},y={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"startPinIcon"},L={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"endPinIcon"};function I(e,t){this.set("map",e),this.set("position",n);var i=new google.maps.Marker({icon:h,draggable:!0,raiseOnDrag:!1,title:"Move me!",id:"centerMarker"});i.bindTo("map",this),i.bindTo("position",this);var a=new C;return a.bindTo("map",this),a.bindTo("center",this,"position"),this.bindTo("distance",a),this.bindTo("bounds",a),s&&(google.maps.event.addListener(i,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"centerIcon"==i.getIcon().id?i.setIcon(f):i.setIcon(h)})),google.maps.event.addListener(i,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),i.setIcon(f)})),r.push(i)),o}function C(){o=new google.maps.Polygon({id:t.id,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,isHole:t.isHole}),this.set("distance",i),this.bindTo("bounds",o),t.setVisible(!1),o.bindTo("map",this);var e=new google.maps.Circle({strokeColor:"#000000",strokeOpacity:.2,strokeWeight:2,fillColor:"#000000",fillOpacity:0});this.bindTo("bounds",e),e.bindTo("center",this),e.bindTo("map",this),e.bindTo("radius",this),this.addSizerTop_(),this.addSizerRight_(),this.addSizerBottom_(),this.addSizerLeft_(),this.addStartPin_(),this.addEndPin_()}return I.prototype=new google.maps.MVCObject,C.prototype=new google.maps.MVCObject,C.prototype.distance_changed=function(){this.set("radius",this.get("distance"))},C.prototype.addStartPin_=function(){var e=new google.maps.Marker({icon:y,draggable:!0,raiseOnDrag:!1,title:"Drag me!",id:"startPin"});e.bindTo("map",this),e.bindTo("position",this,"startPin_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"startPinIcon"==e.getIcon().id?a>90&&a<270?e.setIcon(f):e.setIcon(m):e.setIcon(y)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),a>90&&a<270?e.setIcon(f):e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){var e=t.get("startPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);a=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,5,a)):n>2e3&&t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,a)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){var e=t.get("startPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);a=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,5,a)):n>2e3&&t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,a)),t.setDistanceRight()}))},C.prototype.addEndPin_=function(){var e=new google.maps.Marker({icon:L,draggable:!0,crossOnDrag:!1,title:"Drag me!",id:"endPin"});e.bindTo("map",this),e.bindTo("position",this,"endPin_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"endPinIcon"==e.getIcon().id?l>90&&l<270?e.setIcon(f):e.setIcon(m):e.setIcon(L)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),l>90&&l<270?e.setIcon(f):e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){var e=t.get("endPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);l=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,5,l)):n>2e3&&t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,l)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){var e=t.get("endPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);l=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,5,l)):n>2e3&&t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,l)),t.setDistanceRight()}))},C.prototype.addSizerTop_=function(){var e=new google.maps.Marker({icon:g,draggable:!0,crossOnDrag:!1,title:"I'm the top radius sizer, drag me!",cursor:"row-resize",id:"sizerTop"});e.bindTo("map",this),e.bindTo("position",this,"sizerTop_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"sizerIconTop"==e.getIcon().id?e.setIcon(m):e.setIcon(g)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),e.setIcon(m)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerTop_position",new google.maps.LatLng(t.get("sizerTop_position").lat(),t.get("center").lng()));var e=t.get("sizerTop_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),t.setDistanceTop()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerTop_position",new google.maps.LatLng(t.get("sizerTop_position").lat(),t.get("center").lng()));var e=t.get("sizerTop_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&t.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),t.setDistanceTop()}))},C.prototype.addSizerRight_=function(){var e=new google.maps.Marker({icon:p,draggable:!0,crossOnDrag:!1,title:"I'm the right radius sizer, drag me!",cursor:"col-resize",id:"sizerRight"});e.bindTo("map",this),e.bindTo("position",this,"sizerRight_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"sizerIconRight"==e.getIcon().id?e.setIcon(f):e.setIcon(p)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),e.setIcon(f)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerRight_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerRight_position").lng()));var e=t.get("sizerRight_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerRight_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerRight_position").lng()));var e=t.get("sizerRight_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&t.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),t.setDistanceRight()}))},C.prototype.addSizerBottom_=function(){var e=new google.maps.Marker({icon:u,draggable:!0,crossOnDrag:!1,title:"I'm the bottom radius sizer, drag me!",cursor:"row-resize",id:"sizerBottom"});e.bindTo("map",this),e.bindTo("position",this,"sizerBottom_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"sizerIconBottom"==e.getIcon().id?e.setIcon(f):e.setIcon(u)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),e.setIcon(f)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerBottom_position",new google.maps.LatLng(t.get("sizerBottom_position").lat(),t.get("center").lng()));var e=t.get("sizerBottom_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),t.setDistanceBottom()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerBottom_position",new google.maps.LatLng(t.get("sizerBottom_position").lat(),t.get("center").lng()));var e=t.get("sizerBottom_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&t.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),t.setDistanceBottom()}))},C.prototype.addSizerLeft_=function(){var e=new google.maps.Marker({icon:d,draggable:!0,crossOnDrag:!1,title:"I'm the left radius sizer, drag me!",cursor:"col-resize",id:"sizerLeft"});e.bindTo("map",this),e.bindTo("position",this,"sizerLeft_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),"sizerIconLeft"==e.getIcon().id?e.setIcon(f):e.setIcon(d)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(h):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(y):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(L):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(g):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(p):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(u):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(d)})),e.setIcon(f)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){t.set("sizerLeft_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerLeft_position").lng()));var e=t.get("sizerLeft_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),t.setDistanceLeft()})),google.maps.event.addListener(e,"dragend",(function(){t.set("sizerLeft_position",new google.maps.LatLng(t.get("center").lat(),t.get("sizerLeft_position").lng()));var e=t.get("sizerLeft_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);n<5?t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&t.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),t.setDistanceLeft()}))},C.prototype.center_changed=function(){var e=this.get("bounds");this.get("center");var t=this.get("distance");if(e){var n=(new Zt).get(this.get("center").lat(),this.get("center").lng(),t,a,l);o.setPath(n);var i=e.getNorthEast().lat(),s=e.getNorthEast().lng(),r=e.getSouthWest().lat(),c=e.getSouthWest().lng(),g=new google.maps.LatLng(i,this.get("center").lng()),p=new google.maps.LatLng(this.get("center").lat(),s),u=new google.maps.LatLng(r,this.get("center").lng()),d=new google.maps.LatLng(this.get("center").lat(),c);this.set("sizerTop_position",g),this.set("sizerRight_position",p),this.set("sizerBottom_position",u),this.set("sizerLeft_position",d),this.set("startPin_position",n[1]),this.set("endPin_position",n[n.length-2])}},C.prototype.setDistanceTop=function(){var e=this.get("sizerTop_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Zt).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[1]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},C.prototype.setDistanceRight=function(){var e=this.get("sizerRight_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Zt).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[1]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},C.prototype.setDistanceBottom=function(){var e=this.get("sizerBottom_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Zt).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[1]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},C.prototype.setDistanceLeft=function(){var e=this.get("sizerLeft_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Zt).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[1]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180))},new I(e)}}class Ft{centerPoint=null;startHeading=0;endHeading=160;constructor(){}get(e,t,o,n,i){this.centerPoint=new google.maps.LatLng(e,t);var s=o/6378137*(180/Math.PI),r=s/Math.cos(e*(Math.PI/180)),a=[],l=0,c=0;i-n<0&&(i+=360);for(var g=n*Math.PI/180,p=i*Math.PI/180,u=0;g<p;u++)g=(n+u)*Math.PI/180,l=e+s*Math.cos(g),c=t+r*Math.sin(g),a.push(new google.maps.LatLng(l,c));return a.push(a[0]),a}reduce(e,t){for(var o=[],n=0;n<e.getLength()-2;n++)n%5==0&&o.push(e.getAt(n));return o.push(e.getAt(e.getLength()-2)),o.push(e.getAt(e.getLength()-1)),t?o.reverse():o}edit(e,t,o,n,i,s,r){var a=0,l=160,c=null,g=null,p=null,u=null,d=null;if(s){var h='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" width="48" height="48">';h+='<path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" />',h+='<path fill="rgba(255,255,255,1)" stroke="#303030" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" />',h+="</svg>";var m={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(h),anchor:new google.maps.Point(24,24),id:"sizerIconTop"},f={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(h),anchor:new google.maps.Point(24,24),id:"sizerIconRight"},v={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(h),anchor:new google.maps.Point(24,24),id:"sizerIconBottom"},y={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(h),anchor:new google.maps.Point(24,24),id:"sizerIconLeft"},L={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(h),anchor:new google.maps.Point(24,24),id:"centerIcon"};0;var I={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,60),id:"handleIconUp"};0;var C={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 52 52" style="enable-background:new 0 0 52 52;" xml:space="preserve"><g transform="scale(0.4 0.4) rotate(180 26 26)"><path style="fill:#ffa500;" d="M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0 C6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z"/><g transform="translate(13.2 5.9) scale(0.8 0.8)"><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 15.78125 0.0546875 C 15.710938 0.0859375 14.742188 1.03125 13.625 2.148438 C 11.136719 4.644531 11.257812 4.351562 12.300781 5.386719 C 12.957031 6.050781 13.011719 6.09375 13.25 6.09375 C 13.480469 6.09375 13.542969 6.050781 14.0625 5.53125 L 14.625 4.96875 L 14.625 8.019531 C 14.625 11.261719 14.636719 11.398438 14.925781 11.554688 C 15.09375 11.648438 16.90625 11.648438 17.074219 11.554688 C 17.363281 11.398438 17.375 11.261719 17.375 8.019531 L 17.375 4.96875 L 17.9375 5.53125 C 18.457031 6.050781 18.519531 6.09375 18.75 6.09375 C 18.988281 6.09375 19.042969 6.050781 19.699219 5.386719 C 20.742188 4.351562 20.867188 4.648438 18.34375 2.125 C 16.210938 -0.0078125 16.105469 -0.0859375 15.78125 0.0546875 Z M 15.78125 0.0546875 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 4.21875 11.617188 C 4.148438 11.648438 3.179688 12.59375 2.0625 13.710938 C 0.0703125 15.710938 0.03125 15.75 0.03125 16 C 0.03125 16.25 0.0703125 16.289062 2.113281 18.324219 C 4.648438 20.867188 4.351562 20.742188 5.386719 19.699219 C 6.050781 19.042969 6.09375 18.988281 6.09375 18.75 C 6.09375 18.519531 6.050781 18.457031 5.53125 17.9375 L 4.96875 17.375 L 8.019531 17.375 C 11.261719 17.375 11.398438 17.363281 11.554688 17.074219 C 11.648438 16.90625 11.648438 15.09375 11.554688 14.925781 C 11.398438 14.636719 11.261719 14.625 8.019531 14.625 L 4.96875 14.625 L 5.53125 14.0625 C 6.050781 13.542969 6.09375 13.480469 6.09375 13.25 C 6.09375 13.011719 6.050781 12.957031 5.40625 12.3125 C 4.699219 11.613281 4.5 11.492188 4.21875 11.617188 Z M 4.21875 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 27.34375 11.617188 C 27.273438 11.648438 26.925781 11.976562 26.5625 12.335938 C 25.949219 12.957031 25.90625 13.011719 25.90625 13.25 C 25.90625 13.480469 25.949219 13.542969 26.46875 14.0625 L 27.03125 14.625 L 23.980469 14.625 C 20.738281 14.625 20.601562 14.636719 20.445312 14.925781 C 20.351562 15.09375 20.351562 16.90625 20.445312 17.074219 C 20.601562 17.363281 20.738281 17.375 23.980469 17.375 L 27.03125 17.375 L 26.46875 17.9375 C 25.949219 18.457031 25.90625 18.519531 25.90625 18.75 C 25.90625 18.988281 25.949219 19.042969 26.613281 19.699219 C 27.648438 20.742188 27.351562 20.867188 29.886719 18.324219 C 31.929688 16.289062 31.96875 16.25 31.96875 16 C 31.96875 15.75 31.929688 15.710938 29.90625 13.6875 C 27.773438 11.554688 27.675781 11.476562 27.34375 11.617188 Z M 27.34375 11.617188 "/><path style=" stroke:none;fill-rule:nonzero;fill:rgb(255,255,255);fill-opacity:1;" d="M 14.917969 20.445312 C 14.636719 20.605469 14.625 20.757812 14.625 23.980469 L 14.625 27.03125 L 14.0625 26.46875 C 13.542969 25.949219 13.480469 25.90625 13.25 25.90625 C 13.011719 25.90625 12.957031 25.949219 12.300781 26.613281 C 11.257812 27.648438 11.132812 27.351562 13.675781 29.886719 C 15.710938 31.929688 15.75 31.96875 16 31.96875 C 16.25 31.96875 16.289062 31.929688 18.324219 29.886719 C 20.867188 27.351562 20.742188 27.648438 19.699219 26.613281 C 19.042969 25.949219 18.988281 25.90625 18.75 25.90625 C 18.519531 25.90625 18.457031 25.949219 17.9375 26.46875 L 17.375 27.03125 L 17.375 23.980469 C 17.375 20.738281 17.363281 20.601562 17.074219 20.445312 C 16.90625 20.355469 15.070312 20.355469 14.917969 20.445312 Z M 14.917969 20.445312 "/></g></g></svg>'),anchor:new google.maps.Point(30,0),id:"handleIconDown"},b='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" width="48" height="48">';b+='<path fill="rgba(255,255,255,0.01)" d="M 0, 24 a 24,24 0 1,0 48,0 a 24,24 0 1,0 -48,0" />',b+='<path fill="rgba(255,255,255,1)" stroke="'+t.strokeColor+'" stroke-width="1" d="M24 24 m-4,0 a 4,4,0 0,1 8,0 a 4,4 0 0,1 -8,0z" />',b+="</svg>";var w={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(b),anchor:new google.maps.Point(24,24),id:"startPinIcon"},k={url:"data:image/svg+xml;charset=UTF-8;base64,"+btoa(b),anchor:new google.maps.Point(24,24),id:"endPinIcon"}}else m={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconTop"},f={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconRight"},v={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconBottom"},y={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"sizerIconLeft"},L={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"centerIcon"},w={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"startPinIcon"},k={path:"M4 4m-4,0a4,4,0 0,1 8,0a 4,4 0 0,1 -8,0z",fillColor:"#ffffff",fillOpacity:1,anchor:new google.maps.Point(4,4),strokeWeight:1,strokeOpacity:1,strokeColor:"#303030",scale:1,id:"endPinIcon"};function M(e,t){this.set("map",e),this.set("position",n),(c=new google.maps.Marker({icon:L,draggable:!0,raiseOnDrag:!1,title:"Move me!",id:"centerMarker"})).bindTo("map",this),c.bindTo("position",this);var i=new P;return i.bindTo("map",this),i.bindTo("center",this,"position"),this.bindTo("distance",i),this.bindTo("bounds",i),s&&(google.maps.event.addListener(c,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"centerIcon"==c.getIcon().id?c.setIcon(C):c.setIcon(L)})),google.maps.event.addListener(c,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),c.setIcon(C)})),r.push(c)),o}function P(){o=new google.maps.Polygon({id:t.id,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,isHole:t.isHole}),this.set("distance",i),this.bindTo("bounds",o),t.setVisible(!1),o.bindTo("map",this);var e=new google.maps.Circle({strokeColor:"#000000",strokeOpacity:.2,strokeWeight:2,fillColor:"#000000",fillOpacity:0});this.bindTo("bounds",e),e.bindTo("center",this),e.bindTo("map",this),e.bindTo("radius",this),this.addSizerTop_(),this.addSizerRight_(),this.addSizerBottom_(),this.addSizerLeft_(),this.addStartPin_(),this.addEndPin_()}return M.prototype=new google.maps.MVCObject,P.prototype=new google.maps.MVCObject,P.prototype.distance_changed=function(){this.set("radius",this.get("distance"))},P.prototype.addStartPin_=function(){var e=new google.maps.Marker({icon:w,draggable:!0,raiseOnDrag:!1,title:"Drag me!",id:"startPin"});e.bindTo("map",this),e.bindTo("position",this,"startPin_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"startPinIcon"==e.getIcon().id?a>90&&a<270?e.setIcon(C):e.setIcon(I):e.setIcon(w)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),a>90&&a<270?e.setIcon(C):e.setIcon(I)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){var e=t.get("startPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);a=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,5,a)):n>2e3&&t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,a)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){var e=t.get("startPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);a=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,5,a)):n>2e3&&t.set("startPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,a)),t.setDistanceRight()}))},P.prototype.addEndPin_=function(){var e=new google.maps.Marker({icon:k,draggable:!0,crossOnDrag:!1,title:"Drag me!",id:"endPin"});e.bindTo("map",this),e.bindTo("position",this,"endPin_position");var t=this;s&&(google.maps.event.addListener(e,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"endPinIcon"==e.getIcon().id?l>90&&l<270?e.setIcon(C):e.setIcon(I):e.setIcon(k)})),google.maps.event.addListener(e,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),l>90&&l<270?e.setIcon(C):e.setIcon(I)})),r.push(e)),google.maps.event.addListener(e,"drag",(function(){var e=t.get("endPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);l=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,5,l)):n>2e3&&t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,l)),t.setDistanceRight()})),google.maps.event.addListener(e,"dragend",(function(){var e=t.get("endPin_position"),o=t.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,e);l=google.maps.geometry.spherical.computeHeading(o,e),n<5?t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,5,l)):n>2e3&&t.set("endPin_position",google.maps.geometry.spherical.computeOffset(o,2e3,l)),t.setDistanceRight()}))},P.prototype.addSizerTop_=function(){(g=new google.maps.Marker({icon:m,draggable:!0,crossOnDrag:!1,title:"I'm the top radius sizer, drag me!",cursor:"row-resize",id:"sizerTop"})).bindTo("map",this),g.bindTo("position",this,"sizerTop_position");var e=this;s&&(google.maps.event.addListener(g,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"sizerIconTop"==g.getIcon().id?g.setIcon(I):g.setIcon(m)})),google.maps.event.addListener(g,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),g.setIcon(I)})),r.push(g)),google.maps.event.addListener(g,"drag",(function(){e.set("sizerTop_position",new google.maps.LatLng(e.get("sizerTop_position").lat(),e.get("center").lng()));var t=e.get("sizerTop_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&e.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),e.setDistanceTop()})),google.maps.event.addListener(g,"dragend",(function(){e.set("sizerTop_position",new google.maps.LatLng(e.get("sizerTop_position").lat(),e.get("center").lng()));var t=e.get("sizerTop_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,5,0)):n>2e3&&e.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(o,2e3,0)),e.setDistanceTop()}))},P.prototype.addSizerRight_=function(){(u=new google.maps.Marker({icon:f,draggable:!0,crossOnDrag:!1,title:"I'm the right radius sizer, drag me!",cursor:"col-resize",id:"sizerRight"})).bindTo("map",this),u.bindTo("position",this,"sizerRight_position");var e=this;s&&(google.maps.event.addListener(u,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"sizerIconRight"==u.getIcon().id?u.setIcon(C):u.setIcon(f)})),google.maps.event.addListener(u,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),u.setIcon(C)})),r.push(u)),google.maps.event.addListener(u,"drag",(function(){e.set("sizerRight_position",new google.maps.LatLng(e.get("center").lat(),e.get("sizerRight_position").lng()));var t=e.get("sizerRight_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&e.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),e.setDistanceRight()})),google.maps.event.addListener(u,"dragend",(function(){e.set("sizerRight_position",new google.maps.LatLng(e.get("center").lat(),e.get("sizerRight_position").lng()));var t=e.get("sizerRight_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,5,90)):n>2e3&&e.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(o,2e3,90)),e.setDistanceRight()}))},P.prototype.addSizerBottom_=function(){(d=new google.maps.Marker({icon:v,draggable:!0,crossOnDrag:!1,title:"I'm the bottom radius sizer, drag me!",cursor:"row-resize",id:"sizerBottom"})).bindTo("map",this),d.bindTo("position",this,"sizerBottom_position");var e=this;s&&(google.maps.event.addListener(d,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"sizerIconBottom"==d.getIcon().id?d.setIcon(C):d.setIcon(v)})),google.maps.event.addListener(d,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),d.setIcon(C)})),r.push(d)),google.maps.event.addListener(d,"drag",(function(){e.set("sizerBottom_position",new google.maps.LatLng(e.get("sizerBottom_position").lat(),e.get("center").lng()));var t=e.get("sizerBottom_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&e.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),e.setDistanceBottom()})),google.maps.event.addListener(d,"dragend",(function(){e.set("sizerBottom_position",new google.maps.LatLng(e.get("sizerBottom_position").lat(),e.get("center").lng()));var t=e.get("sizerBottom_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,5,180)):n>2e3&&e.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(o,2e3,180)),e.setDistanceBottom()}))},P.prototype.addSizerLeft_=function(){(p=new google.maps.Marker({icon:y,draggable:!0,crossOnDrag:!1,title:"I'm the left radius sizer, drag me!",cursor:"col-resize",id:"sizerLeft"})).bindTo("map",this),p.bindTo("position",this,"sizerLeft_position");var e=this;s&&(google.maps.event.addListener(p,"click",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),"sizerIconLeft"==p.getIcon().id?p.setIcon(C):p.setIcon(y)})),google.maps.event.addListener(p,"dragstart",(function(){r.length>0&&r.forEach((function(e,t){"centerMarker"==e.id&&"centerIcon"!=e.getIcon().id?e.setIcon(L):"startPin"==e.id&&"startPinIcon"!=e.getIcon().id?e.setIcon(w):"endPin"==e.id&&"endPinIcon"!=e.getIcon().id?e.setIcon(k):"sizerTop"==e.id&&"sizerIconTop"!=e.getIcon().id?e.setIcon(m):"sizerRight"==e.id&&"sizerIconRight"!=e.getIcon().id?e.setIcon(f):"sizerBottom"==e.id&&"sizerIconBottom"!=e.getIcon().id?e.setIcon(v):"sizerLeft"==e.id&&"sizerIconLeft"!=e.getIcon().id&&e.setIcon(y)})),p.setIcon(C)})),r.push(p)),google.maps.event.addListener(p,"drag",(function(){e.set("sizerLeft_position",new google.maps.LatLng(e.get("center").lat(),e.get("sizerLeft_position").lng()));var t=e.get("sizerLeft_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&e.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),e.setDistanceLeft()})),google.maps.event.addListener(p,"dragend",(function(){e.set("sizerLeft_position",new google.maps.LatLng(e.get("center").lat(),e.get("sizerLeft_position").lng()));var t=e.get("sizerLeft_position"),o=e.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(o,t);n<5?e.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,5,270)):n>2e3&&e.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(o,2e3,270)),e.setDistanceLeft()}))},P.prototype.center_changed=function(){var e=this.get("bounds");this.get("center");var t=this.get("distance");if(e){var n=(new Ft).get(this.get("center").lat(),this.get("center").lng(),t,a,l);o.setPath(n);var i=e.getNorthEast().lat(),s=e.getNorthEast().lng(),r=e.getSouthWest().lat(),c=e.getSouthWest().lng(),g=new google.maps.LatLng(i,this.get("center").lng()),p=new google.maps.LatLng(this.get("center").lat(),s),u=new google.maps.LatLng(r,this.get("center").lng()),d=new google.maps.LatLng(this.get("center").lat(),c);this.set("sizerTop_position",g),this.set("sizerRight_position",p),this.set("sizerBottom_position",u),this.set("sizerLeft_position",d),this.set("startPin_position",n[0]),this.set("endPin_position",n[n.length-2])}},P.prototype.setDistanceTop=function(){var e=this.get("sizerTop_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Ft).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[0]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},P.prototype.setDistanceRight=function(){var e=this.get("sizerRight_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Ft).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[0]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},P.prototype.setDistanceBottom=function(){var e=this.get("sizerBottom_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Ft).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[0]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerLeft_position",google.maps.geometry.spherical.computeOffset(t,n,270))},P.prototype.setDistanceLeft=function(){var e=this.get("sizerLeft_position"),t=this.get("center"),n=google.maps.geometry.spherical.computeDistanceBetween(t,e),i=(new Ft).get(t.lat(),t.lng(),n,a,l);o.setPath(i),this.set("startPin_position",i[0]),this.set("endPin_position",i[i.length-2]),this.set("distance",n),this.set("sizerTop_position",google.maps.geometry.spherical.computeOffset(t,n,0)),this.set("sizerRight_position",google.maps.geometry.spherical.computeOffset(t,n,90)),this.set("sizerBottom_position",google.maps.geometry.spherical.computeOffset(t,n,180))},new M(e)}}var jt,Nt={exports:{}};jt||(jt=1,function(e){var t={};function o(e,t){e=Math.round(e*t),(e<<=1)<0&&(e=~e);for(var o="";e>=32;)o+=String.fromCharCode(63+(32|31&e)),e>>=5;return o+=String.fromCharCode(e+63)}function n(e){for(var t=[],o=0;o<e.length;o++)t.push(e[o].slice().reverse());return t}t.decode=function(e,t){for(var o,n=0,i=0,s=0,r=[],a=0,l=0,c=null,g=Math.pow(10,t||5);n<e.length;){c=null,a=0,l=0;do{l|=(31&(c=e.charCodeAt(n++)-63))<<a,a+=5}while(c>=32);o=1&l?~(l>>1):l>>1,a=l=0;do{l|=(31&(c=e.charCodeAt(n++)-63))<<a,a+=5}while(c>=32);i+=o,s+=1&l?~(l>>1):l>>1,r.push([i/g,s/g])}return r},t.encode=function(e,t){if(!e.length)return"";for(var n=Math.pow(10,t||5),i=o(e[0][0],n)+o(e[0][1],n),s=1;s<e.length;s++){var r=e[s],a=e[s-1];i+=o(r[0]-a[0],n),i+=o(r[1]-a[1],n)}return i},t.fromGeoJSON=function(e,o){if(e&&"Feature"===e.type&&(e=e.geometry),!e||"LineString"!==e.type)throw new Error("Input must be a GeoJSON LineString");return t.encode(n(e.coordinates),o)},t.toGeoJSON=function(e,o){return{type:"LineString",coordinates:n(t.decode(e,o))}},e.exports&&(e.exports=t)}(Nt));class Vt{constructor(e){var t,o,n,i,s,r,a=this,l=e,c=null,g=null,p=[],u=[],d=[],h={},m=[],f=[],v=[],y=[],L=[],I=[],C=[],b=[],w=[],k=[],M=[],P=[],z=null,x=null,E=null,S=null,O=null,_=20,T=20,B=[];function R(e,t="white"){var o=D(e.Poly),n=o.y,i=o.x,s=`${e.Area} ha`,r=function(e,t,o,n){var i=document.createElement("div");i.id="locname"+e,i.style.display="inline-block",i.style.fontFamily="Arial, sans-serif",i.style.fontSize=n+"px",i.textContent=t;var s=document.createElement("div");s.id="locarea"+e,s.style.display="inline-block",s.style.fontFamily="Arial, sans-serif",s.style.fontSize=n+"px",s.textContent=o;var r=document.createElement("div");r.id="locnameContainer"+e,r.style.position="absolute",r.style.top="0",r.style.left="-1000px";var a=document.createElement("div");a.id="locareaContainer"+e,a.style.position="absolute",a.style.top="0",a.style.left="-1000px",r.appendChild(i),a.appendChild(s),document.body.appendChild(r),document.body.appendChild(a);var l=document.getElementById("locname"+e),c=document.getElementById("locarea"+e),g=document.getElementById("locnameContainer"+e),p=document.getElementById("locareaContainer"+e),u=l.clientWidth,d=c.clientWidth;return g.remove(),p.remove(),{nameWidth:u,areaWidth:d}}(e.Id,e.LocationName,s,8),a=`<svg viewBox="0 0 200 30" xmlns="http://www.w3.org/2000/svg">\n <text x="0" y="12" fill="${t}" font-family="Arial, sans-serif" font-size="8px">${Mt.clearString(e.LocationName)}</text>\n <line x1="0" y1="15" x2="${Math.max(r.nameWidth,r.areaWidth)}" y2="15" style="stroke:${t};stroke-width:0.6"/>\n <text x="0" y="24" fill="${t}" font-family="Arial, sans-serif" font-size="8px">${s}</text>\n </svg>`,c=new google.maps.Marker({map:l,position:new google.maps.LatLng(parseFloat(n),parseFloat(i)),icon:{anchor:new google.maps.Point(1.3*r.nameWidth/2,21),url:`data:image/svg+xml;utf-8, ${a}`},id:`pl_${e.Id}`});y.push(c)}function D(e){var t=_t(e,1e-5);return{x:t[0],y:t[1]}}function A(){j(),v.forEach((function(e){p.push(google.maps.event.addListener(e,"mouseover",(function(t){j(),U(t,e.content)}))),p.push(google.maps.event.addListener(e,"mousemove",Z)),p.push(google.maps.event.addListener(e,"mouseout",j)),p.push(google.maps.event.addListener(e,"click",(function(e){j(),h.FieldOnClick(this.id)})))}))}function U(e,t){!O&&e&&((O=document.createElement("div")).style.cssText="background: rgba(0, 0, 0, 0.5); color: #ffffff; border-radius: 4px; padding: 5px 10px; text-align: left; font-size: 12px; position: fixed;",O.innerHTML=t,O.style.top=e.domEvent.clientY+window.scrollY+T+"px",O.style.left=e.domEvent.clientX+window.scrollX+_+"px",document.body.appendChild(O))}function W(e,t){!O&&e&&((O=document.createElement("div")).style.cssText="background: rgba(0, 0, 0, 0.5); color: #ffffff; border-radius: 4px; padding: 5px 10px; text-align: left; font-size: 12px; position: fixed;",O.innerHTML=t,O.style.top=e.clientY+window.scrollY+T+"px",O.style.left=e.clientX+window.scrollX+_+"px",document.body.appendChild(O))}function Z(e){O&&e&&(O.style.top=e.domEvent.clientY+window.scrollY+T+"px",O.style.left=e.domEvent.clientX+window.scrollX+_+"px")}function F(e){O&&e&&(O.style.top=e.clientY+window.scrollY+T+"px",O.style.left=e.clientX+window.scrollX+_+"px")}function j(){O&&(document.body.removeChild(O),O=null)}function N(e,t,o="field",n,i,s){if(l.getMapCapabilities().isAdvancedMarkersAvailable&&e&&e.length>0){var r=new google.maps.LatLngBounds;if(e.forEach((function(e){var n,i=new google.maps.LatLngBounds;"farm"===o?(i.extend(new google.maps.LatLng(e.minLat,e.minLng)),i.extend(new google.maps.LatLng(e.maxLat,e.maxLng))):e.Poly[0].forEach((function(e){i.extend(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])))})),r.extend(i.getCenter());var s=function(e){const{iconName:t="pinIcon",fillColor:o="#f1a81e",width:n=30,height:i=41,strokeColor:s="#000000",strokeWidth:r=1}=e,a="http://www.w3.org/2000/svg",l=document.createElementNS(a,"svg");l.setAttribute("viewBox","0 0 57.64 83.57"),l.setAttribute("width",n),l.setAttribute("height",i),l.style.opacity=.8,l.style.zIndex=11e3;const c=document.createElementNS(a,"defs"),g=document.createElementNS(a,"clipPath");g.setAttribute("id",`clippath-${t}`);const p=document.createElementNS(a,"rect");p.setAttribute("width","57.64"),p.setAttribute("height","83.57"),c.appendChild(g),g.appendChild(p);const u=document.createElementNS(a,"style");u.textContent=`\n .cls-1 { clip-path: url(#clippath-${t}); }\n .cls-2 { fill: none; stroke: ${s}; stroke-width: ${r}; }\n .cls-3 { fill: ${o}; }\n `,c.appendChild(u),l.appendChild(c);const d=document.createElementNS(a,"g");d.setAttribute("class","cls-1");const h={pinIcon:"M16.01,31.23c-.07,7.22,5.73,12.51,11.98,12.86,3.84.22,7.17-1.04,9.9-3.73,2.36-2.32,3.64-5.2,3.77-8.49.31-7.8-5.87-13.21-12.29-13.47-7.66-.3-13.54,6.01-13.37,12.83M28.82.1c.43,0,.87-.03,1.3,0,.98.07,1.97.16,2.95.27,1.85.21,3.65.69,5.4,1.31,1.89.66,3.68,1.52,5.38,2.57,1.49.91,2.88,1.95,4.18,3.12,1.68,1.51,3.21,3.15,4.45,5.04.84,1.29,1.65,2.62,2.35,4,1.05,2.06,1.76,4.25,2.2,6.52.25,1.25.41,2.53.5,3.81.1,1.31.15,2.64.07,3.95-.15,2.38-.58,4.72-1.32,6.99-.64,1.97-1.49,3.87-2.54,5.67-1.07,1.83-2.08,3.7-3.13,5.54-.82,1.44-1.67,2.87-2.49,4.31-.8,1.39-1.58,2.78-2.37,4.17-.83,1.45-1.68,2.89-2.51,4.33-.68,1.18-1.34,2.37-2.02,3.55-1.3,2.26-2.61,4.52-3.91,6.79-1.02,1.77-2.02,3.55-3.04,5.32-.92,1.6-1.79,3.24-2.79,4.79-1.33,2.04-4.29,1.81-5.44-.18-1.33-2.3-2.67-4.6-3.99-6.91-1.42-2.46-2.82-4.93-4.23-7.39-1.18-2.06-2.36-4.12-3.54-6.18-1.36-2.37-2.74-4.73-4.1-7.1-1.29-2.25-2.57-4.5-3.83-6.76-1.21-2.17-2.46-4.32-3.6-6.53-1-1.93-1.66-4.01-2.09-6.14-.31-1.54-.58-3.09-.58-4.67,0-.48-.08-.96-.06-1.43.07-1.28.16-2.57.28-3.85.18-1.93.66-3.8,1.3-5.62.75-2.13,1.72-4.16,2.94-6.06,1.27-1.98,2.75-3.79,4.45-5.41,1.55-1.47,3.26-2.75,5.1-3.85,1.63-.98,3.36-1.77,5.14-2.42,1.61-.59,3.28-1.02,4.97-1.26,1.53-.22,3.09-.28,4.63-.41v.1"},m=document.createElementNS(a,"path");m.setAttribute("class","cls-3"),m.setAttribute("d",h[t]||"");const f=document.createElementNS(a,"path");return f.setAttribute("class","cls-2"),f.setAttribute("d",h[t]||""),d.appendChild(m),d.appendChild(f),l.appendChild(d),l}({iconName:t.name,fillColor:t.style.color,width:t.style.width,height:t.style.height,strokeColor:t.style.strokeColor,strokeWidth:t.style.strokeWidth});n=new google.maps.marker.AdvancedMarkerElement({map:l,position:i.getCenter(),content:s});const a="farm"===o?`${e.farmId}|${e.farmOrganization}|${e.farmName}`:`${e.Id}|${e.OrganisationName}|${e.FarmName}`;n.setAttribute("id",a),"farm"===o?u.push(n.addListener("click",(()=>{j(),h.AdvancedMarkerOnClick({type:"SUCCESS",message:"farm marker with id "+n.id+" clicked",code:200,data:e})}))):u.push(n.addListener("click",(()=>{j(),h.AdvancedMarkerOnClick({type:"SUCCESS",message:"field marker with id "+n.id+" clicked",code:200,data:e})}))),M.push(n)})),"farm"===o){if(n){var a=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){te(l.getCenter(),i,s)}));d.push(a),l.fitBounds(r)}j(),M.forEach((function(e){var t=e.id.split("|");u.push(e.content.addEventListener("mouseover",(function(e){j(),W(e,t[1]+"<br>Farm "+t[2])}))),u.push(e.content.addEventListener("mousemove",F)),u.push(e.content.addEventListener("mouseout",j))}))}}}function V(){M.forEach((function(e){e.setMap(null),e=null})),M=[]}function H(){p.forEach((function(e){google.maps.event.removeListener(e)})),p=[]}function $(){u.forEach((function(e){google.maps.event.removeListener(e)})),u=[]}function G(){d.forEach((function(e){google.maps.event.removeListener(e)})),d=[]}function Y(){L.forEach((function(e,t){e.setMap(null),e=null})),L=[]}function J(e,a,c,g,p,u,d){var h;if(void 0===n||void 0===i){var v=l.getBounds();v&&(t=Math.abs(v.getSouthWest().lat()-v.getNorthEast().lat()),o=Math.abs(v.getNorthEast().lng()-v.getSouthWest().lng()),n=o/a,i=t/c)}f=[],m.forEach((function(e){for(var t=e.getPath(),o=[],n=0;n<t.length;n++)o.push([t.getAt(n).lng(),t.getAt(n).lat()]);t.getAt(0).lng()==t.getAt(t.length-1).lng()&&t.getAt(0).lat()==t.getAt(t.length-1).lat()||o.push([t.getAt(0).lng(),t.getAt(0).lat()]),f.push(o)}));var y=D(f);s=y.y,r=y.x;for(var L=20;L>0;L--){var I=[];I.push([r-2*L*n,s+1.5*L*i]),I.push([r+2*L*n,s+1.5*L*i]),I.push([r+2*L*n,s-1.5*L*i]),I.push([r-2*L*n,s-1.5*L*i]),I.push([r-2*L*n,s+1.5*L*i]),f.push(I);var C=0;if(I.forEach((function(e,t){google.maps.geometry.poly.containsLocation(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])),m[0])||C++})),0==C){if(!(f.length>2)){h=q(L,e,g,p,u,d);break}for(var b=0,w=1;w<f.length-1;w++)for(var k=w+1;k<f.length;k++)K(f[w],f[k])&&b++;if(0==b){h=q(L,e,g,p,u,d);break}f.pop()}else f.pop()}return h}function K(e,t){const o=new google.maps.Polygon({paths:e.map((e=>new google.maps.LatLng(e[1],e[0])))}),n=new google.maps.Polygon({paths:t.map((e=>new google.maps.LatLng(e[1],e[0])))});for(let e=0;e<t.length;e++){const n=new google.maps.LatLng(t[e][1],t[e][0]);if(google.maps.geometry.poly.containsLocation(n,o))return!0}for(let t=0;t<e.length;t++){const o=new google.maps.LatLng(e[t][1],e[t][0]);if(google.maps.geometry.poly.containsLocation(o,n))return!0}return!1}function q(e,t,o,a,c,g){var p=[];p.push(new google.maps.LatLng(s+1.5*e*i,r-2*e*n)),p.push(new google.maps.LatLng(s+1.5*e*i,r+2*e*n)),p.push(new google.maps.LatLng(s-1.5*e*i,r+2*e*n)),p.push(new google.maps.LatLng(s-1.5*e*i,r-2*e*n)),p.reverse();var u=Date.now()+Math.floor(1e5*Math.random()),h=new google.maps.Polygon({path:p,id:u.toString(),content:"",strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:10200,clickable:!0,editable:!1,draggable:!1,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:!0,latitude:0,longitude:0,poly:0,area:0,perimeter:0});m.push(h);var f=new google.maps.LatLngBounds;m[0].getPath().forEach((function(e,t){f.extend(e)}));var v=!1,y=google.maps.event.addListener(l,"bounds_changed",(function(){if(!v){var e=l.getProjection().fromLatLngToPoint(f.getSouthWest()),t=l.getProjection().fromLatLngToPoint(f.getNorthEast()),n=l.getZoom(),i=1<<n;(t.x-e.x)*i>=c&&l.setZoom(n-1),te(f.getCenter(),o,a),v=!v,z=(new Et).edit(l,h,z,g)}}));return d.push(y),l.fitBounds(f),u}function X(e,t,o,n,i,s,r,a,c){var g=[];i.forEach((function(e){g.push(new google.maps.LatLng(e.lat(),e.lng()))}));var p=Date.now()+Math.floor(1e5*Math.random()),u=new google.maps.Polygon({map:l,path:g,id:p.toString(),content:"",strokeColor:e.strokeColor,strokeOpacity:e.strokeOpacity,strokeWeight:e.strokeWeight,fillColor:e.fillColor,fillOpacity:e.fillOpacity,zIndex:10200,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!0,isCircleSector:!1,isCircleSegment:!1,isHole:!0,latitude:0,longitude:0,poly:0,area:0,perimeter:0});m.push(u),x=(x=new Wt).edit(l,u,x,s,r,a,c);var h=new google.maps.LatLngBounds;m[0].getPath().forEach((function(e,t){h.extend(e)}));var f=!1,v=google.maps.event.addListener(l,"bounds_changed",(function(){if(!f){var e=l.getProjection().fromLatLngToPoint(h.getSouthWest()),i=l.getProjection().fromLatLngToPoint(h.getNorthEast()),s=l.getZoom(),r=1<<s;(i.x-e.x)*r>=n&&l.setZoom(s-1),te(h.getCenter(),t,o),f=!f}}));return d.push(v),l.fitBounds(h),p}function Q(e,t,o,n,i,s,r,a,c){var g=[];i.forEach((function(e){g.push(new google.maps.LatLng(e.lat(),e.lng()))}));var p=Date.now()+Math.floor(1e5*Math.random()),u=new google.maps.Polygon({map:l,path:g,id:p.toString(),content:"",strokeColor:e.strokeColor,strokeOpacity:e.strokeOpacity,strokeWeight:e.strokeWeight,fillColor:e.fillColor,fillOpacity:e.fillOpacity,zIndex:10200,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!1,isCircleSector:!0,isCircleSegment:!1,isHole:!0,latitude:0,longitude:0,poly:0,area:0,perimeter:0});m.push(u),E=(E=new Zt).edit(l,u,E,s,r,a,c);var h=new google.maps.LatLngBounds;m[0].getPath().forEach((function(e,t){h.extend(e)}));var f=!1,v=google.maps.event.addListener(l,"bounds_changed",(function(){if(!f){var e=l.getProjection().fromLatLngToPoint(h.getSouthWest()),i=l.getProjection().fromLatLngToPoint(h.getNorthEast()),s=l.getZoom(),r=1<<s;(i.x-e.x)*r>=n&&l.setZoom(s-1),te(h.getCenter(),t,o),f=!f}}));return d.push(v),l.fitBounds(h),p}function ee(e,t,o,n,i,s,r,a,c){var g=[];i.forEach((function(e){g.push(new google.maps.LatLng(e.lat(),e.lng()))}));var p=Date.now()+Math.floor(1e5*Math.random()),u=new google.maps.Polygon({map:l,path:g,id:p.toString(),content:"",strokeColor:e.strokeColor,strokeOpacity:e.strokeOpacity,strokeWeight:e.strokeWeight,fillColor:e.fillColor,fillOpacity:e.fillOpacity,zIndex:10200,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!1,isCircleSector:!1,isCircleSegment:!0,isHole:!0,latitude:0,longitude:0,poly:0,area:0,perimeter:0});m.push(u),S=(S=new Ft).edit(l,u,S,s,r,a,c);var h=new google.maps.LatLngBounds;m[0].getPath().forEach((function(e,t){h.extend(e)}));var f=!1,v=google.maps.event.addListener(l,"bounds_changed",(function(){if(!f){var e=l.getProjection().fromLatLngToPoint(h.getSouthWest()),i=l.getProjection().fromLatLngToPoint(h.getNorthEast()),s=l.getZoom(),r=1<<s;(i.x-e.x)*r>=n&&l.setZoom(s-1),te(h.getCenter(),t,o),f=!f}}));return d.push(v),l.fitBounds(h),p}function te(e,t,o){var n=1<<l.getZoom(),i=l.getProjection().fromLatLngToPoint(e),s=new google.maps.Point(t/n||0,o/n||0),r=new google.maps.Point(i.x-s.x,i.y+s.y),a=l.getProjection().fromPointToLatLng(r);l.setCenter(a)}function oe(e,t,o,n,i,s,r,a,g){G(),H(),$(),V(),Y(),function(e,t,o,n,i,s,r,a,g){var u,m,f=e,v=null,y=null;c=new google.maps.LatLngBounds,f.forEach((function(e){u=e.poly.split(","),m=[],u.forEach((function(e){var t=Ut.decode(e);y=[],t.forEach((function(e){y.push(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1]))),c.extend(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1])))})),m.push(y)}));var t=e.name;"Ward"==e.type&&(t="Ward "+e.name),v=new google.maps.Polygon({paths:m,strokeColor:"#000000",strokeOpacity:1,strokeWeight:3,fillColor:"#000000",fillOpacity:.3,zIndex:1e4,id:e.id,content:t,type:e.type,map:l}),L.push(v)})),function(e){j(),L.forEach((function(t){p.push(google.maps.event.addListener(t,"mouseover",(function(e){t.setOptions({strokeColor:"#f1a81e",zIndex:10010}),j(),U(e,t.content)}))),p.push(google.maps.event.addListener(t,"mousemove",Z)),p.push(google.maps.event.addListener(t,"mouseout",(function(e){t.setOptions({strokeColor:"#000000",zIndex:1e4}),j()}))),e||p.push(google.maps.event.addListener(t,"click",(function(e){j(),h.SAAdminPolyOnClick(this.id)})))}))}(g);var I=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){te(l.getCenter(),s,r)}));d.push(I),l.fitBounds(c)}(e,0,0,0,0,s,r,0,g)}function ne(e,t,o,n,i,s){G(),H(),$(),V(),Y();var r=google.maps.event.addListener(l,"dragend",(function(){l.getZoom()>=12&&l.getZoom()<=17?h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on dragend",code:200,data:null}):(G(),Y(),l.getZoom()<12&&l.setZoom(12),l.getZoom()>17&&l.setZoom(17),h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on dragend, zoom outside range",code:200,data:null}))}));d.push(r);var a=google.maps.event.addListener(l,"zoom_changed",(function(){l.getZoom()>=12&&l.getZoom()<=17?h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on zoom changed",code:200,data:null}):(G(),Y(),l.getZoom()<12&&l.setZoom(12),l.getZoom()>17&&l.setZoom(17),h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on zoom changed, zoom outside range",code:200,data:null}))}));d.push(a);var g=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){l.getZoom()>=12&&l.getZoom()<=17?h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on bounds changed",code:200,data:null}):(G(),Y(),l.getZoom()<12&&l.setZoom(12),l.getZoom()>17&&l.setZoom(17),h.ReloadCadastralData({type:"SUCCESS",message:"Reload cadastral data on bounds changed, zoom outside range",code:200,data:null}))}));d.push(g),l.getZoom()>=12&&l.getZoom()<=17&&function(e,t,o,n,i,s){var r=e.parentFarms,a=e.farmPortions,g=e.erven;r.length>0&&r.forEach((function(e){s&&(c=new google.maps.LatLngBounds);var t=JSON.parse(e.geojson,!0);if("Polygon"==t.type){var o=[],n=[];t.coordinates[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}else if("MultiPolygon"==t.type){o=[];t.coordinates.forEach((function(e,t){var n=[];e[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}))}var i=e.geomarea/1e4,r="Farm: "+e.name+"<br>"+e.lpi+"<br>"+i.toFixed(2)+" ha",a=new google.maps.Polygon({map:l,paths:o,strokeWeight:5,strokeColor:"#000000",strokeOpacity:1,fillColor:"#000000",fillOpacity:.01,id:e.id,content:r,type:"pf",zIndex:10001});s&&l.fitBounds(c),L.push(a)}));a.length>0&&a.forEach((function(e){s&&(c=new google.maps.LatLngBounds);var t=JSON.parse(e.geojson,!0);if("Polygon"==t.type){var o=[],n=[];t.coordinates[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}else if("MultiPolygon"==t.type){o=[];t.coordinates.forEach((function(e,t){var n=[];e[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}))}var i=e.geomarea/1e4,r="Farm: "+e.farm+"<br>Portion: "+e.name+"<br>"+e.lpi+"<br>"+i.toFixed(2)+" ha",a=new google.maps.Polygon({map:l,paths:o,strokeWeight:3,strokeColor:"#000000",strokeOpacity:1,fillColor:"#000000",fillOpacity:.01,id:e.id,content:r,type:"fp",zIndex:10002});s&&l.fitBounds(c),L.push(a)}));g.length>0&&g.forEach((function(e){s&&(c=new google.maps.LatLngBounds);var t=JSON.parse(e.geojson,!0);if("Polygon"==t.type){var o=[],n=[];t.coordinates[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}else if("MultiPolygon"==t.type){o=[];t.coordinates.forEach((function(e,t){var n=[];e[0].forEach((function(e,t){n.push(new google.maps.LatLng(e[1],e[0])),s&&c.extend(new google.maps.LatLng(e[1],e[0]))})),o.push(n)}))}var i=e.geomarea/1e4,r="Erf: "+e.name+"<br>"+e.lpi+"<br>"+i.toFixed(2)+" ha",a=new google.maps.Polygon({map:l,paths:o,strokeWeight:2,strokeColor:"#000000",strokeOpacity:1,fillColor:"#000000",fillOpacity:.01,id:e.id,content:r,type:"er",zIndex:10003});s&&l.fitBounds(c),L.push(a)}));!function(e){j(),L.forEach((function(t){p.push(google.maps.event.addListener(t,"mouseover",(function(e){"pf"==t.type?t.setOptions({strokeColor:"#f1a81e",strokeWeight:5,zIndex:10011}):"fp"==t.type?t.setOptions({strokeColor:"#f1a81e",strokeWeight:3,zIndex:10012}):"er"==t.type&&t.setOptions({strokeColor:"#f1a81e",strokeWeight:2,zIndex:10013}),j(),U(e,t.content)}))),p.push(google.maps.event.addListener(t,"mousemove",Z)),p.push(google.maps.event.addListener(t,"mouseout",(function(e){"pf"==t.type?t.setOptions({strokeColor:"#000000",strokeWeight:5,zIndex:10001}):"fp"==t.type?t.setOptions({strokeColor:"#000000",strokeWeight:3,zIndex:10002}):"er"==t.type&&t.setOptions({strokeColor:"#000000",strokeWeight:2,zIndex:10003}),j()}))),e||p.push(google.maps.event.addListener(t,"click",(function(e){j(),h.SACadastralPolyOnClick(this.id)})))}))}(i)}(e,0,0,0,i,s)}function ie(e,t,o,n,i,s){G(),H(),$(),V(),Y();var r=google.maps.event.addListener(l,"dragend",(function(){l.getZoom()>=13&&l.getZoom()<=17?h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on dragend",code:200,data:null}):(G(),Y(),l.getZoom()<13&&l.setZoom(13),l.getZoom()>17&&l.setZoom(17),h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on dragend, zoom outside range",code:200,data:null}))}));d.push(r);var a=google.maps.event.addListener(l,"zoom_changed",(function(){l.getZoom()>=13&&l.getZoom()<=17?h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on zoom changed",code:200,data:null}):(G(),Y(),l.getZoom()<13&&l.setZoom(13),l.getZoom()>17&&l.setZoom(17),h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on zoom changed, zoom outside range",code:200,data:null}))}));d.push(a);var g=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){l.getZoom()>=13&&l.getZoom()<=17?h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on bounds changed",code:200,data:null}):(G(),Y(),l.getZoom()<13&&l.setZoom(13),l.getZoom()>17&&l.setZoom(17),h.ReloadDelineatedFieldsData({type:"SUCCESS",message:"Reload delineated fields data on bounds changed, zoom outside range",code:200,data:null}))}));d.push(g),l.getZoom()>=13&&l.getZoom()<=17&&function(e,t,o,n,i,s){var r=e;r&&r.length>0&&r.forEach((function(e){s&&(c=new google.maps.LatLngBounds);var t=e.poly.split(","),o=[];t.forEach((function(e){var t=Ut.decode(e),n=[];t.forEach((function(e){n.push(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1]))),s&&c.extend(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1])))})),o.push(n)}));var n=e.area/1e4,i=e.category+"<br>"+n.toFixed(2)+" ha",r=new google.maps.Polygon({map:l,paths:o,strokeWeight:3,strokeColor:"#000000",strokeOpacity:1,fillColor:"#000000",fillOpacity:.01,id:e.id,content:i,zIndex:10001});s&&l.fitBounds(c),L.push(r)}));!function(e){j(),L.forEach((function(t){p.push(google.maps.event.addListener(t,"mouseover",(function(e){t.setOptions({strokeColor:"#f1a81e",strokeWeight:3,zIndex:10011}),j(),U(e,t.content)}))),p.push(google.maps.event.addListener(t,"mousemove",Z)),p.push(google.maps.event.addListener(t,"mouseout",(function(e){t.setOptions({strokeColor:"#000000",strokeWeight:3,zIndex:10001}),j()}))),e||p.push(google.maps.event.addListener(t,"click",(function(e){j(),h.SADelineatedFieldPolyOnClick(this.id)})))}))}(i)}(e,0,0,0,i,s)}function se(e,t,o,n){var i=e;c=new google.maps.LatLngBounds;var s=!1;if(i.forEach((function(e){var t=new google.maps.LatLng(e.latitude,e.longitude);c.extend(new google.maps.LatLng(e.latitude,e.longitude));var o=new DOMParser,n='<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none">';n+='<g transform="translate(0.5, 4)"><path d="M0,0 32,0 16,27.7Z" stroke="#000000" stroke-width="1" fill="'+e.iconColor+'" fill-opacity="0.9"></path></g>',n+="</svg>";var i=o.parseFromString(n,"image/svg+xml").documentElement,s=new google.maps.marker.AdvancedMarkerElement({map:l,position:t,content:i,zIndex:10002});s.setAttribute("id",e.id+"|"+e.name+"|"+e.companyName+"|"+e.jseAbbreviation+"|"+e.label+"|"+e.capacity+"|"+e.sagisCode),M.push(s)})),i.length>1){var r=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){if(!s){var e=l.getProjection().fromLatLngToPoint(c.getSouthWest()),i=l.getProjection().fromLatLngToPoint(c.getNorthEast()),r=l.getZoom(),a=1<<r;(i.x-e.x)*a>=n&&l.setZoom(r-1),l.getZoom()>16&&l.setZoom(16),te(c.getCenter(),t,o),s=!s}}));d.push(r),l.fitBounds(c)}else if(1==i.length){r=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){s||(te(l.getCenter(),t,o),s=!s)}));l.panTo(new google.maps.LatLng(i[0].latitude,i[0].longitude)),l.setZoom(9)}}function re(e,t,o,n,i,s,r){G(),H(),$(),V(),Y(),function(e,t){var o=null;e.forEach((function(e){if((e.id==t||0===t)&&e&&e.poly&&e.poly.length>0){var n=google.maps.geometry.encoding.decodePath(e.poly,5);o=new google.maps.Polygon({map:l,path:n,strokeColor:"#000000",strokeOpacity:1,strokeWeight:3,fillColor:"#000000",fillOpacity:.3,id:e.id,content:e.regionName,zIndex:1e4}),L.push(o)}}))}(e,o),function(e){j(),L.forEach((function(t){p.push(google.maps.event.addListener(t,"mouseover",(function(e){t.setOptions({strokeColor:"#f1a81e",strokeWeight:3,zIndex:10012}),j(),U(e,t.content)}))),p.push(google.maps.event.addListener(t,"mousemove",Z)),p.push(google.maps.event.addListener(t,"mouseout",(function(e){t.setOptions({strokeColor:"#000000",strokeWeight:3,zIndex:10002}),j()}))),e||p.push(google.maps.event.addListener(t,"click",(function(e){j(),h.CPRPolyOnClick({type:"SUCCESS",message:"CPRPoly clicked",code:200,data:t.id})})))}))}(r),se(t,n,i,s),le()}function ae(e,t,o,n,i,s,r){G(),H(),$(),V(),Y(),function(e,t){var o,n,i=null;e.forEach((function(e){e.id!=t&&0!==t||e&&e.poly&&e.poly.length>0&&(n=[],e.poly.split(",").forEach((function(e){o=google.maps.geometry.encoding.decodePath(e,5),n.push(o)})),i=new google.maps.Polygon({map:l,paths:n,strokeColor:"#000000",strokeOpacity:1,strokeWeight:3,fillColor:"#000000",fillOpacity:.3,id:e.id,content:e.name,zIndex:1e4}),L.push(i))}))}(e,o),function(e){j(),L.forEach((function(t){p.push(google.maps.event.addListener(t,"mouseover",(function(e){t.setOptions({strokeColor:"#f1a81e",strokeWeight:3,zIndex:10012}),j(),U(e,t.content)}))),p.push(google.maps.event.addListener(t,"mousemove",Z)),p.push(google.maps.event.addListener(t,"mouseout",(function(e){t.setOptions({strokeColor:"#000000",strokeWeight:3,zIndex:10002}),j()}))),e||p.push(google.maps.event.addListener(t,"click",(function(e){j(),h.CSProvincePolyOnClick({type:"SUCCESS",message:"CSProvincePoly clicked",code:200,data:t.id})})))}))}(r),se(t,n,i,s),le()}function le(e){j(),M.forEach((function(e){var t=e.id.split("|"),o="<b>"+t[1]+"</b><br>";o+="Company: "+t[2]+" ("+t[3]+")<br>",o+="Type: "+t[4]+"<br>",parseInt(t[5])>0?o+="Capacity: "+t[5]+"t<br>":o+="Capacity: n/a<br>",parseInt(t[6])>0?o+="Sagis Code: "+t[6]:o+="Sagis Code: n/a";var n=e.addListener("click",(function(e){h.GSMarkerOnClick({type:"SUCCESS",message:"GSMarker clicked",code:200,data:parseInt(t[0])})}));u.push(n);var i=e.content.addEventListener("mouseover",(function(e){j(),W(e,o)}));u.push(i);var s=e.content.addEventListener("mousemove",(function(e){F(e)}));u.push(s);var r=e.content.addEventListener("mouseout",(function(e){j()}));u.push(r)}))}a.eventHandlers_set=function(e){Object.assign(h,e)},a.eventHandlers_get=function(){return h},a.center_get=function(){return l.getCenter()},a.zoom_get=function(){return l.getZoom()},a.fpolies_get=function(){return L},a.locPolygons_get=function(){return m},a.overlayMapTypes_get=function(){return l.overlayMapTypes},a.RenderFields=function(e,t){var o=new google.maps.LatLngBounds;e.forEach((function(e){if(e&&e.Poly&&e.Poly.length>0&&e.Id.length>0){var n=e.Poly.map((e=>e.map((e=>new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0]))))));n[0].forEach((e=>o.extend(e)));let r=`${e.FarmName} - ${e.LocationName}<br>${e.Area} ha${e.IsIrrigated?", irrigated":""}`;e.CropPlanted&&(r+=`<br>${e.CropPlanted}`,e.CultivarPlanted&&(r+=` (${e.CultivarPlanted})`),e.PlantingDate&&(r+=`<br>Planted: ${e.PlantingDate.replace(/-/g,"/")}`));var i={paths:n,id:e.Id,content:r};i=e.MapLocationFeature?{...i,content:r,strokeColor:e.MapLocationFeature.StrokeColor,strokeOpacity:e.MapLocationFeature.StrokeOpacity,strokeWeight:e.MapLocationFeature.StrokeWeight,fillColor:e.MapLocationFeature.FillColor,fillOpacity:e.MapLocationFeature.FillOpacity,zIndex:e.MapLocationFeature.ZIndex}:{...i,...t.polygonOptions.unselected};var s=new google.maps.Polygon(i);v.push(s),t.labelVisable&&R(e)}})),l.fitBounds(o),A(),t.icon&&N(e,t.icon),v.forEach((function(e,t){e.setMap(l)})),m.forEach((function(e,t){e.setMap(l)})),l.getZoom()>=13?y.forEach((function(e,t){e.setMap(l)})):y.forEach((function(e,t){e.setMap(null)})),g=google.maps.event.addListener(l,"zoom_changed",(function(){l.getZoom()>=13?y.forEach((function(e,t){e.setMap(l)})):y.forEach((function(e,t){e.setMap(null)}))})),d.push(g)},a.destroy=function(){mapConfig=null,P=[],selectedProvinceFieldId=null,defaultCenterLatitude=null,defaultCenterLongitude=null,m=[],v=[],y=[],a.map_clear()},a.map_clear=function(){if(H(),$(),G(),C.forEach((function(e){e.setMap(null),e=null})),C=[],I.forEach((function(e){e.setMap(null),e=null})),I=[],V(),b.forEach((function(e){e.setMap(null),e=null})),b=[],y.forEach((function(e){e.setMap(null),e=null})),y=[],v.forEach((function(e){e.setMap(null),e=null})),v=[],function(){null!=z&&(z=(new Et).delete(l,z));m.forEach((function(e){e.setMap(null),e=null})),m=[]}(),Y(),w.forEach((function(e){e.setMap(null),e=null})),k.forEach((function(e){e.setMap(null),e=null})),z&&(z=(new Et).delete(l,z),z=null),x&&(x.setMap(null),x=null),E&&(E.setMap(null),E=null),S&&(S.setMap(null),S=null),l.overlayMapTypes)for(;l.overlayMapTypes.getLength()>0;)l.overlayMapTypes.pop();j(),B.length>0&&(B.forEach((e=>{e.setMap&&e.setMap(null)})),B=[]),m=[],f=[],v=[],y=[],L=[],I=[],C=[],b=[],w=[],k=[],M=[],c=null},a.fmarkers_clear=function(){M.forEach((function(e){e.setMap(null),e=null})),M=[]},a.mapListeners_clear=function(){d.forEach((function(e){google.maps.event.removeListener(e)})),d=[]},a.DrawField_DrawLocation=function(e,t,o,n){var i;P=JSON.parse(e,!0);var s=new google.maps.LatLngBounds;P.forEach((function(e){if(e&&e.Poly&&e.Poly.length>0&&e.Id>0){var r=e.Poly.map((e=>e.map((e=>new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0]))))));e.FarmIdentifier==t&&r[0].forEach((e=>s.extend(e)));let c=`${e.FarmName} - ${e.LocationName}<br>${e.Area} ha${e.IsIrrigated?", irrigated":""}`;if(e.CropPlanted&&(c+=`<br>${e.CropPlanted}`,e.CultivarPlanted&&(c+=` (${e.CultivarPlanted})`),e.PlantingDate&&(c+=`<br>Planted: ${e.PlantingDate.replace(/-/g,"/")}`)),e.Poly.forEach((function(t,s){if(e.Id==o){var a=google.maps.geometry.spherical.computeSignedArea(path)>0&&0!==s;i=Date.now()+Math.floor(1e5*Math.random());var c=new google.maps.Polygon({map:l,path:r[s],id:i,strokeColor:n.StrokeColor,strokeOpacity:n.StrokeOpacity,strokeWeight:n.StrokeWeight,fillColor:n.FillColor,fillOpacity:n.FillOpacity,zIndex:a?10200:10100,clickable:!0,editable:!1,draggable:!0,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:a,latitude:e.Latitude,longitude:e.Longitude,poly:e.Poly,area:e.Area,perimeter:e.Perimeter});m.push(c)}})),e.Id!=o){i=Date.now()+Math.floor(1e5*Math.random());let t=`${e.FarmName} - ${e.LocationName}<br>${e.Area} ha${e.IsIrrigated?", irrigated":""}`;e.CropPlanted&&(t+=`<br>${e.CropPlanted}`,e.CultivarPlanted&&(t+=` (${e.CultivarPlanted})`),e.PlantingDate&&(t+=`<br>Planted: ${e.PlantingDate.replace(/-/g,"/")}`));var a=new google.maps.Polygon({map:l,paths:r,id:i,content:t,strokeColor:n.StrokeColor,strokeOpacity:n.StrokeOpacity,strokeWeight:n.StrokeWeight,fillColor:n.FillColor,fillOpacity:n.FillOpacity,zIndex:1e4,editable:!1,draggable:!1});v.push(a)}}})),l.fitBounds(s),A()},a.Shape_IsShapeHole=function(e){let t=!1;return m.forEach((function(o){o.id==e&&(t=o.isHole)})),t},a.SelectedShape_GetType=function(e,t){var o=m.find((t=>t.id==e));if(o.id==e){if(o.isPolygon)return t.ShapeTypeId_Polygon;if(o.isCircle)return t.ShapeTypeId_Circle;if(o.isCircleSector)return t.ShapeTypeId_CircleSector;if(o.isCircleSegment)return t.ShapeTypeId_CircleSegment}},a.SelectedShape_GetByShapeId=function(e){return m.find((t=>t.id==e))},a.selectShape=function(e,t,o){if(console.log("Selecting shape:",e),console.log("Current locPolygons:",m),m.forEach((function(e){e&&(console.log("Applying unselected style to polygon:",e.id),null!=z&&e.isPolygon&&(z=(new Et).delete(l,z),z=null,e.setMap(l)),null!=x&&e.isCircle&&(x.set("map",null),x=null),null!=E&&e.isCircleSector&&(E.set("map",null),E=null),null!=S&&e.isCircleSegment&&(S.set("map",null),S=null),e.setOptions({...o,editable:!1,draggable:!1}))})),e){const o=m.find((t=>t.id==e));o?(console.log("Applying selected style to shape:",e),o.setOptions(t)):console.warn("Shape not found in locPolygons:",e)}},a.isShapeInLocPolygons=function(e){return m.some((t=>t.id==e))},a.panAndZoomToShape=function(e){let t=m.find((t=>t.id==e))||v.find((t=>t.id==e));if(console.log("locPolygons - panAndZoomToShape",m),t&&l){const e=new google.maps.LatLngBounds;if(t.getPath)t.getPath().forEach((t=>e.extend(t)));else if(t.getCenter&&t.getRadius){const o=t.getCenter(),n=t.getRadius();e.extend(google.maps.geometry.spherical.computeOffset(o,n,0)),e.extend(google.maps.geometry.spherical.computeOffset(o,n,180))}else t.getBounds&&e.union(t.getBounds());const o=l.getZoom();l.fitBounds(e,{padding:50}),google.maps.event.addListenerOnce(l,"bounds_changed",(function(){const e=l.getZoom();Math.abs(e-o)>3&&l.setZoom(Math.min(e,18))}))}else console.error("Shape not found:",e)},a.Shape_Edit=function(e){m.forEach(((t,o)=>{t.id===e&&(t.setEditable(!0),o>0&&t.setDraggable(!0))}))},a.Shape_DrawingDone=function(e){m.forEach((function(t){if(t.id==e)if(t.isPolygon){if(null!=z){var o=z.getPath();t.setPath(o),z=(new Et).delete(l,z),z=null}t.setMap(l),t.setEditable(!1),t.setDraggable(!1),t.setVisible(!0)}else if(t.isCircle){var n=(new Wt).reduce(x.getPath(),t.isHole);t.setPath(n),t.isPolygon=!1,t.isCircle=!0,t.setEditable(!1),t.setDraggable(!1),x.setMap(null),x=null,t.setVisible(!0)}else if(t.isCircleSector){n=(new Zt).reduce(E.getPath(),t.isHole);t.setPath(n),t.isPolygon=!1,t.isCircleSector=!0,t.setEditable(!1),t.setDraggable(!1),E.setMap(null),E=null,t.setVisible(!0)}else if(t.isCircleSegment){n=(new Ft).reduce(S.getPath(),t.isHole);t.setPath(n),t.isPolygon=!1,t.isCircleSegment=!0,t.setEditable(!1),t.setDraggable(!1),S.setMap(null),S=null,t.setVisible(!0)}}))},a.Shape_Delete=function(e,t){const o=l.getBounds(),n=l.getCenter(),i=l.getZoom();H(),this.eventHandlers_set(t);if(m.length>0&&m[0].id==e)a.Shape_DeleteAll();else{var s=-1;m.forEach((function(t,o){t.id==e&&(null!=z&&(z=(new Et).delete(l,z),z=null),null!=x&&(x.set("map",null),x=null),null!=E&&(E.set("map",null),E=null),null!=S&&(S.set("map",null),S=null),t.setMap(null),s=o)})),s>=0&&m.splice(s,1),n&&o&&(l.setZoom(i),l.setCenter(n),l.fitBounds(o))}},a.Shape_DeleteAll=function(e){const t=l.getBounds(),o=l.getCenter(),n=l.getZoom();H(),m.forEach((function(e){null!=z&&(z=(new Et).delete(l,z),z=null),null!=x&&(x.set("map",null),x=null),null!=E&&(E.set("map",null),E=null),null!=S&&(S.set("map",null),S=null),e.setMap(null),e=null})),m=[],o&&t&&(l.setZoom(n),l.setCenter(o),l.fitBounds(t))},a.Shape_PolygonCustomEdit_Add=function(e,s,r,a,c,g,p,u){if(e)return J(s,a,c,p,u,g,r);var d=l.getBounds(),h=l.getCenter(),f=h.lat(),v=h.lng(),y=[];d&&(t=Math.abs(d.getSouthWest().lat()-d.getNorthEast().lat()),o=Math.abs(d.getNorthEast().lng()-d.getSouthWest().lng()),n=o/a,i=t/c,y.push(new google.maps.LatLng(f+u*i+60*i,v+p*n-80*n)),y.push(new google.maps.LatLng(f+u*i+60*i,v+p*n+80*n)),y.push(new google.maps.LatLng(f+u*i-60*i,v+p*n+80*n)),y.push(new google.maps.LatLng(f+u*i-60*i,v+p*n-80*n)));var L=Date.now()+Math.floor(1e5*Math.random()),I=new google.maps.Polygon({map:l,path:y,id:L.toString(),content:"",strokeColor:s.strokeColor,strokeOpacity:s.strokeOpacity,strokeWeight:s.strokeWeight,fillColor:s.fillColor,fillOpacity:s.fillOpacity,zIndex:10100,clickable:!0,editable:!1,draggable:!0,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:!1,latitude:0,longitude:0,poly:0,area:0,perimeter:0});return m.push(I),z=(new Et).edit(l,I,z,r),L},a.Shape_Polygon_Add=function(e,s,r,a,c,g,p,u){if(e)return J(s,a,c,p,u,g,r);var d=l.getBounds(),h=l.getCenter(),v=h.lat(),y=h.lng(),L=[],I=[];d&&(t=Math.abs(d.getSouthWest().lat()-d.getNorthEast().lat()),o=Math.abs(d.getNorthEast().lng()-d.getSouthWest().lng()),n=o/a,i=t/c,L.push(new google.maps.LatLng(v+u*i+60*i,y+p*n-80*n)),L.push(new google.maps.LatLng(v+u*i+60*i,y+p*n+80*n)),L.push(new google.maps.LatLng(v+u*i-60*i,y+p*n+80*n)),L.push(new google.maps.LatLng(v+u*i-60*i,y+p*n-80*n)),I.push([y+p*n-80*n,v+u*i+60*i]),I.push([y+p*n+80*n,v+u*i+60*i]),I.push([y+p*n+80*n,v+u*i-60*i]),I.push([y+p*n-80*n,v+u*i-60*i]),I.push([y+p*n-80*n,v+u*i+60*i]),f.push(I));var C=Date.now()+Math.floor(1e5*Math.random()),b=new google.maps.Polygon({map:l,path:L,id:C.toString(),content:"",strokeColor:s.strokeColor,strokeOpacity:s.strokeOpacity,strokeWeight:s.strokeWeight,fillColor:s.fillColor,fillOpacity:s.fillOpacity,zIndex:10100,clickable:!0,editable:!0,draggable:!0,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:e,latitude:0,longitude:0,poly:0,area:0,perimeter:0});return console.log("shape",b),m.push(b),C},a.Shape_CircleFull_Add=function(e,a,c,g,p,u,d,h,v,y){if(e){var L=function(e,a,c,g,p,u,d,h){var v;if(void 0===n||void 0===i){var y=l.getBounds();y&&(t=Math.abs(y.getSouthWest().lat()-y.getNorthEast().lat()),o=Math.abs(y.getNorthEast().lng()-y.getSouthWest().lng()),n=o/a,i=t/c)}f=[],m.forEach((function(e){for(var t=e.getPath(),o=[],n=0;n<t.length;n++)o.push([t.getAt(n).lng(),t.getAt(n).lat()]);t.getAt(0).lng()==t.getAt(t.length-1).lng()&&t.getAt(0).lat()==t.getAt(t.length-1).lat()||o.push([t.getAt(0).lng(),t.getAt(0).lat()]),f.push(o)}));var L=D(f);s=L.y,r=L.x;for(var I=0,C=360,b=20;b>0;b--){var w=[],k=s,M=r+2*b*n,P=new google.maps.LatLng(s,r),z=kt(s,r,k,M),x=(new Wt).get(s,r,z,I,C);x.forEach((function(e){w.push([e.lng(),e.lat()])})),f.push(w);var E=0;if(w.forEach((function(e,t){google.maps.geometry.poly.containsLocation(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])),m[0])||E++})),0==E){if(!(f.length>2)){v=X(e,g,p,u,x,P,z,d,h);break}for(var S=0,O=1;O<f.length-1;O++)for(var _=O+1;_<f.length;_++)K(f[O],f[_])&&S++;if(0==S){v=X(e,g,p,u,x,P,z,d,h);break}f.pop()}else f.pop()}return v}(a,g,p,v,y,u,c,I);return L}var C=l.getBounds(),b=l.getCenter(),w=b.lat(),k=b.lng();t=Math.abs(C.getSouthWest().lat()-C.getNorthEast().lat()),o=Math.abs(C.getNorthEast().lng()-C.getSouthWest().lng());var M=w+y*(i=t/p),P=k+v*(n=o/g),z=new google.maps.LatLng(M,P),E=kt(M,P,M,P+80*n),S=(new Wt).get(M,P,E,0,360),O=Date.now()+Math.floor(1e5*Math.random()),_=new google.maps.Polygon({map:l,path:S,id:O.toString(),content:"",strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight,fillColor:a.fillColor,fillOpacity:a.fillOpacity,zIndex:10100,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!0,isCircleSector:!1,isCircleSegment:!1,isHole:e,latitude:0,longitude:0,poly:0,area:0,perimeter:0});return m.push(_),x=(x=new Wt).edit(l,_,x,z,E,c,I),O},a.Shape_CircleSector_Add=function(e,a,c,g,p,u,d,h,v,y){if(e){var L=function(e,a,c,g,p,u,d,h){var v;if(void 0===n||void 0===i){var y=l.getBounds();y&&(t=Math.abs(y.getSouthWest().lat()-y.getNorthEast().lat()),o=Math.abs(y.getNorthEast().lng()-y.getSouthWest().lng()),n=o/a,i=t/c)}f=[],m.forEach((function(e){for(var t=e.getPath(),o=[],n=0;n<t.length;n++)o.push([t.getAt(n).lng(),t.getAt(n).lat()]);t.getAt(0).lng()==t.getAt(t.length-1).lng()&&t.getAt(0).lat()==t.getAt(t.length-1).lat()||o.push([t.getAt(0).lng(),t.getAt(0).lat()]),f.push(o)}));var L=D(f);s=L.y,r=L.x;for(var I=60,C=120,b=20;b>0;b--){var w=[],k=s,M=r+2*b*n,P=new google.maps.LatLng(s,r),z=kt(s,r,k,M),x=(new Zt).get(s,r,z,I,C);x.forEach((function(e){w.push([e.lng(),e.lat()])})),f.push(w);var E=0;if(w.forEach((function(e,t){google.maps.geometry.poly.containsLocation(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])),m[0])||E++})),0==E){if(!(f.length>2)){v=Q(e,g,p,u,x,P,z,d,h);break}for(var S=0,O=1;O<f.length-1;O++)for(var _=O+1;_<f.length;_++)K(f[O],f[_])&&S++;if(0==S){v=Q(e,g,p,u,x,P,z,d,h);break}f.pop()}else f.pop()}return v}(a,g,p,v,y,u,c,I);return L}var C=l.getBounds(),b=l.getCenter(),w=b.lat(),k=b.lng();t=Math.abs(C.getSouthWest().lat()-C.getNorthEast().lat()),o=Math.abs(C.getNorthEast().lng()-C.getSouthWest().lng());var M=w+y*(i=t/p),P=k+v*(n=o/g),z=new google.maps.LatLng(M,P),x=kt(M,P,M,P+80*n),S=(new Zt).get(M,P,x,60,120),O=Date.now()+Math.floor(1e5*Math.random()),_=new google.maps.Polygon({map:l,path:S,id:O.toString(),content:"",strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight,fillColor:a.fillColor,fillOpacity:a.fillOpacity,zIndex:e?10200:10100,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!1,isCircleSector:!0,isCircleSegment:!1,isHole:e,latitude:0,longitude:0,poly:0,area:0,perimeter:0});return m.push(_),E=(E=new Zt).edit(l,_,E,z,x,c,I),O},a.Shape_CircleSegment_Add=function(e,a,c,g,p,u,d,h,v,y){if(e){var L=function(e,a,c,g,p,u,d,h){var v;if(void 0===n||void 0===i){var y=l.getBounds();y&&(t=Math.abs(y.getSouthWest().lat()-y.getNorthEast().lat()),o=Math.abs(y.getNorthEast().lng()-y.getSouthWest().lng()),n=o/a,i=t/c)}f=[],m.forEach((function(e){for(var t=e.getPath(),o=[],n=0;n<t.length;n++)o.push([t.getAt(n).lng(),t.getAt(n).lat()]);t.getAt(0).lng()==t.getAt(t.length-1).lng()&&t.getAt(0).lat()==t.getAt(t.length-1).lat()||o.push([t.getAt(0).lng(),t.getAt(0).lat()]),f.push(o)}));var L=D(f);s=L.y,r=L.x;for(var I=0,C=160,b=20;b>0;b--){var w=[],k=s,M=r+2*b*n,P=new google.maps.LatLng(s,r),z=kt(s,r,k,M),x=(new Zt).get(s,r,z,I,C);x.forEach((function(e){w.push([e.lng(),e.lat()])})),f.push(w);var E=0;if(w.forEach((function(e,t){google.maps.geometry.poly.containsLocation(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])),m[0])||E++})),0==E){if(!(f.length>2)){v=ee(e,g,p,u,x,P,z,d,h);break}for(var S=0,O=1;O<f.length-1;O++)for(var _=O+1;_<f.length;_++)K(f[O],f[_])&&S++;if(0==S){v=ee(e,g,p,u,x,P,z,d,h);break}f.pop()}else f.pop()}return v}(a,g,p,v,y,u,c,I);return L}var C=l.getBounds(),b=l.getCenter(),w=b.lat(),k=b.lng();t=Math.abs(C.getSouthWest().lat()-C.getNorthEast().lat()),o=Math.abs(C.getNorthEast().lng()-C.getSouthWest().lng());var M=w+y*(i=t/p),P=k+v*(n=o/g),z=new google.maps.LatLng(M,P),x=kt(M,P,M,P+80*n),E=(new Ft).get(M,P,x,0,160),O=Date.now()+Math.floor(1e5*Math.random()),_=new google.maps.Polygon({map:l,path:E,id:O.toString(),content:"",strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight,fillColor:a.fillColor,fillOpacity:a.fillOpacity,zIndex:e?10200:10100,clickable:!0,editable:!1,draggable:!1,visible:!1,isPolygon:!1,isCircle:!1,isCircleSector:!1,isCircleSegment:!0,isHole:e,latitude:0,longitude:0,poly:0,area:0,perimeter:0});return m.push(_),S=(S=new Ft).edit(l,_,S,z,x,c,I),O},a.RenderRegionFarms=function(e,t,o,n,i){t&&N(e,t,"farm",o,n,i)},a.TriggerField_ChangeEvent=function(){var e,t,o=0,n=0,i="",s=new google.maps.LatLngBounds,r="",l=[];return m.forEach((function(e,t){var r;r=e.getPath(),({perimeter:n,area:o,path:i}=function(e,t,o,n,i,s){var r,a=[];if(0===e){for(r=0;r<t.getLength();r++)a.push(t.getAt(r)),o.extend(t.getAt(r)),r<t.getLength()-1&&(n+=google.maps.geometry.spherical.computeDistanceBetween(t.getAt(r),t.getAt(r+1)));a[0].lat()!=a[a.length-1].lat()&&a[0].lng()!=a[a.length-1].lng()&&a.push(a[0]),google.maps.geometry.spherical.computeSignedArea(a)>0&&a.reverse(),i+=google.maps.geometry.spherical.computeSignedArea(a),s=google.maps.geometry.encoding.encodePath(a)+","}else{for(r=0;r<t.getLength();r++)a.push(t.getAt(r)),o.extend(t.getAt(r)),r<t.getLength()-1&&(n+=google.maps.geometry.spherical.computeDistanceBetween(t.getAt(r),t.getAt(r+1)));i+=google.maps.geometry.spherical.computeSignedArea(a),s+=google.maps.geometry.encoding.encodePath(a)+","}return{perimeter:n,area:i,path:s}}(t,r,s,n,o,i)),l.push({path:i.split(",")[t],isHole:e.isHole})})),""!==(i=i.substr(0,i.length-1))&&(console.log("Checking field overlaps..."),a.checkForBackgroundFieldOverlaps()||(console.log("Overlap detected - setting error message"),r="Error: Field overlaps with an existing field")),o=-o,e=parseFloat(s.getCenter().lat()),t=parseFloat(s.getCenter().lng()),new St(i,o,n,e,t,r)},a.DrawField_AttachEvents=function(e,t,o){m.forEach((function(n){var i=google.maps.event.addListener(n,"mouseover",(function(){e.JS_ShapeOnMouseIn(this.id)}));p.push(i);var s=google.maps.event.addListener(n,"mouseout",(function(){e.JS_ShapeOnMouseOut(this.id)}));p.push(s);var r=google.maps.event.addListener(n,"click",(function(){e.ShapeSelect(this.id)}));p.push(r),n.id==t&&void 0!==o&&n.setOptions({strokeColor:o,strokeWeight:3})}))},a.DrawField_DetachEvents=function(e,t){H(),m.forEach((function(o){o.id==t&&o.setOptions({strokeColor:e})}))},a.PolygonCustomEdit_Edit=function(e,t){var o=m.find((t=>t.id==e));if(o){var n=o.getPath();n.getAt(0).lat()==n.getAt(n.getLength()-1).lat()&&n.getAt(0).lng()==n.getAt(n.getLength()-1).lng()&&n.pop(),o.setPath(n),o.setMap(null),z=(new Et).edit(l,o,z,t)}},a.CircleSector_Edit=function(e,t){var o=m.find((t=>t.id==e));if(o){var n=new google.maps.LatLngBounds;o.getPath().forEach((e=>n.extend(e)));var i=n.getCenter(),s=google.maps.geometry.spherical.computeDistanceBetween(i,o.getPath().getAt(0));E=(new Zt).edit(l,o,E,i,s,t,I)}},a.CircleFull_Edit=function(e,t){var o=m.find((t=>t.id==e));if(o){var n=new google.maps.LatLngBounds;o.getPath().forEach((e=>n.extend(e)));var i=n.getCenter(),s=google.maps.geometry.spherical.computeDistanceBetween(i,o.getPath().getAt(0));x=(new Wt).edit(l,o,x,i,s,t,I)}},a.CircleSegment_Edit=function(e,t){var o=m.find((t=>t.id==e));if(o){a.Shape_Delete(e);var n=new google.maps.LatLngBounds;o.getPath().forEach((e=>n.extend(e)));var i=n.getCenter(),s=google.maps.geometry.spherical.computeDistanceBetween(i,o.getPath().getAt(0));S=(new Ft).edit(l,o,S,i,s,t,I)}},a.RenderRegions=function(e,t,o,n,i,s){var r=null,a=null,c=null;L=[],d=[];var g=new google.maps.LatLngBounds;e.forEach((function(e){const o="string"==typeof e.Id?e.Id.length>0:"number"==typeof e.Id&&e.Id>0;if(e&&o){var n=[];n=!e.Poly.length>0?e.Coords:e.Poly.split(",");var i=[];n.forEach((function(t,o){!e.Poly.length>0?(c=[],t.forEach((function(e){c.push(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0]))),g.extend(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])))})),i.push(c)):(a=Ut.decode(t),c=[],a.forEach((function(e){c.push(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1]))),g.extend(new google.maps.LatLng(parseFloat(e[0]),parseFloat(e[1])))})),i.push(c))}));var s={...t.polygonOptions.unselected,paths:i,id:e.Id,content:e.LocationName,map:l};r=new google.maps.Polygon(s),L.push(r)}}));var u=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){te(l.getCenter(),i,s)}));d.push(u),l.fitBounds(g),function(e,t){j(),L.forEach((function(e){e instanceof google.maps.Polygon?(p.push(google.maps.event.addListener(e,"mouseover",(function(t){j(),U(t,e.get("content"))}))),p.push(google.maps.event.addListener(e,"mousemove",Z)),p.push(google.maps.event.addListener(e,"mouseout",j)),p.push(google.maps.event.addListener(e,"click",(function(e){j()})))):console.warn("Invalid polygon object found in fpolies array:",e)})),N(e,t,"farm",!1)}(o,n)},a.Shape_Convert=function(e){m.forEach((function(t){if(t.id==e&&!t.isPolygon){var o,n=Date.now()+Math.floor(1e5*Math.random());if(t.isCircle){var i=function(e,t,o,n){for(var i,s,r,a,l,c,g,p,u=[],d=0;d<o;++d)u.push((i=e,s=t,r=2*Math.PI*-d/o,a=void 0,l=void 0,c=void 0,g=void 0,p=void 0,a=Pt(i[1]),l=Pt(i[0]),c=s/6378137,g=Math.asin(Math.sin(a)*Math.cos(c)+Math.cos(a)*Math.sin(c)*Math.cos(r)),p=l+Math.atan2(Math.sin(r)*Math.sin(c)*Math.cos(a),Math.cos(c)-Math.sin(a)*Math.sin(g)),new google.maps.LatLng({lat:zt(g),lng:zt(p)})));return n?u:u.reverse()}([t.getCenter().lng(),t.getCenter().lat()],t.getRadius(),72,t.isHole);o=new google.maps.Polygon({map:t.map,path:i,id:n,content:t.content,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,clickable:t.clickable,editable:t.editable,draggable:t.draggable,visible:!1,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:t.isHole,latitude:t.latitude,longitude:t.longitude,poly:t.poly,area:t.area,perimeter:t.perimeter})}else t.isCircleSector?o=new google.maps.Polygon({map:t.map,paths:t.paths,id:n,content:t.content,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,clickable:t.clickable,editable:t.editable,draggable:t.draggable,visible:!1,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!1,isHole:t.isHole,latitude:t.latitude,longitude:t.longitude,poly:t.poly,area:t.area,perimeter:t.perimeter}):t.isCircleSegment&&(o=new google.maps.Polygon({map:t.map,paths:t.paths,id:n,content:t.content,strokeColor:t.strokeColor,strokeOpacity:t.strokeOpacity,strokeWeight:t.strokeWeight,fillColor:t.fillColor,fillOpacity:t.fillOpacity,zIndex:t.zIndex,clickable:t.clickable,editable:t.editable,draggable:t.draggable,visible:!1,isPolygon:!0,isCircle:!1,isCircleSector:!1,isCircleSegment:!0,isHole:t.isHole,latitude:t.latitude,longitude:t.longitude,poly:t.poly,area:t.area,perimeter:t.perimeter}));return m.push(o),n}}))},a.addToLocPolygons=function(e){(m=[]).push(e)},a.RenderBackgroundFields=function(e,t){var o=new google.maps.LatLngBounds;B.forEach((e=>{e.setMap(null)})),B=[],e.forEach((function(e){if(e&&e.Poly&&e.Poly.length>0&&e.Id.length>0){var n=e.Poly.map((e=>e.map((e=>new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0]))))));n[0].forEach((e=>o.extend(e)));let r=`${e.FarmName} - ${e.LocationName}<br>${e.Area} ha${e.IsIrrigated?", irrigated":""}`;e.CropPlanted&&(r+=`<br>${e.CropPlanted}`,e.CultivarPlanted&&(r+=` (${e.CultivarPlanted})`),e.PlantingDate&&(r+=`<br>Planted: ${e.PlantingDate.replace(/-/g,"/")}`));var i={...t.polygonOptions.other,paths:n,id:e.Id,content:r,map:l},s=new google.maps.Polygon(i);B.push(s)}})),l.fitBounds(o)},a.clearBackgroundFields=function(){B.forEach((e=>{e.setMap(null)})),B=[]},a.checkForBackgroundFieldOverlaps=function(){if(console.log("Checking overlaps - Background Fields:",B.length,"Local Polygons:",m.length),!B.length||!m.length)return console.log("No fields to check for overlap"),!0;for(const e of m)for(const t of B){const o=e.getPath().getArray(),n=t.getPath().getArray();for(const e of o)if(google.maps.geometry.poly.containsLocation(e,t))return console.log("Overlap detected: Local polygon point inside background field"),!1;for(const t of n)if(google.maps.geometry.poly.containsLocation(t,e))return console.log("Overlap detected: Background field point inside local polygon"),!1}return console.log("No overlaps detected"),!0},a.RenderSAAdministrative=function(e,t,o,n,i,s,r,a,l){oe(e,0,0,0,0,s,r,0,l)},a.RenderSACadastral=function(e,t,o,n,i,s){ne(e,0,0,0,i,s)},a.RenderSADelineatedFields=function(e,t,o,n,i,s){ie(e,0,0,0,i,s)},a.RenderGSGPRegions=function(e,t,o,n,i,s,r){re(e,t,o,n,i,s,r)},a.RenderGSProvinces=function(e,t,o,n,i,s,r){ae(e,t,o,n,i,s,r)},a.NDVI_AddOverlay_DEA=function(e,t,o,n,i,s,r,a,c,g,p,u){var m,f,v=e[0],y=new google.maps.LatLngBounds;if(v&&v.Poly&&v.Poly.length>0&&v.Id>0){var L=D(v.Poly);m=L.y,f=L.x,v.Poly.forEach((function(e,t){e.forEach((function(e,o){0==t&&y.extend(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])))}))}))}else m=r,f=a;var I=0;p&&(I=1);var C=o,b=!1;if(!b){const e=document.createElement("img");e.src=s,e.width=120,e.height=120,e.style.transform="translate(0, 50%)";const t=new google.maps.LatLng(m,f);var w=new google.maps.marker.AdvancedMarkerElement({map:l,position:t,content:e});M.push(w),b=!0}var k=[];if(l.getZoom()>17){var P=google.maps.event.addListenerOnce(l,"zoom_changed",(function(){k=[];var e=new google.maps.ImageMapType({getTileUrl:function(e,o){if(C.indexOf(o+"|"+e.x+"|"+e.y)>-1){const s=I?"true":"false";return k.push({eosLocationCropperRefId:n,eosViewId:i,z:o,x:e.x,y:e.y}),[t.replace(/{l}/,n).replace(/{v}/,i).replace(/{p}/,c).replace(/{f}/,s).replace(/{z}/,o).replace(/{x}/,e.x).replace(/{y}/,e.y)].join("")}},tileSize:new google.maps.Size(256,256),minZoom:13,maxZoom:17});e.addListener("tilesloaded",(function(){if(b&&M.forEach((function(e,t){e.setMap(null),M.splice(t,1),b=!1})),k.length>0&&k[0].fullView,k.length>0){const e=l.getZoom();let t=[];k.forEach((function(o){-1==t.indexOf(o.z+"|"+o.x+"|"+o.y)&&o.z==e&&t.push(o.z+"|"+o.x+"|"+o.y)}));let n=0;o.forEach((t=>{parseInt(t.substring(0,t.indexOf("|")))==e&&n++})),t.length==n?h.OverlayTilesLoaded({type:"SUCCESS",message:"NDVI overlay completed",code:200,data:k[0]}):h.OverlayTilesLoaded({type:"ERROR",message:"Not all tiles loaded",code:400,data:null})}else h.OverlayTilesLoaded({type:"ERROR",message:"No tiles loaded",code:400,data:null});k=[]})),l.overlayMapTypes.push(e)}));d.push(P),l.setZoom(17)}else if(l.getZoom()<13){P=google.maps.event.addListenerOnce(l,"zoom_changed",(function(){k=[];var e=new google.maps.ImageMapType({getTileUrl:function(e,o){if(C.indexOf(o+"|"+e.x+"|"+e.y)>-1){const s=I?"true":"false";return k.push({eosLocationCropperRefId:n,eosViewId:i,z:o,x:e.x,y:e.y}),[t.replace(/{l}/,n).replace(/{v}/,i).replace(/{p}/,c).replace(/{f}/,s).replace(/{z}/,o).replace(/{x}/,e.x).replace(/{y}/,e.y)].join("")}},tileSize:new google.maps.Size(256,256),minZoom:13,maxZoom:17});e.addListener("tilesloaded",(function(){if(b&&M.forEach((function(e,t){e.setMap(null),M.splice(t,1),b=!1})),k.length>0&&k[0].fullView,k.length>0){const e=l.getZoom();let t=[];k.forEach((function(o){-1==t.indexOf(o.z+"|"+o.x+"|"+o.y)&&o.z==e&&t.push(o.z+"|"+o.x+"|"+o.y)}));let n=0;o.forEach((t=>{parseInt(t.substring(0,t.indexOf("|")))==e&&n++})),t.length==n?h.OverlayTilesLoaded({type:"SUCCESS",message:"NDVI overlay completed",code:200,data:k[0]}):h.OverlayTilesLoaded({type:"ERROR",message:"Not all tiles loaded",code:400,data:null})}else h.OverlayTilesLoaded({type:"ERROR",message:"No tiles loaded",code:400,data:null});k=[]})),l.overlayMapTypes.push(e)}));d.push(P),l.setZoom(13)}else{k=[];var z=new google.maps.ImageMapType({getTileUrl:function(e,o){if(C.indexOf(o+"|"+e.x+"|"+e.y)>-1){const s=I?"true":"false";return k.push({eosLocationCropperRefId:n,eosViewId:i,z:o,x:e.x,y:e.y}),[t.replace(/{l}/,n).replace(/{v}/,i).replace(/{p}/,c).replace(/{f}/,s).replace(/{z}/,o).replace(/{x}/,e.x).replace(/{y}/,e.y)].join("")}},tileSize:new google.maps.Size(256,256),minZoom:13,maxZoom:17});z.addListener("tilesloaded",(function(){if(b&&M.forEach((function(e,t){e.setMap(null),M.splice(t,1),b=!1})),k.length>0&&k[0].fullView,k.length>0){const e=l.getZoom();let t=0,n=[];k.forEach((function(t){-1==n.indexOf(t.z+"|"+t.x+"|"+t.y)&&t.z==e&&n.push(t.z+"|"+t.x+"|"+t.y)})),o.forEach((o=>{parseInt(o.substring(0,o.indexOf("|")))==e&&t++})),n.length==t?h.OverlayTilesLoaded({type:"SUCCESS",message:"NDVI overlay completed",code:200,data:k[0]}):h.OverlayTilesLoaded({type:"ERROR",message:"Not all tiles loaded",code:400,data:null})}else h.OverlayTilesLoaded({type:"ERROR",message:"No tiles loaded",code:400,data:null});k=[]})),l.overlayMapTypes.push(z)}},a.NDVI_RemoveOverlay=function(){l.overlayMapTypes.clear()},a.NDVI_DrawLocation=function(e,t,o,n,i,s){var r=e[0],a=null,c=!1;if(r&&r.Poly&&r.Poly.length>0&&r.Id>0){var g=[],u=new google.maps.LatLngBounds;r.Poly.forEach((function(e,t){var o=[];e.forEach((function(e){o.push(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0]))),0==t&&u.extend(new google.maps.LatLng(parseFloat(e[1]),parseFloat(e[0])))})),g.push(o)})),a=new google.maps.Polygon({map:l,paths:g,fillColor:"transparent",id:r.Id});var m=google.maps.event.addListenerOnce(l,"bounds_changed",(function(){if(!c){var e=l.getProjection().fromLatLngToPoint(u.getSouthWest()),i=l.getProjection().fromLatLngToPoint(u.getNorthEast()),s=l.getZoom(),r=1<<s;(i.x-e.x)*r>=n&&l.setZoom(s-1),l.getZoom()>16&&l.setZoom(16),te(u.getCenter(),t,o),c=!c}}));if(d.push(m),l.fitBounds(u),i){var f=google.maps.event.addListener(a,"mouseover",(function(e){U(e,a.content)})),v=google.maps.event.addListener(a,"mousemove",(function(e){Z(e)})),I=google.maps.event.addListener(a,"mouseout",(function(e){j()}));p.push(f),p.push(v),p.push(I)}if(s){var C=google.maps.event.addListener(a,"click",(function(e){h.PolygonOnClick({id:r.Id,poly:r.Poly,lat:e.latLng.lat(),lng:e.latLng.lng()})}));p.push(C)}L.push(a)}l.getZoom()>=13?y.forEach((function(e){e.setMap(l)})):y.forEach((function(e){e.setMap(null)}));var b=google.maps.event.addListener(l,"zoom_changed",(function(){l.getZoom()>=13?y.forEach((function(e,t){e.setMap(l)})):y.forEach((function(e,t){e.setMap(null)}))}));d.push(b)},a.NLC_AddOverlay=function(e,t,o,n,i,s){if(t&&te(new google.maps.LatLng(o,n),i,s),l.getZoom()>14){var r=google.maps.event.addListenerOnce(l,"zoom_changed",(function(){var t=new google.maps.ImageMapType({getTileUrl:function(t,o){return console.log([e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")),[e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")},tileSize:new google.maps.Size(256,256),minZoom:5,maxZoom:14});l.overlayMapTypes.push(t)}));d.push(r),l.setZoom(14)}else if(l.getZoom()<5){r=google.maps.event.addListenerOnce(l,"zoom_changed",(function(){var t=new google.maps.ImageMapType({getTileUrl:function(t,o){return console.log([e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")),[e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")},tileSize:new google.maps.Size(256,256),minZoom:5,maxZoom:14});l.overlayMapTypes.push(t)}));d.push(r),l.setZoom(5)}else{var a=new google.maps.ImageMapType({getTileUrl:function(t,o){return console.log([e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")),[e.replace(/{z}/,o).replace(/{x}/,t.x).replace(/{y}/,t.y)].join("")},tileSize:new google.maps.Size(256,256),minZoom:5,maxZoom:14});l.overlayMapTypes.push(a)}},a.NLC_RemoveOverlay=function(){l.overlayMapTypes.clear()}}}var Ht={width:"100%",height:"100%"},$t={lat:-25.7652061,lng:28.2710333},Gt=["places","marker","geometry"],Yt={disableDefaultUI:!0,mapId:"JP_DEMO_MAP",mapTypeId:"hybrid",mapTypeControl:!0,zoomControl:!0},Jt=e.memo((function(t){var o=t.gmAPIkey,n=t.jpMap,i=e.useState(null),s=i[0],r=i[1],a=function(t){var o=t.mapInstance,n=e.useRef(null);return e.useEffect((function(){if(o){var e=new Vt(o);return n.current=e,function(){n.current&&n.current.map_clear()}}}),[o]),{mapManager:n.current}}({mapInstance:s}).mapManager,l=function(t){var o=t.id,n=void 0===o?W.id:o,i=t.version,s=void 0===i?W.version:i,r=t.nonce,a=t.googleMapsApiKey,l=t.language,c=t.region,g=t.libraries,p=void 0===g?$:g,u=t.preventGoogleFontsLoading,d=t.mapIds,h=t.authReferrerPolicy,m=e.useRef(!1),f=e.useState(!1),v=f[0],y=f[1],L=e.useState(void 0),I=L[0],C=L[1];e.useEffect((function(){return m.current=!0,function(){m.current=!1}}),[]);var b=e.useMemo((function(){return new H({id:n,apiKey:a,version:s,libraries:p,language:l||"en",region:c||"US",mapIds:d||[],nonce:r||"",authReferrerPolicy:h||"origin"})}),[n,a,s,p,l,c,d,r,h]);e.useEffect((function(){v||b.load().then((function(){m.current&&y(!0)})).catch((function(e){C(e)}))}),[]),e.useEffect((function(){O&&u&&B()}),[u]);var w=e.useRef();return e.useEffect((function(){w.current&&p!==w.current&&console.warn("Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables"),w.current=p}),[p]),{isLoaded:v,loadError:I}}({id:"google-map-script",googleMapsApiKey:o,libraries:Gt}).isLoaded,c=e.useCallback((function(e){r(e)}),[]);e.useEffect((function(){null!==s&&n({isMapInitialized:!0,mapObject:s,mapManager:a})}),[s,n]);var g=e.useCallback((function(e){r(null)}),[]);return l?u.jsx(S,{mapContainerStyle:Ht,center:$t,zoom:5,options:Yt,onLoad:c,onUnmount:g,children:u.jsx(u.Fragment,{})}):u.jsx(u.Fragment,{})}));module.exports=Jt;
54
54
  //# sourceMappingURL=index.js.map