UNPKG

@uiw/react-amap

Version:
2 lines 33 kB
/*! For license information please see amap.min.js.LICENSE.txt */ !function(e,o){"object"===typeof exports&&"object"===typeof module?module.exports=o(require("react"),require("react-dom")):"function"===typeof define&&define.amd?define(["react","react-dom"],o):"object"===typeof exports?exports["@uiw/react-amap"]=o(require("react"),require("react-dom")):e["@uiw/react-amap"]=o(e.React,e.ReactDOM)}(self,(e,o)=>(()=>{"use strict";var n={144(e){e.exports=function(){function e(e){var t=[];return e.AMapUI&&t.push(o(e.AMapUI)),e.Loca&&t.push(n(e.Loca)),Promise.all(t)}function o(e){return new Promise(function(o,n){var a=[];if(e.plugins)for(var s=0;s<e.plugins.length;s+=1)-1==r.AMapUI.plugins.indexOf(e.plugins[s])&&a.push(e.plugins[s]);if(i.AMapUI===t.failed)n("\u524d\u6b21\u8bf7\u6c42 AMapUI \u5931\u8d25");else if(i.AMapUI===t.notload){i.AMapUI=t.loading,r.AMapUI.version=e.version||r.AMapUI.version,s=r.AMapUI.version;var u=document.body||document.head,c=document.createElement("script");c.type="text/javascript",c.src="https://webapi.amap.com/ui/"+s+"/main.js",c.onerror=function(e){i.AMapUI=t.failed,n("\u8bf7\u6c42 AMapUI \u5931\u8d25")},c.onload=function(){if(i.AMapUI=t.loaded,a.length)window.AMapUI.loadUI(a,function(){for(var e=0,n=a.length;e<n;e++){var t=a[e].split("/").slice(-1)[0];window.AMapUI[t]=arguments[e]}for(o();l.AMapUI.length;)l.AMapUI.splice(0,1)[0]()});else for(o();l.AMapUI.length;)l.AMapUI.splice(0,1)[0]()},u.appendChild(c)}else i.AMapUI===t.loaded?e.version&&e.version!==r.AMapUI.version?n("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c AMapUI \u6df7\u7528"):a.length?window.AMapUI.loadUI(a,function(){for(var e=0,n=a.length;e<n;e++){var t=a[e].split("/").slice(-1)[0];window.AMapUI[t]=arguments[e]}o()}):o():e.version&&e.version!==r.AMapUI.version?n("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c AMapUI \u6df7\u7528"):l.AMapUI.push(function(e){e?n(e):a.length?window.AMapUI.loadUI(a,function(){for(var e=0,n=a.length;e<n;e++){var t=a[e].split("/").slice(-1)[0];window.AMapUI[t]=arguments[e]}o()}):o()})})}function n(e){return new Promise(function(o,n){if(i.Loca===t.failed)n("\u524d\u6b21\u8bf7\u6c42 Loca \u5931\u8d25");else if(i.Loca===t.notload){i.Loca=t.loading,r.Loca.version=e.version||r.Loca.version;var a=r.Loca.version,s=r.AMap.version.startsWith("2"),u=a.startsWith("2");if(s&&!u||!s&&u)n("JSAPI \u4e0e Loca \u7248\u672c\u4e0d\u5bf9\u5e94\uff01\uff01");else{s=r.key,u=document.body||document.head;var c=document.createElement("script");c.type="text/javascript",c.src="https://webapi.amap.com/loca?v="+a+"&key="+s,c.onerror=function(e){i.Loca=t.failed,n("\u8bf7\u6c42 AMapUI \u5931\u8d25")},c.onload=function(){for(i.Loca=t.loaded,o();l.Loca.length;)l.Loca.splice(0,1)[0]()},u.appendChild(c)}}else i.Loca===t.loaded?e.version&&e.version!==r.Loca.version?n("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c Loca \u6df7\u7528"):o():e.version&&e.version!==r.Loca.version?n("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c Loca \u6df7\u7528"):l.Loca.push(function(e){e?n(e):n()})})}if(!window)throw Error("AMap JSAPI can only be used in Browser.");var t,a;(a=t||(t={})).notload="notload",a.loading="loading",a.loaded="loaded",a.failed="failed";var r={key:"",AMap:{version:"1.4.15",plugins:[]},AMapUI:{version:"1.1",plugins:[]},Loca:{version:"1.3.2"}},i={AMap:t.notload,AMapUI:t.notload,Loca:t.notload},l={AMap:[],AMapUI:[],Loca:[]},s=[],u=function(e){"function"==typeof e&&(i.AMap===t.loaded?e(window.AMap):s.push(e))};return{load:function(o){return new Promise(function(n,a){if(i.AMap==t.failed)a("");else if(i.AMap==t.notload){var l=o.key,c=o.version,p=o.plugins;l?(window.AMap&&"lbs.amap.com"!==location.host&&a("\u7981\u6b62\u591a\u79cdAPI\u52a0\u8f7d\u65b9\u5f0f\u6df7\u7528"),r.key=l,r.AMap.version=c||r.AMap.version,r.AMap.plugins=p||r.AMap.plugins,i.AMap=t.loading,c=document.body||document.head,window.___onAPILoaded=function(r){if(delete window.___onAPILoaded,r)i.AMap=t.failed,a(r);else for(i.AMap=t.loaded,e(o).then(function(){n(window.AMap)}).catch(a);s.length;)s.splice(0,1)[0]()},(p=document.createElement("script")).type="text/javascript",p.src="https://webapi.amap.com/maps?callback=___onAPILoaded&v="+r.AMap.version+"&key="+l+"&plugin="+r.AMap.plugins.join(","),p.onerror=function(e){i.AMap=t.failed,a(e)},c.appendChild(p)):a("\u8bf7\u586b\u5199key")}else if(i.AMap==t.loaded)if(o.key&&o.key!==r.key)a("\u591a\u4e2a\u4e0d\u4e00\u81f4\u7684 key");else if(o.version&&o.version!==r.AMap.version)a("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c JSAPI \u6df7\u7528");else{if(l=[],o.plugins)for(c=0;c<o.plugins.length;c+=1)-1==r.AMap.plugins.indexOf(o.plugins[c])&&l.push(o.plugins[c]);l.length?window.AMap.plugin(l,function(){e(o).then(function(){n(window.AMap)}).catch(a)}):e(o).then(function(){n(window.AMap)}).catch(a)}else if(o.key&&o.key!==r.key)a("\u591a\u4e2a\u4e0d\u4e00\u81f4\u7684 key");else if(o.version&&o.version!==r.AMap.version)a("\u4e0d\u5141\u8bb8\u591a\u4e2a\u7248\u672c JSAPI \u6df7\u7528");else{var d=[];if(o.plugins)for(c=0;c<o.plugins.length;c+=1)-1==r.AMap.plugins.indexOf(o.plugins[c])&&d.push(o.plugins[c]);u(function(){d.length?window.AMap.plugin(d,function(){e(o).then(function(){n(window.AMap)}).catch(a)}):e(o).then(function(){n(window.AMap)}).catch(a)})}})},reset:function(){delete window.AMap,delete window.AMapUI,delete window.Loca,r={key:"",AMap:{version:"1.4.15",plugins:[]},AMapUI:{version:"1.1",plugins:[]},Loca:{version:"1.3.2"}},i={AMap:t.notload,AMapUI:t.notload,Loca:t.notload},l={AMap:[],AMapUI:[],Loca:[]}}}}()},335(e,o,n){var t=n(442),a=Symbol.for("react.element"),r=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,o,n){var t,r={},u=null,c=null;for(t in void 0!==n&&(u=""+n),void 0!==o.key&&(u=""+o.key),void 0!==o.ref&&(c=o.ref),o)i.call(o,t)&&!s.hasOwnProperty(t)&&(r[t]=o[t]);if(e&&e.defaultProps)for(t in o=e.defaultProps)void 0===r[t]&&(r[t]=o[t]);return{$$typeof:a,type:e,key:u,ref:c,props:r,_owner:l.current}}o.jsx=u,o.jsxs=u},85(e,o,n){e.exports=n(335)},442(o){o.exports=e},3(e){e.exports=o}},t={};function a(e){var o=t[e];if(void 0!==o)return o.exports;var r=t[e]={exports:{}};return n[e].call(r.exports,r,r.exports,a),r.exports}a.n=e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return a.d(o,{a:o}),o},a.d=(e,o)=>{for(var n in o)a.o(o,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:o[n]})},a.o=(e,o)=>Object.prototype.hasOwnProperty.call(e,o),a.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};function i(e,o){if(null==e)return{};var n={};for(var t in e)if({}.hasOwnProperty.call(e,t)){if(-1!==o.indexOf(t))continue;n[t]=e[t]}return n}a.r(r),a.d(r,{APILoader:()=>d,AutoComplete:()=>g,BezierCurve:()=>P,Circle:()=>H,CircleMarker:()=>j,Context:()=>k,ContextMenu:()=>F,ControlBarControl:()=>Y,Ellipse:()=>$,Geolocation:()=>Q,HawkEyeControl:()=>oe,InfoWindow:()=>ae,LabelMarker:()=>me,Map:()=>L,MapTypeControl:()=>le,Marker:()=>ve,MassMarks:()=>Ee,MouseTool:()=>Ue,MouseToolDrawType:()=>Pe,PolyEditor:()=>Oe,Polygon:()=>be,PolygonContext:()=>Ce,PolygonEditor:()=>ke,Polyline:()=>Le,PolylineContext:()=>xe,PolylineEditor:()=>Re,Provider:()=>x,Rectangle:()=>ze,ScaleControl:()=>We,Text:()=>Ge,TileLayer:()=>ce,TileLayerType:()=>ue,ToolBarControl:()=>qe,Weather:()=>$e,initialState:()=>C,reducer:()=>b,requireCss:()=>je,requireScript:()=>Be,useAutoComplete:()=>y,useBezierCurve:()=>R,useCircle:()=>D,useCircleMarker:()=>_,useContextMenu:()=>N,useControlBarControl:()=>G,useEllipse:()=>J,useEventProperties:()=>E,useGeolocation:()=>V,useHawkEyeControl:()=>ee,useInfoWindow:()=>te,useMap:()=>T,useMapContext:()=>I,useMapTypeControl:()=>ie,useMarker:()=>de,useMassMarks:()=>Ae,usePolygon:()=>ge,usePolyline:()=>Se,usePortal:()=>M,usePrevious:()=>A,useRectangle:()=>He,useScaleControl:()=>Ne,useSetStatus:()=>m,useSettingProperties:()=>w,useText:()=>Fe,useTileLayer:()=>se,useToolBarControl:()=>Ye,useVisiable:()=>h,useWeather:()=>Je});var l=a(442),s=a.n(l),u=a(144),c=a(85),p=["children"],d=e=>{var{children:o}=e,n=i(e,p),[t,a]=(0,l.useState)(!1),[r,s]=(0,l.useState)();return(0,l.useEffect)(()=>{var e=n.akey||"",o=n.plugins;(0,u.load)({key:e,plugins:o,version:n.version||"2.0",AMapUI:n.AMapUI,Loca:n.Loca}).then(()=>{s(void 0),a(!0)}).catch(e=>{s(e)})},[n.akey]),r?(0,c.jsx)("div",{style:{color:"red"},children:r.message}):t?(0,c.jsx)(l.Fragment,{children:o}):null};function v(){return v=Object.assign?Object.assign.bind():function(e){for(var o=1;o<arguments.length;o++){var n=arguments[o];for(var t in n)({}).hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e},v.apply(null,arguments)}var f=a(3),M=()=>{var[e]=(0,l.useState)(()=>document.createElement("div"));return{Portal:(0,l.useCallback)(function(o){var{children:n}=o;return n?(0,f.createPortal)(n,e):null},[e]),container:e}};function m(e,o,n){void 0===o&&(o={}),void 0===n&&(n=[]),n.forEach(n=>{var t=n,[a,r]=(0,l.useState)(o[t]);(0,l.useEffect)(()=>{if(e&&void 0!==o[t]&&o[t]!==a){var n=e.getStatus();e.setStatus(v({},n,{[t]:o[t]})),r(o[t])}},[e,o[t]])})}function h(e,o){var[n,t]=(0,l.useState)(o);(0,l.useEffect)(()=>{e&&void 0!==o&&(o?e.show&&e.show():e.hide&&e.hide(),o!==n&&t(o))},[e,o])}function A(e){var o=(0,l.useRef)();return(0,l.useEffect)(()=>{o.current=e}),o.current}function E(e,o,n,t){void 0===o&&(o={}),void 0===n&&(n=[]),n.forEach(n=>{var t=o[n];(0,l.useEffect)(()=>{if(e){var o=n.toLocaleLowerCase().replace(/^on/,"");return t&&o&&e.on(o,t),()=>{o&&t&&e.off(o,t)}}},[e,t])})}function w(e,o,n){void 0===e&&(e={}),void 0===o&&(o={}),void 0===n&&(n=[]),n.forEach(n=>{var t="set"+n,a=""+n.charAt(0).toLowerCase()+n.slice(1),r=o[a],[i,s]=(0,l.useState)(r);(0,l.useEffect)(()=>{e&&void 0!==r&&r!==i&&e[t]&&"function"===typeof e[t]&&(e[t](r),s(r))},[e,r])})}var y=function(e){void 0===e&&(e={});var[o,n]=(0,l.useState)();return(0,l.useEffect)(()=>{var t;if(AMap&&!o)return AMap.v?AMap.plugin(["AMap.Autocomplete"],()=>{t=new AMap.Autocomplete(e),n(t)}):AMap.plugin(["AMap.AutoComplete"],()=>{t=new AMap.AutoComplete(e),n(t)}),()=>{t&&n(void 0)}},[]),w(o,e,["Type","City","CityLimit"]),E(o,e,["onChoose","onSelect"]),{autoComplete:o,setAutoComplete:n}},g=s().forwardRef((e,o)=>{var{autoComplete:n}=y(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{autoComplete:n})),null});var C={map:void 0,AMap:void 0,container:void 0},b=(e,o)=>v({},e,o),k=s().createContext({state:C,dispatch:()=>null});function I(){var{state:e,dispatch:o}=(0,l.useContext)(k);return v({},e,{state:e,dispatch:o})}var T=function(e){void 0===e&&(e={});var o=v({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(e),e)),[n,t]=(0,l.useState)(),[a,r]=(0,l.useState)(e.zoom||15),[i,s]=(0,l.useState)(e.container),{dispatch:u}=(0,l.useContext)(k);return(0,l.useEffect)(()=>{if(i&&!n&&AMap){i.className=i.className+" react-amap-wapper";var e=new AMap.Map(i,v({zoom:a},o));t(e)}return()=>{n&&(n.clearInfoWindow(),n.clearLimitBounds(),n.clearMap(),n.destroy(),t(void 0))}},[i,n]),(0,l.useEffect)(()=>(n&&i&&u({map:n,container:i,AMap:AMap}),()=>{u({map:void 0,container:void 0,AMap:void 0})}),[n,i]),(0,l.useMemo)(()=>{n&&"number"===typeof e.zoom&&a!==e.zoom&&e.zoom>=2&&e.zoom<=20&&(r(e.zoom),n.setZoom(e.zoom))},[a,e.zoom]),(0,l.useMemo)(()=>{e.center&&n&&n.setCenter(e.center)},[n,e.center]),m(n,e,["dragEnable","zoomEnable","jogEnable","pitchEnable","rotateEnable","animateEnable","keyboardEnable"]),w(n,e,["Zoom","LabelzIndex","Layers","City","Bounds","LimitBounds","Lang","Rotation","DefaultCursor","MapStyle","Features","DefaultLayer","Pitch"]),E(n,e,["onMouseMove","onZoomChange","onMapMove","onMouseWheel","onZoomStart","onMouseOver","onMouseOut","onDblClick","onClick","onZoomEnd","onMoveEnd","onMouseUp","onMouseDown","onRightClick","onMoveStart","onDragStart","onDragging","onDragEnd","onHotspotOut","onHotspotOver","onTouchStart","onComplete","onHotspotClick","onTouchMove","onTouchEnd","onResize"]),{map:n,setMap:t,zoom:a,setZoom:r,container:i,setContainer:s}},S=["className","children"],x=e=>{var[o,n]=(0,l.useReducer)(b,C);return(0,c.jsx)(k.Provider,{value:v({},o,{state:o,dispatch:n}),children:e.children})},L=(0,l.forwardRef)((e,o)=>{var{className:n,children:t}=e,a=i(e,S),r=window.AMap,[s,u]=(0,l.useReducer)(b,C),p=(0,l.useRef)(null),{setContainer:d,container:f,map:M}=T(v({container:a.container||p.current},a));return(0,l.useEffect)(()=>d(p.current),[p.current]),(0,l.useImperativeHandle)(o,()=>v({},a,{map:M,AMap:r,container:a.container||p.current}),[M]),(0,l.useEffect)(()=>{M&&u({map:M,container:p.current,AMap:r})},[M]),(0,c.jsxs)(k.Provider,{value:v({},s,{state:s,dispatch:u}),children:[!a.container&&(0,c.jsx)("div",{ref:p,className:n,style:v({fontSize:1,width:"100%",height:"100%"},a.style)}),r&&M&&"function"===typeof t&&t({AMap:r,map:M,container:f}),r&&M&&"function"!==typeof t&&t]})}),O=["visiable","visible"],R=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,O),{map:a}=I(),[r,s]=(0,l.useState)();return(0,l.useEffect)(()=>{if(AMap&&a&&!r){var e=new AMap.BezierCurve(v({},t));return a.add(e),s(e),()=>{e&&(AMap.v?a&&a.remove(e):a&&a.removeLayer(e),s(void 0))}}},[a]),h(r,null!=n?n:o),w(r,e,["Options","Path","ExtData","ExtData"]),E(r,e,["onHide","onShow","onDblClick","onMouseOver","onMouseUp","onMouseDown","onclick","onTouchEnd","onTouchMove","onTouchStart","onRightClick","onMouseOut"]),{bezierCurve:r,setBezierCurve:s}},P=s().forwardRef((e,o)=>{var{bezierCurve:n}=R(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{bezierCurve:n})),null}),U=["visiable","visible"],D=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,U),{map:a}=I(),[r,s]=(0,l.useState)();return(0,l.useLayoutEffect)(()=>{if(AMap&&a&&!r){var e=new AMap.Circle(v({},t));return a.add(e),s(e),()=>{a&&a.remove(e),s(void 0)}}},[a]),h(r,null!=n?n:o),w(r,e,["Center","Raius","Options","ExtData"]),E(r,e,["onHide","onShow","onRightClick","onClick","onTouchEnd","onDblClick","onTouchMove","onTouchStart","onMouseOut","onMouseOver","onMouseUp","onMouseDown"]),{circle:r,setCircle:s}},H=s().forwardRef((e,o)=>{var{circle:n}=D(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{circle:n})),null}),z=["visiable","visible"],_=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,z),{map:a}=I(),[r,s]=(0,l.useState)();return(0,l.useEffect)(()=>{if(AMap&&a&&!r){var e=new AMap.CircleMarker(v({},t));return a.add(e),s(e),()=>{e&&(AMap.v?a&&a.remove(e):a&&a.removeLayer(e),s(void 0))}}},[a]),h(r,null!=n?n:o),w(r,e,["Center","Raius","zIndex","Bubble","Cursor","StrokeColor","StrokeOpacity","StrokeWeight","FillColor","FillOpacity","Draggable","ExtData"]),E(r,e,["onHide","onShow","onMouseover","onTouchend","onClick","onTouchmove","onRightclick","onMouseup","onMouseout","onTouchstart","onMousedown","onDblclick"]),{circleMarker:r,setCircleMarker:s}},j=s().forwardRef((e,o)=>{var{circleMarker:n}=_(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{circleMarker:n})),null}),B=["position"],N=function(e){void 0===e&&(e={});var{position:o}=e,n=i(e,B),{map:t}=I(),[a,r]=(0,l.useState)();return(0,l.useEffect)(()=>{if(AMap&&t&&!a){var e=new AMap.ContextMenu(v({},n));r(e);var i=n=>e.open(t,o||n.lnglat);return t.on("rightclick",i),()=>{e&&(e.close(),t.off("rightclick",i),r(void 0))}}},[t]),E(a,e,["onOpen","onClose"]),{contextMenu:a,setContextMenu:r}},W=function(){};const Z=function(e){void 0===e&&(e={});var{text:o="",onClick:n=W}=e;return(0,l.useEffect)(()=>(e.contextMenu&&e.contextMenu.addItem(o,n,1),()=>{e.contextMenu&&e.contextMenu.removeItem(o,n)}),[e.contextMenu,e.text,e.onClick]),null};(Object.getOwnPropertyDescriptor(Z,"name")||{}).writable||Object.defineProperty(Z,"name",{value:"default",configurable:!0});var F=s().forwardRef((e,o)=>{var{contextMenu:n}=N(e);(0,l.useImperativeHandle)(o,()=>v({},e,{contextMenu:n}));var t=s().Children.toArray(e.children);return(0,c.jsx)(l.Fragment,{children:AMap&&n&&t.map((o,t)=>s().isValidElement(o)?s().cloneElement(o,v({},o.props,{AMap:AMap,map:e.map,contextMenu:n,key:t})):null)})});function G(e){void 0===e&&(e={});var{position:o,visiable:n,visible:t,offset:a}=e,[r,i]=(0,l.useState)(),{map:s}=I();return(0,l.useEffect)(()=>{var e;if(s&&!r)return s.plugin(["AMap.ControlBar","AMap.HawkEye"],()=>{e=new AMap.ControlBar({offset:a,position:o}),s.addControl(e),i(e)}),()=>{e&&s.removeControl(e)}},[s]),h(r,null!=t?t:n),{controlBarControl:r,setControlBarControl:i}}F.Item=Z;var Y=s().forwardRef((e,o)=>{var{controlBarControl:n}=G(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{controlBarControl:n}),[n]),null}),q=["visiable","visible"],J=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,q),{map:a}=I(),[r,s]=(0,l.useState)();return(0,l.useLayoutEffect)(()=>{if(AMap&&a&&!r){var e=new AMap.Ellipse(v({},t));return a.add(e),s(e),()=>{e&&(AMap.v?a&&a.remove(e):a&&a.removeLayer(e),s(void 0))}}},[a]),h(r,null!=n?n:o),w(r,e,["Center","Radius","Options","ExtData"]),E(r,e,["onHide","onShow","onClick","onDblClick","onRightClick","onMouseOut","onMouseOver","onMouseUp","onMouseDown","onTouchEnd","onTouchMove","onTouchStart"]),{ellipse:r,setEllipse:s}},$=s().forwardRef((e,o)=>{var{ellipse:n}=J(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{ellipse:n})),null}),K=["type","onComplete","onError"],V=function(e){void 0===e&&(e={});var{type:o="position",onComplete:n,onError:t}=e,a=i(e,K),[r,s]=(0,l.useState)(),{map:u}=I();function c(e,o){"complete"===e&&n?n(o):t&&t(o)}return(0,l.useEffect)(()=>{var e;if(AMap&&!r)return AMap.plugin(["AMap.Geolocation"],()=>{e=new AMap.Geolocation(v({},a)),s(e)}),()=>{e&&s(void 0)}},[AMap]),(0,l.useMemo)(()=>{if(/^(position|cityInfo)$/.test(o)){var e="position"===o?"getCurrentPosition":"getCityInfo";r&&u?(r[e](c),u.addControl(r)):r&&r[e](c)}},[r]),{geolocation:r,setGeolocation:s}},Q=s().forwardRef((e,o)=>{var{geolocation:n}=V(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{geolocation:n})),null}),X=["offset","visiable","visible"];function ee(e){void 0===e&&(e={});var[o,n]=(0,l.useState)(),{offset:t,visiable:a,visible:r}=e,s=i(e,X),{map:u}=I();return(0,l.useEffect)(()=>{var e;u&&!o&&u.plugin(["AMap.HawkEye"],()=>{e=new AMap.HawkEye(v({offset:t},s)),u.addControl(e),n(e)});return()=>{o&&u&&(u&&u.removeControl(o),n(void 0))}},[u,o]),h(o,null!=r?r:a),{hawkEyeControl:o,setHawkEyeControl:n}}var oe=s().forwardRef((e,o)=>{var{hawkEyeControl:n}=ee(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{hawkEyeControl:n}),[n]),null}),ne=["visiable","visible","position"],te=function(e){void 0===e&&(e={});var{visiable:o,visible:n,position:t}=e,a=i(e,ne),{map:r}=I(),[s,u]=(0,l.useState)(o),[c,p]=(0,l.useState)(),{container:d,Portal:f}=M();(0,l.useLayoutEffect)(()=>{if(AMap&&r&&!c){var o=r.getCenter();e.children&&(a.content=d);var n=new AMap.InfoWindow(v({},a,{position:t||o}));return p(n),s&&n.open(r,t||o),()=>{n&&(r&&r.remove(n),p(void 0))}}},[r]),(0,l.useEffect)(()=>{c&&c.setContent(e.children?d:a.content||"")},[e.children,d,a.content,c]);var m=null!=n?n:o;return(0,l.useMemo)(()=>{if(s!==m&&c&&r)if(u(m),m){var e=r.getCenter();c.open(r,t||e)}else c.close()},[m,c]),(0,l.useEffect)(()=>{if(r&&c&&m){var e=r.getCenter();c.open(r,t||e)}},[t]),w(c,e,["Content","Anchor","Size"]),E(c,e,["onOpen","onClose","onChange"]),{isOpen:s,setIsOpen:u,infoWindow:c,setInfoWindow:p,InfoWindowPortal:f}},ae=s().forwardRef((e,o)=>{var{infoWindow:n,InfoWindowPortal:t}=te(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{infoWindow:n})),(0,c.jsx)(t,{children:e.children})}),re=["visiable","visible","defaultType"];function ie(e){void 0===e&&(e={});var[o,n]=(0,l.useState)(),{visiable:t,visible:a,defaultType:r=0}=e,s=i(e,re),{map:u}=I();return(0,l.useEffect)(()=>{var e;if(u&&!o)return u.plugin(["AMap.MapType"],()=>{e=new AMap.MapType(v({defaultType:r},s)),u.addControl(e),n(e)}),()=>{e&&u.removeControl(e)}},[u]),h(o,null!=a?a:t),{mapTypeControl:o,setMapTypeControl:n}}var le=s().forwardRef((e,o)=>{var{mapTypeControl:n}=ie(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{mapTypeControl:n}),[n]),null});function se(e){void 0===e&&(e={});var[o,n]=(0,l.useState)(),{visiable:t,visible:a,type:r,options:i}=e,{map:s}=I();return(0,l.useEffect)(()=>{if(s){var o=null;if(r)switch(r){case ue.ROADNET:o=new AMap.TileLayer.RoadNet({});break;case ue.SATELLITE:o=new AMap.TileLayer.Satellite({});break;case ue.TRAFFIC:o=new AMap.TileLayer.Traffic({})}return i&&(o=new AMap.TileLayer(i)),o&&(s.add(o),e.onAdded&&e.onAdded(),n(o)),()=>{o&&(AMap.v?s&&s.remove(o):s&&s.removeLayer(o),n(null),e.onRemoved&&e.onRemoved())}}},[s,r,i]),h(o,null!=a?a:t),{tileLayer:o,setTileLayer:n}}var ue=function(e){return e.SATELLITE="satellite",e.TRAFFIC="traffic",e.ROADNET="roadnet",e}({}),ce=s().forwardRef((e,o)=>{var{tileLayer:n}=se(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{tileLayer:n}),[n]),null}),pe=["visiable","visible","children"],de=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,pe),{map:a}=I(),[r,s]=(0,l.useState)(),{container:u,Portal:c}=M();return(0,l.useLayoutEffect)(()=>{if(a&&!r){e.children&&(t.content=u);var o=new AMap.Marker(v({},t));return a.add(o),s(o),()=>{o&&(o.setMap(null),s(void 0))}}},[a]),h(r,null!=n?n:o),w(r,e,["Path","Anchor","Offset","Animation","Clickable","Position","Angle","Label","zIndex","Icon","Draggable","Cursor","Content","Map","Title","Top","Shadow","Shape","ExtData"]),E(r,e,["onClick","onDblClick","onRightClick","onMouseMove","onMouseOver","onMouseOut","onMouseDown","onMouseUp","onDragStart","onDragging","onDragEnd","onMoving","onMoveEnd","onMoveAlong","onTouchStart","onTouchMove","onTouchEnd"]),{marker:r,setMarker:s,MarkerPortal:c}},ve=(0,l.forwardRef)((e,o)=>{var{marker:n,MarkerPortal:t}=de(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{marker:n}),[n]),(0,c.jsx)(t,{children:e.children})}),fe=["visiable","visible","children","text","icon"],Me={image:"http://webapi.amap.com/theme/v1.3/markers/b/mark_bs.png",size:[19,32],anchor:"center"},me=(0,l.forwardRef)((e,o)=>{var{labelMarker:n}=function(e){void 0===e&&(e={});var{visiable:o,visible:n,text:t,icon:a=Me}=e,r=i(e,fe),{map:s,AMap:u}=I(),[c,p]=(0,l.useState)();return(0,l.useLayoutEffect)(()=>{if(!c&&s){var e,o=t;t||(o={content:"",direction:"right",offset:[-20,-5],style:{fontSize:12,fillColor:"#22886f",strokeColor:"#fff",strokeWidth:2}});var n,i=new u.LabelMarker(v({style:a,icon:a,text:o},r));return p(i),0===(null==u||null==(e=u.v)?void 0:e.indexOf("1.4"))&&(s.labelMarkersLayer?n=s.labelMarkersLayer:(s.labelMarkersLayer=n=new u.LabelsLayer({zooms:[3,20],zIndex:101,collision:!0,animation:!0}),s.add(n)),n.add(i)),s.add(i),()=>{var e,o;i&&(0===(null==u||null==(e=u.v)?void 0:e.indexOf("1.4"))?null==s||null==(o=s.labelMarkersLayer)||o.remove(i):i.remove(),p(void 0))}}},[s]),h(c,null!=n?n:o),w(c,e,["Name","Position","Zooms","Opacity","zIndex","Rank","Text","Icon","ExtData","Top"]),E(c,e,["onTouchStart","onTouchMove","onTouchEnd","onClick","onMouseMove","onMouseOver","onMouseDown","onMouseUp","onMouseOut","onMousedown","onMouseup","onTouchstart","onTouchmove","onTouchend","onMousemove","onMouseover","onMouseout"]),{labelMarker:c,setLabelMarker:p}}(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{labelMarker:n}),[n]),null}),he=["visiable","visible"],Ae=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,he),{map:a}=I(),{opacity:r=1,zIndex:s=1111,style:u,data:c}=t||{},[p,d]=(0,l.useState)();return(0,l.useLayoutEffect)(()=>{if(AMap&&a&&!p){var e=u;e||(e=[{url:"https://webapi.amap.com/images/mass/mass0.png",anchor:new AMap.Pixel(6,6),size:new AMap.Size(11,11),zIndex:3},{url:"https://webapi.amap.com/images/mass/mass1.png",anchor:new AMap.Pixel(4,4),size:new AMap.Size(7,7),zIndex:2},{url:"https://webapi.amap.com/images/mass/mass2.png",anchor:new AMap.Pixel(3,3),size:new AMap.Size(5,5),zIndex:1}]);var o=new AMap.MassMarks(c||[],{opacity:r,zIndex:s,style:e});return d(o),o.setMap(a),()=>{o&&(o.clear(),d(void 0))}}},[a]),h(p,null!=n?n:o),w(p,e,["Map","Data","Style","Opacity","zIndex","Zooms"]),E(p,e,["onClick","onDblClick","onMouseMove","onMouseOut","onMouseUp","onMouseDown","onMouseOver","onTouchStart","onTouchEnd"]),{massMarks:p,setMassMarks:d}},Ee=s().forwardRef((e,o)=>{var{massMarks:n}=Ae(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{massMarks:n}),[n,e]),null}),we=["visiable","visible"],ye=["path"],ge=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,we),{map:a}=I(),[r,s]=(0,l.useState)();return(0,l.useLayoutEffect)(()=>{if(AMap&&a&&!r){var e=new AMap.Polygon(v({},t));return a.add(e),s(e),()=>{if(e)try{a&&a.remove(e)}catch(o){}s(void 0)}}},[a]),(0,l.useEffect)(()=>{if(r){var{path:e}=t,o=i(t,ye);e&&r.setPath(e),r.setOptions(o)}},[r,t]),h(r,null!=n?n:o),w(r,e,["Path","Options","Map","ExtData","Draggable"]),E(r,e,["onClick","onDblClick","onRightClick","onHide","onShow","onMouseDown","onMouseUp","onMouseOver","onMouseOut","onChange","onDragStart","onDragging","onDragEnd","onTouchStart","onTouchMove","onTouchEnd"]),{polygon:r,setPolygon:s}},Ce=(0,l.createContext)(void 0),be=(0,l.forwardRef)((e,o)=>{var{children:n}=e,{polygon:t}=ge(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{polygon:t}),[t]),(0,c.jsx)(Ce.Provider,{value:t,children:n})}),ke=(0,l.forwardRef)((e,o)=>{var{active:n}=e,{map:t}=I(),a=(0,l.useContext)(Ce),[r,i]=(0,l.useState)(!0),[s,u]=(0,l.useState)();return(0,l.useImperativeHandle)(o,()=>v({},e,{polyEditor:s})),(0,l.useEffect)(()=>{if(a&&t&&!s&&AMap&&AMap.PolygonEditor){var e=new AMap.PolygonEditor(t,a);a.on("hide",()=>i(!1)),a.on("show",()=>i(!0)),u(e)}},[a]),(0,l.useEffect)(()=>{s&&(r&&!n&&a?(s.close(),e.onEnd&&e.onEnd({target:a})):r&&n&&a?(s.open(),e.onAdd&&e.onAdd({target:a})):!r&&n&&a?(s.close(),e.onEnd&&e.onEnd({target:a})):r||n||!a||s.close())},[n,r,a]),E(s,e,["onEnd","onAddnode","onRemovenode","onAdjust","onMove","onAdd"]),null}),Ie=["visiable","visible"],Te=["path"];function Se(e){void 0===e&&(e={});var[o,n]=(0,l.useState)(),{visiable:t,visible:a}=e,r=i(e,Ie),{map:s}=I();return(0,l.useLayoutEffect)(()=>{if(s&&!o){var e=new AMap.Polyline(r);return s.add(e),n(e),()=>{if(e){try{s&&s.remove(e)}catch(o){}n(void 0)}}}},[s]),(0,l.useEffect)(()=>{if(o){var{path:e}=r,n=i(r,Te);e&&o.setPath(e),o.setOptions(n)}},[o,r]),h(o,null!=a?a:t),w(o,e,["Path","Options","Map","ExtData","Draggable"]),E(o,e,["onHide","onShow","onMouseOut","onChange","onDragStart","onDragging","onDragEnd","onRightClick","onDblClick","onMouseDown","onClick","onMouseOver","onTouchEnd","onTouchMove","onTouchStart","onMouseUp"]),{polyline:o,setPolyline:n}}var xe=(0,l.createContext)(void 0),Le=s().forwardRef((e,o)=>{var{children:n}=e,{polyline:t}=Se(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{polyline:t}),[t]),(0,c.jsx)(xe.Provider,{value:t,children:n})}),Oe=(0,l.forwardRef)((e,o)=>{var n=(0,l.useContext)(xe),t=(0,l.useContext)(Ce),{active:a,polyElement:r=n||t}=e,{map:i}=I(),[s,u]=(0,l.useState)(!0),[c,p]=(0,l.useState)();return(0,l.useImperativeHandle)(o,()=>v({},e,{polyEditor:c})),(0,l.useEffect)(()=>{if(r&&i&&!c&&AMap&&AMap.PolyEditor){var e=new AMap.PolyEditor(i,r);r.on("hide",()=>u(!1)),r.on("show",()=>u(!0)),p(e)}},[r]),(0,l.useEffect)(()=>{c&&(s&&!a?(c.close(),e.onEnd&&e.onEnd({type:"end",target:e.polyElement})):s&&a?c.open():!s&&a&&(c.close(),e.onEnd&&e.onEnd({type:"end",target:e.polyElement})))},[a,s]),E(c,e,["onEnd","onAddnode","onAdjust","onRemovenode"]),null}),Re=(0,l.forwardRef)((e,o)=>{var{active:n}=e,{map:t}=I(),a=(0,l.useContext)(xe),[r,i]=(0,l.useState)(!0),[s,u]=(0,l.useState)();return(0,l.useImperativeHandle)(o,()=>v({},e,{polyEditor:s})),(0,l.useEffect)(()=>{if(a&&t&&!s&&AMap&&AMap.PolylineEditor){var e=new AMap.PolylineEditor(t,a);a.on("hide",()=>i(!1)),a.on("show",()=>i(!0)),u(e)}},[a]),(0,l.useEffect)(()=>{s&&(r&&!n&&a?(s.close(),e.onEnd&&e.onEnd({target:a})):r&&n&&a?(s.open(),e.onAdd&&e.onAdd({target:a})):!r&&n&&a&&(s.close(),e.onEnd&&e.onEnd({target:a})))},[n,r,a,s]),E(s,e,["onEnd","onAddnode","onRemovenode","onAdjust","onAdd"]),null}),Pe=function(e){return e[e.MARKER=0]="MARKER",e[e.POLYLINE=1]="POLYLINE",e[e.POLYGON=2]="POLYGON",e[e.CIRCLE=3]="CIRCLE",e[e.RECTANGLE=4]="RECTANGLE",e[e.MEASUREAREA=5]="MEASUREAREA",e[e.RULE=6]="RULE",e[e.RECTZOOMIN=7]="RECTZOOMIN",e[e.RECTZOOMOUT=8]="RECTZOOMOUT",e}({}),Ue=(0,l.forwardRef)((e,o)=>{var{active:n,type:t,drawElementOptions:a,ifClear:r}=e,{map:i}=I(),[s,u]=(0,l.useState)();return(0,l.useImperativeHandle)(o,()=>v({},e,{mouseTool:s})),(0,l.useEffect)(()=>{if(i&&!s&&AMap&&AMap.MouseTool){var e=new AMap.MouseTool(i);u(e)}},[i,Map,AMap.MouseTool]),(0,l.useEffect)(()=>{if(s)if(n)switch(t){case Pe.MARKER:s.marker(a||{});break;case Pe.POLYLINE:s.polyline(a||{});break;case Pe.POLYGON:s.polygon(a||{});break;case Pe.CIRCLE:s.circle(a||{});break;case Pe.RECTANGLE:s.rectangle(a||{});break;case Pe.MEASUREAREA:s.measureArea(a||{});break;case Pe.RULE:s.rule(a||{});break;case Pe.RECTZOOMIN:s.rectZoomIn(a||{});break;case Pe.RECTZOOMOUT:s.rectZoomOut(a||{})}else s.close(r)},[n,r]),E(s,e,["onDraw"]),null}),De=["visiable","visible"],He=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,De),{map:a}=I(),[r,s]=(0,l.useState)();return(0,l.useLayoutEffect)(()=>{if(AMap&&a&&!r){var e=new AMap.Rectangle(v({},t));return a.add(e),s(e),()=>{e&&(AMap.v?a&&a.remove(e):a&&a.removeLayer(e)),s(void 0)}}},[a]),h(r,null!=n?n:o),w(r,e,["Bounds","Options","Map","ExtData"]),E(r,e,["onHide","onShow","onClick","onDblClick","onRightClick","onMouseOut","onMouseOver","onMouseUp","onMouseDown","onTouchEnd","onTouchMove","onTouchStart"]),{rectangle:r,setRectangle:s}},ze=s().forwardRef((e,o)=>{var{rectangle:n}=He(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{rectangle:n})),null}),_e={};function je(e,o){void 0===o&&(o="_react_amap_css");var n=document&&(document.head||document.getElementsByTagName("head")[0]),t=document.getElementById(o);return new Promise((a,r)=>{if(!document||e in _e||t)a();else{var i=document.createElement("link");i.type="text/css",i.rel="stylesheet",i.id=o,i.href=e,i.onerror=o=>{n.removeChild(i),r(new URIError("The css "+e+" is no accessible."))},i.onload=()=>{_e[e]=!0,a()},n.appendChild(i)}})}function Be(e,o){void 0===o&&(o="_react_amap_plugin");var n=document&&(document.head||document.getElementsByTagName("head")[0]),t=document.getElementById(o);return new Promise((a,r)=>{if(!document||e in _e||t)a();else{var i=document.createElement("script");i.type="text/javascript",i.id=o,i.async=!0,i.defer=!0,i.src=e,i.onerror=o=>{n.removeChild(i),r(new URIError("The Script "+e+" is no accessible."))},i.onload=()=>{_e[e]=!0,a()},n.appendChild(i)}})}function Ne(e){void 0===e&&(e={});var[o,n]=(0,l.useState)(),{position:t,visiable:a,visible:r,offset:i}=e,{map:s}=I();return(0,l.useEffect)(()=>{var e;if(s&&!o)return s.plugin(["AMap.Scale"],()=>{e=new AMap.Scale({offset:i,position:t}),s.addControl(e),n(e)}),()=>{e&&s.removeControl(e)}},[s]),h(o,null!=r?r:a),{scaleControl:o,setScaleControl:n}}var We=s().forwardRef((e,o)=>{var{scaleControl:n}=Ne(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{scaleControl:n}),[n]),null}),Ze=["visiable","visible"],Fe=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,Ze),[a,r]=(0,l.useState)(),{map:s}=I(),{container:u,Portal:c}=M();return(0,l.useLayoutEffect)(()=>{if(AMap&&s&&!a){e.children&&(t.text=u.innerHTML);var o=new AMap.Text(v({},t));return s.add(o),r(o),()=>{o&&(o.remove(),r(void 0))}}},[s]),(0,l.useEffect)(()=>{a&&a.setText(e.children?u.innerHTML:e.text||"")},[e.children,e.text,u,a]),h(a,null!=n?n:o),w(a,e,["Style","Title","Clickable","Draggable","Map","Position","Offset","Angle","zIndex","Top","Cursor","ExtData"]),E(a,e,["onMoving","onTouchMove","onTouchEnd","onMoveaLong","onTouchStart","onMoveEnd","onClick","onDblClick","onRightClick","onMouseMove","onMouseOver","onMouseOut","onMouseDown","onMouseUp","onDragStart","onDragEnd","onDragging"]),{text:a,setText:r,TextPortal:c}},Ge=(0,l.forwardRef)((e,o)=>{var{text:n,TextPortal:t}=Fe(v({},e));return(0,l.useImperativeHandle)(o,()=>v({},e,{text:n})),e.children?(0,c.jsx)(t,{children:e.children}):null});function Ye(e){void 0===e&&(e={});var[o,n]=(0,l.useState)(),{position:t,visiable:a,visible:r,offset:i}=e,{map:s}=I();return(0,l.useEffect)(()=>{var e;if(s&&!o)return s.plugin(["AMap.ToolBar"],()=>{e=new AMap.ToolBar({offset:i,position:t}),s.addControl(e),n(e)}),()=>{e&&s.removeControl(e)}},[s]),h(o,null!=r?r:a),{toolBarControl:o,setToolBarControl:n}}var qe=s().forwardRef((e,o)=>{var{toolBarControl:n}=Ye(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{toolBarControl:n}),[n]),null}),Je=function(e){void 0===e&&(e={});var{city:o="",type:n="live",onComplete:t,onError:a}=e,[r,i]=(0,l.useState)(),s="live"===n?"getLive":"getForecast";return(0,l.useEffect)(()=>{var e;if(AMap&&!r)return AMap.plugin(["AMap.Weather"],()=>{e=new AMap.Weather,i(e)}),()=>{e&&i(void 0)}},[]),(0,l.useMemo)(()=>{var e;r&&o&&n&&(e=r,n&&o&&/^(live|forecast)$/.test(n)&&e[s](o,(e,o)=>{e&&a?a(e):o&&t&&t(o)}))},[r,o,n]),{weather:r,setWeather:i}},$e=s().forwardRef((e,o)=>{var{weather:n}=Je(e);return(0,l.useImperativeHandle)(o,()=>v({},e,{weather:n})),null});return r})());