@uiw/react-amap
Version:
高德地图 React 组件
2 lines • 33.1 kB
JavaScript
/*! 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={3:e=>{e.exports=o},85:(e,o,n)=>{e.exports=n(335)},144:function(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},442:o=>{o.exports=e}},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:()=>C,BezierCurve:()=>P,Circle:()=>H,CircleMarker:()=>j,Context:()=>k,ContextMenu:()=>Z,ControlBarControl:()=>G,Ellipse:()=>J,Geolocation:()=>V,HawkEyeControl:()=>ee,InfoWindow:()=>te,LabelMarker:()=>Me,Map:()=>L,MapTypeControl:()=>ie,Marker:()=>de,MassMarks:()=>Ae,MouseTool:()=>Pe,MouseToolDrawType:()=>Oe,PolyEditor:()=>Le,Polygon:()=>ge,PolygonContext:()=>Ce,PolygonEditor:()=>be,Polyline:()=>xe,PolylineContext:()=>Se,PolylineEditor:()=>Re,Provider:()=>x,Rectangle:()=>He,ScaleControl:()=>Ne,Text:()=>Fe,TileLayer:()=>ue,TileLayerType:()=>se,ToolBarControl:()=>Ye,Weather:()=>Je,initialState:()=>g,reducer:()=>b,requireCss:()=>_e,requireScript:()=>je,useAutoComplete:()=>y,useBezierCurve:()=>O,useCircle:()=>D,useCircleMarker:()=>_,useContextMenu:()=>N,useControlBarControl:()=>F,useEllipse:()=>q,useEventProperties:()=>E,useGeolocation:()=>K,useHawkEyeControl:()=>X,useInfoWindow:()=>ne,useMap:()=>T,useMapContext:()=>I,useMapTypeControl:()=>re,useMarker:()=>pe,useMassMarks:()=>he,usePolygon:()=>ye,usePolyline:()=>Te,usePortal:()=>M,usePrevious:()=>A,useRectangle:()=>De,useScaleControl:()=>Be,useSetStatus:()=>m,useSettingProperties:()=>w,useText:()=>Ze,useTileLayer:()=>le,useToolBarControl:()=>Ge,useVisiable:()=>h,useWeather:()=>qe});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}},C=s().forwardRef(((e,o)=>{var{autoComplete:n}=y(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{autoComplete:n}))),null}));var g={map:void 0,AMap:void 0,container:void 0},b=(e,o)=>v({},e,o),k=s().createContext({state:g,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,g);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,g),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]})})),R=["visiable","visible"],O=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,R),{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}=O(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(){};var Z=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 F(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}}Z.Item=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};var G=s().forwardRef(((e,o)=>{var{controlBarControl:n}=F(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{controlBarControl:n})),[n]),null})),Y=["visiable","visible"],q=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,Y),{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}},J=s().forwardRef(((e,o)=>{var{ellipse:n}=q(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{ellipse:n}))),null})),$=["type","onComplete","onError"],K=function(e){void 0===e&&(e={});var{type:o="position",onComplete:n,onError:t}=e,a=i(e,$),[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}},V=s().forwardRef(((e,o)=>{var{geolocation:n}=K(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{geolocation:n}))),null})),Q=["offset","visiable","visible"];function X(e){void 0===e&&(e={});var[o,n]=(0,l.useState)(),{offset:t,visiable:a,visible:r}=e,s=i(e,Q),{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 ee=s().forwardRef(((e,o)=>{var{hawkEyeControl:n}=X(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{hawkEyeControl:n})),[n]),null})),oe=["visiable","visible","position"],ne=function(e){void 0===e&&(e={});var{visiable:o,visible:n,position:t}=e,a=i(e,oe),{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}},te=s().forwardRef(((e,o)=>{var{infoWindow:n,InfoWindowPortal:t}=ne(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{infoWindow:n}))),(0,c.jsx)(t,{children:e.children})})),ae=["visiable","visible","defaultType"];function re(e){void 0===e&&(e={});var[o,n]=(0,l.useState)(),{visiable:t,visible:a,defaultType:r=0}=e,s=i(e,ae),{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 ie=s().forwardRef(((e,o)=>{var{mapTypeControl:n}=re(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{mapTypeControl:n})),[n]),null}));function le(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 se.ROADNET:o=new AMap.TileLayer.RoadNet({});break;case se.SATELLITE:o=new AMap.TileLayer.Satellite({});break;case se.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 se=function(e){return e.SATELLITE="satellite",e.TRAFFIC="traffic",e.ROADNET="roadnet",e}({}),ue=s().forwardRef(((e,o)=>{var{tileLayer:n}=le(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{tileLayer:n})),[n]),null})),ce=["visiable","visible","children"],pe=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,ce),{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}},de=(0,l.forwardRef)(((e,o)=>{var{marker:n,MarkerPortal:t}=pe(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{marker:n})),[n]),(0,c.jsx)(t,{children:e.children})})),ve=["visiable","visible","children","text","icon"],fe={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=fe}=e,r=i(e,ve),{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})),me=["visiable","visible"],he=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,me),{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}},Ae=s().forwardRef(((e,o)=>{var{massMarks:n}=he(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{massMarks:n})),[n,e]),null})),Ee=["visiable","visible"],we=["path"],ye=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,Ee),{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,we);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),ge=(0,l.forwardRef)(((e,o)=>{var{children:n}=e,{polygon:t}=ye(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{polygon:t})),[t]),(0,c.jsx)(Ce.Provider,{value:t,children:n})})),be=(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})))}),[n,r,a]),E(s,e,["onEnd","onAddnode","onRemovenode","onAdjust","onMove","onAdd"]),null})),ke=["visiable","visible"],Ie=["path"];function Te(e){void 0===e&&(e={});var[o,n]=(0,l.useState)(),{visiable:t,visible:a}=e,r=i(e,ke),{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,Ie);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 Se=(0,l.createContext)(void 0),xe=s().forwardRef(((e,o)=>{var{children:n}=e,{polyline:t}=Te(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{polyline:t})),[t]),(0,c.jsx)(Se.Provider,{value:t,children:n})})),Le=(0,l.forwardRef)(((e,o)=>{var n=(0,l.useContext)(Se),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)(Se),[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})),Oe=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}({}),Pe=(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 Oe.MARKER:s.marker(a||{});break;case Oe.POLYLINE:s.polyline(a||{});break;case Oe.POLYGON:s.polygon(a||{});break;case Oe.CIRCLE:s.circle(a||{});break;case Oe.RECTANGLE:s.rectangle(a||{});break;case Oe.MEASUREAREA:s.measureArea(a||{});break;case Oe.RULE:s.rule(a||{});break;case Oe.RECTZOOMIN:s.rectZoomIn(a||{});break;case Oe.RECTZOOMOUT:s.rectZoomOut(a||{})}else s.close(r)}),[n,r]),E(s,e,["onDraw"]),null})),Ue=["visiable","visible"],De=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,Ue),{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}},He=s().forwardRef(((e,o)=>{var{rectangle:n}=De(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{rectangle:n}))),null})),ze={};function _e(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 ze||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=()=>{ze[e]=!0,a()},n.appendChild(i)}}))}function je(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 ze||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=()=>{ze[e]=!0,a()},n.appendChild(i)}}))}function Be(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 Ne=s().forwardRef(((e,o)=>{var{scaleControl:n}=Be(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{scaleControl:n})),[n]),null})),We=["visiable","visible"],Ze=function(e){void 0===e&&(e={});var{visiable:o,visible:n}=e,t=i(e,We),[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}},Fe=(0,l.forwardRef)(((e,o)=>{var{text:n,TextPortal:t}=Ze(v({},e));return(0,l.useImperativeHandle)(o,(()=>v({},e,{text:n}))),e.children?(0,c.jsx)(t,{children:e.children}):null}));function Ge(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 Ye=s().forwardRef(((e,o)=>{var{toolBarControl:n}=Ge(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{toolBarControl:n})),[n]),null})),qe=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}},Je=s().forwardRef(((e,o)=>{var{weather:n}=qe(e);return(0,l.useImperativeHandle)(o,(()=>v({},e,{weather:n}))),null}));return r})()));