@uiw/react-amap
Version:
高德地图 React 组件
2 lines • 33.6 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={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:()=>y,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:()=>Ce,PolygonContext:()=>ye,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:()=>C,reducer:()=>b,requireCss:()=>_e,requireScript:()=>je,useAutoComplete:()=>g,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:()=>ge,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 o=e.children,n=i(e,p),t=(0,l.useState)(!1),a=t[0],r=t[1],s=(0,l.useState)(),d=s[0],v=s[1];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(()=>{v(void 0),r(!0)}).catch(e=>{v(e)})},[n.akey]),d?(0,c.jsx)("div",{style:{color:"red"},children:d.message}):a?(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"))[0];return{Portal:(0,l.useCallback)(function(o){var n=o.children;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=(0,l.useState)(o[t]),r=a[0],i=a[1];(0,l.useEffect)(()=>{if(e&&void 0!==o[t]&&o[t]!==r){var n=e.getStatus();e.setStatus(v({},n,{[t]:o[t]})),i(o[t])}},[e,o[t]])})}function h(e,o){var n=(0,l.useState)(o),t=n[0],a=n[1];(0,l.useEffect)(()=>{e&&void 0!==o&&(o?e.show&&e.show():e.hide&&e.hide(),o!==t&&a(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=(0,l.useState)(r),s=i[0],u=i[1];(0,l.useEffect)(()=>{e&&void 0!==r&&r!==s&&e[t]&&"function"===typeof e[t]&&(e[t](r),u(r))},[e,r])})}var g=function(e){void 0===e&&(e={});var o=(0,l.useState)(),n=o[0],t=o[1];return(0,l.useEffect)(()=>{var o;if(AMap&&!n)return AMap.v?AMap.plugin(["AMap.Autocomplete"],()=>{o=new AMap.Autocomplete(e),t(o)}):AMap.plugin(["AMap.AutoComplete"],()=>{o=new AMap.AutoComplete(e),t(o)}),()=>{o&&t(void 0)}},[]),w(n,e,["Type","City","CityLimit"]),E(n,e,["onChoose","onSelect"]),{autoComplete:n,setAutoComplete:t}},y=s().forwardRef((e,o)=>{var n=g(e).autoComplete;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 e=(0,l.useContext)(k),o=e.state;return v({},o,{state:o,dispatch:e.dispatch})}var T=function(e){void 0===e&&(e={});var o=e,n=v({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(o),o)),t=(0,l.useState)(),a=t[0],r=t[1],i=(0,l.useState)(e.zoom||15),s=i[0],u=i[1],c=(0,l.useState)(e.container),p=c[0],d=c[1],f=(0,l.useContext)(k).dispatch;return(0,l.useEffect)(()=>{if(p&&!a&&AMap){p.className=p.className+" react-amap-wapper";var e=new AMap.Map(p,v({zoom:s},n));r(e)}return()=>{a&&(a.clearInfoWindow(),a.clearLimitBounds(),a.clearMap(),a.destroy(),r(void 0))}},[p,a]),(0,l.useEffect)(()=>(a&&p&&f({map:a,container:p,AMap:AMap}),()=>{f({map:void 0,container:void 0,AMap:void 0})}),[a,p]),(0,l.useMemo)(()=>{a&&"number"===typeof e.zoom&&s!==e.zoom&&e.zoom>=2&&e.zoom<=20&&(u(e.zoom),a.setZoom(e.zoom))},[s,e.zoom]),(0,l.useMemo)(()=>{e.center&&a&&a.setCenter(e.center)},[a,e.center]),m(a,e,["dragEnable","zoomEnable","jogEnable","pitchEnable","rotateEnable","animateEnable","keyboardEnable"]),w(a,e,["Zoom","LabelzIndex","Layers","City","Bounds","LimitBounds","Lang","Rotation","DefaultCursor","MapStyle","Features","DefaultLayer","Pitch"]),E(a,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:a,setMap:r,zoom:s,setZoom:u,container:p,setContainer:d}},S=["className","children"],x=e=>{var o=(0,l.useReducer)(b,C),n=o[0],t=o[1];return(0,c.jsx)(k.Provider,{value:v({},n,{state:n,dispatch:t}),children:e.children})},L=(0,l.forwardRef)((e,o)=>{var n=e.className,t=e.children,a=i(e,S),r=window.AMap,s=(0,l.useReducer)(b,C),u=s[0],p=s[1],d=(0,l.useRef)(null),f=T(v({container:a.container||d.current},a)),M=f.setContainer,m=f.container,h=f.map;return(0,l.useEffect)(()=>M(d.current),[d.current]),(0,l.useImperativeHandle)(o,()=>v({},a,{map:h,AMap:r,container:a.container||d.current}),[h]),(0,l.useEffect)(()=>{h&&p({map:h,container:d.current,AMap:r})},[h]),(0,c.jsxs)(k.Provider,{value:v({},u,{state:u,dispatch:p}),children:[!a.container&&(0,c.jsx)("div",{ref:d,className:n,style:v({fontSize:1,width:"100%",height:"100%"},a.style)}),r&&h&&"function"===typeof t&&t({AMap:r,map:h,container:m}),r&&h&&"function"!==typeof t&&t]})}),R=["visiable","visible"],O=function(e){void 0===e&&(e={});var o=e,n=o.visiable,t=o.visible,a=i(o,R),r=I().map,s=(0,l.useState)(),u=s[0],c=s[1];return(0,l.useEffect)(()=>{if(AMap&&r&&!u){var e=new AMap.BezierCurve(v({},a));return r.add(e),c(e),()=>{e&&(AMap.v?r&&r.remove(e):r&&r.removeLayer(e),c(void 0))}}},[r]),h(u,null!=t?t:n),w(u,e,["Options","Path","ExtData","ExtData"]),E(u,e,["onHide","onShow","onDblClick","onMouseOver","onMouseUp","onMouseDown","onclick","onTouchEnd","onTouchMove","onTouchStart","onRightClick","onMouseOut"]),{bezierCurve:u,setBezierCurve:c}},P=s().forwardRef((e,o)=>{var n=O(e).bezierCurve;return(0,l.useImperativeHandle)(o,()=>v({},e,{bezierCurve:n})),null}),U=["visiable","visible"],D=function(e){void 0===e&&(e={});var o=e,n=o.visiable,t=o.visible,a=i(o,U),r=I().map,s=(0,l.useState)(),u=s[0],c=s[1];return(0,l.useLayoutEffect)(()=>{if(AMap&&r&&!u){var e=new AMap.Circle(v({},a));return r.add(e),c(e),()=>{r&&r.remove(e),c(void 0)}}},[r]),h(u,null!=t?t:n),w(u,e,["Center","Raius","Options","ExtData"]),E(u,e,["onHide","onShow","onRightClick","onClick","onTouchEnd","onDblClick","onTouchMove","onTouchStart","onMouseOut","onMouseOver","onMouseUp","onMouseDown"]),{circle:u,setCircle:c}},H=s().forwardRef((e,o)=>{var n=D(e).circle;return(0,l.useImperativeHandle)(o,()=>v({},e,{circle:n})),null}),z=["visiable","visible"],_=function(e){void 0===e&&(e={});var o=e,n=o.visiable,t=o.visible,a=i(o,z),r=I().map,s=(0,l.useState)(),u=s[0],c=s[1];return(0,l.useEffect)(()=>{if(AMap&&r&&!u){var e=new AMap.CircleMarker(v({},a));return r.add(e),c(e),()=>{e&&(r.remove(e),c(void 0))}}},[r]),h(u,null!=t?t:n),w(u,e,["Center","Raius","zIndex","Bubble","Cursor","StrokeColor","StrokeOpacity","StrokeWeight","FillColor","FillOpacity","Draggable","ExtData"]),E(u,e,["onHide","onShow","onMouseover","onTouchend","onClick","onTouchmove","onRightclick","onMouseup","onMouseout","onTouchstart","onMousedown","onDblclick","onDragStart","onDragEnd"]),{circleMarker:u,setCircleMarker:c}},j=s().forwardRef((e,o)=>{var n=_(e).circleMarker;return(0,l.useImperativeHandle)(o,()=>v({},e,{circleMarker:n})),null}),B=["position"],N=function(e){void 0===e&&(e={});var o=e,n=o.position,t=i(o,B),a=I().map,r=(0,l.useState)(),s=r[0],u=r[1];return(0,l.useEffect)(()=>{if(AMap&&a&&!s){var e=new AMap.ContextMenu(v({},t));u(e);var o=o=>e.open(a,n||o.lnglat);return a.on("rightclick",o),()=>{e&&(e.close(),a.off("rightclick",o),u(void 0))}}},[a]),E(s,e,["onOpen","onClose"]),{contextMenu:s,setContextMenu:u}},W=function(){};var Z=s().forwardRef((e,o)=>{var n=N(e).contextMenu;(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 o=e,n=o.position,t=o.visiable,a=o.visible,r=o.offset,i=(0,l.useState)(),s=i[0],u=i[1],c=I().map;return(0,l.useEffect)(()=>{var e;if(c&&!s)return c.plugin(["AMap.ControlBar","AMap.HawkEye"],()=>{e=new AMap.ControlBar({offset:r,position:n}),c.addControl(e),u(e)}),()=>{e&&c.removeControl(e)}},[c]),h(s,null!=a?a:t),{controlBarControl:s,setControlBarControl:u}}Z.Item=function(e){void 0===e&&(e={});var o=e,n=o.text,t=void 0===n?"":n,a=o.onClick,r=void 0===a?W:a;return(0,l.useEffect)(()=>(e.contextMenu&&e.contextMenu.addItem(t,r,1),()=>{e.contextMenu&&e.contextMenu.removeItem(t,r)}),[e.contextMenu,e.text,e.onClick]),null};var G=s().forwardRef((e,o)=>{var n=F(e).controlBarControl;return(0,l.useImperativeHandle)(o,()=>v({},e,{controlBarControl:n}),[n]),null}),Y=["visiable","visible"],q=function(e){void 0===e&&(e={});var o=e,n=o.visiable,t=o.visible,a=i(o,Y),r=I().map,s=(0,l.useState)(),u=s[0],c=s[1];return(0,l.useLayoutEffect)(()=>{if(AMap&&r&&!u){var e=new AMap.Ellipse(v({},a));return r.add(e),c(e),()=>{e&&(AMap.v?r&&r.remove(e):r&&r.removeLayer(e),c(void 0))}}},[r]),h(u,null!=t?t:n),w(u,e,["Center","Radius","Options","ExtData"]),E(u,e,["onHide","onShow","onClick","onDblClick","onRightClick","onMouseOut","onMouseOver","onMouseUp","onMouseDown","onTouchEnd","onTouchMove","onTouchStart"]),{ellipse:u,setEllipse:c}},J=s().forwardRef((e,o)=>{var n=q(e).ellipse;return(0,l.useImperativeHandle)(o,()=>v({},e,{ellipse:n})),null}),$=["type","onComplete","onError"],K=function(e){void 0===e&&(e={});var o=e,n=o.type,t=void 0===n?"position":n,a=o.onComplete,r=o.onError,s=i(o,$),u=(0,l.useState)(),c=u[0],p=u[1],d=I().map;function f(e,o){"complete"===e&&a?a(o):r&&r(o)}return(0,l.useEffect)(()=>{var e;if(AMap&&!c)return AMap.plugin(["AMap.Geolocation"],()=>{e=new AMap.Geolocation(v({},s)),p(e)}),()=>{e&&p(void 0)}},[AMap]),(0,l.useMemo)(()=>{if(/^(position|cityInfo)$/.test(t)){var e="position"===t?"getCurrentPosition":"getCityInfo";c&&d?(c[e](f),d.addControl(c)):c&&c[e](f)}},[c]),{geolocation:c,setGeolocation:p}},V=s().forwardRef((e,o)=>{var n=K(e).geolocation;return(0,l.useImperativeHandle)(o,()=>v({},e,{geolocation:n})),null}),Q=["offset","visiable","visible"];function X(e){void 0===e&&(e={});var o=(0,l.useState)(),n=o[0],t=o[1],a=e,r=a.offset,s=a.visiable,u=a.visible,c=i(a,Q),p=I().map;return(0,l.useEffect)(()=>{var e;p&&!n&&p.plugin(["AMap.HawkEye"],()=>{e=new AMap.HawkEye(v({offset:r},c)),p.addControl(e),t(e)});return()=>{n&&p&&(p&&p.removeControl(n),t(void 0))}},[p,n]),h(n,null!=u?u:s),{hawkEyeControl:n,setHawkEyeControl:t}}var ee=s().forwardRef((e,o)=>{var n=X(e).hawkEyeControl;return(0,l.useImperativeHandle)(o,()=>v({},e,{hawkEyeControl:n}),[n]),null}),oe=["visiable","visible","position"],ne=function(e){void 0===e&&(e={});var o=e,n=o.visiable,t=o.visible,a=o.position,r=i(o,oe),s=I().map,u=(0,l.useState)(n),c=u[0],p=u[1],d=(0,l.useState)(),f=d[0],m=d[1],h=M(),A=h.container,g=h.Portal;(0,l.useLayoutEffect)(()=>{if(AMap&&s&&!f){var o=s.getCenter();e.children&&(r.content=A);var n=new AMap.InfoWindow(v({},r,{position:a||o}));return m(n),c&&n.open(s,a||o),()=>{n&&(s&&s.remove(n),m(void 0))}}},[s]),(0,l.useEffect)(()=>{f&&f.setContent(e.children?A:r.content||"")},[e.children,A,r.content,f]);var y=null!=t?t:n;return(0,l.useMemo)(()=>{if(c!==y&&f&&s)if(p(y),y){var e=s.getCenter();f.open(s,a||e)}else f.close()},[y,f]),(0,l.useEffect)(()=>{if(s&&f&&y){var e=s.getCenter();f.open(s,a||e)}},[a]),w(f,e,["Content","Anchor","Size"]),E(f,e,["onOpen","onClose","onChange"]),{isOpen:c,setIsOpen:p,infoWindow:f,setInfoWindow:m,InfoWindowPortal:g}},te=s().forwardRef((e,o)=>{var n=ne(e),t=n.infoWindow,a=n.InfoWindowPortal;return(0,l.useImperativeHandle)(o,()=>v({},e,{infoWindow:t})),(0,c.jsx)(a,{children:e.children})}),ae=["visiable","visible","defaultType"];function re(e){void 0===e&&(e={});var o=(0,l.useState)(),n=o[0],t=o[1],a=e,r=a.visiable,s=a.visible,u=a.defaultType,c=void 0===u?0:u,p=i(a,ae),d=I().map;return(0,l.useEffect)(()=>{var e;if(d&&!n)return d.plugin(["AMap.MapType"],()=>{e=new AMap.MapType(v({defaultType:c},p)),d.addControl(e),t(e)}),()=>{e&&d.removeControl(e)}},[d]),h(n,null!=s?s:r),{mapTypeControl:n,setMapTypeControl:t}}var ie=s().forwardRef((e,o)=>{var n=re(e).mapTypeControl;return(0,l.useImperativeHandle)(o,()=>v({},e,{mapTypeControl:n}),[n]),null});function le(e){void 0===e&&(e={});var o=(0,l.useState)(),n=o[0],t=o[1],a=e,r=a.visiable,i=a.visible,s=a.type,u=a.options,c=I().map;return(0,l.useEffect)(()=>{if(c){var o=null;if(s)switch(s){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 u&&(o=new AMap.TileLayer(u)),o&&(c.add(o),e.onAdded&&e.onAdded(),t(o)),()=>{o&&(AMap.v?c&&c.remove(o):c&&c.removeLayer(o),t(null),e.onRemoved&&e.onRemoved())}}},[c,s,u]),h(n,null!=i?i:r),{tileLayer:n,setTileLayer:t}}var se=function(e){return e.SATELLITE="satellite",e.TRAFFIC="traffic",e.ROADNET="roadnet",e}({}),ue=s().forwardRef((e,o)=>{var n=le(e).tileLayer;return(0,l.useImperativeHandle)(o,()=>v({},e,{tileLayer:n}),[n]),null}),ce=["visiable","visible","children"],pe=function(e){void 0===e&&(e={});var o=e,n=o.visiable,t=o.visible,a=(o.children,i(o,ce)),r=I().map,s=(0,l.useState)(),u=s[0],c=s[1],p=M(),d=p.container,f=p.Portal;return(0,l.useLayoutEffect)(()=>{if(r&&!u){e.children&&(a.content=d);var o=new AMap.Marker(v({},a));return r.add(o),c(o),()=>{o&&(o.setMap(null),c(void 0))}}},[r]),h(u,null!=t?t:n),w(u,e,["Path","Anchor","Offset","Animation","Clickable","Position","Angle","Label","zIndex","Icon","Draggable","Cursor","Content","Map","Title","Top","Shadow","Shape","ExtData"]),E(u,e,["onClick","onDblClick","onRightClick","onMouseMove","onMouseOver","onMouseOut","onMouseDown","onMouseUp","onDragStart","onDragging","onDragEnd","onMoving","onMoveEnd","onMoveAlong","onTouchStart","onTouchMove","onTouchEnd"]),{marker:u,setMarker:c,MarkerPortal:f}},de=(0,l.forwardRef)((e,o)=>{var n=pe(e),t=n.marker,a=n.MarkerPortal;return(0,l.useImperativeHandle)(o,()=>v({},e,{marker:t}),[t]),(0,c.jsx)(a,{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 n=function(e){void 0===e&&(e={});var o=e,n=o.visiable,t=o.visible,a=(o.children,o.text),r=o.icon,s=void 0===r?fe:r,u=i(o,ve),c=I(),p=c.map,d=c.AMap,f=(0,l.useState)(),M=f[0],m=f[1];return(0,l.useLayoutEffect)(()=>{if(!M&&p){var e,o=a;a||(o={content:"",direction:"right",offset:[-20,-5],style:{fontSize:12,fillColor:"#22886f",strokeColor:"#fff",strokeWidth:2}});var n,t=new d.LabelMarker(v({style:s,icon:s,text:o},u));return m(t),0===(null==d||null==(e=d.v)?void 0:e.indexOf("1.4"))&&(p.labelMarkersLayer?n=p.labelMarkersLayer:(p.labelMarkersLayer=n=new d.LabelsLayer({zooms:[3,20],zIndex:101,collision:!0,animation:!0}),p.add(n)),n.add(t)),p.add(t),()=>{var e,o;t&&(0===(null==d||null==(e=d.v)?void 0:e.indexOf("1.4"))?null==p||null==(o=p.labelMarkersLayer)||o.remove(t):t.remove(),m(void 0))}}},[p]),h(M,null!=t?t:n),w(M,e,["Name","Position","Zooms","Opacity","zIndex","Rank","Text","Icon","ExtData","Top"]),E(M,e,["onTouchStart","onTouchMove","onTouchEnd","onClick","onMouseMove","onMouseOver","onMouseDown","onMouseUp","onMouseOut","onMousedown","onMouseup","onTouchstart","onTouchmove","onTouchend","onMousemove","onMouseover","onMouseout"]),{labelMarker:M,setLabelMarker:m}}(e),t=n.labelMarker;return(0,l.useImperativeHandle)(o,()=>v({},e,{labelMarker:t}),[t]),null}),me=["visiable","visible"],he=function(e){void 0===e&&(e={});var o=e,n=o.visiable,t=o.visible,a=i(o,me),r=I().map,s=a||{},u=s.opacity,c=void 0===u?1:u,p=s.zIndex,d=void 0===p?1111:p,v=s.style,f=s.data,M=(0,l.useState)(),m=M[0],A=M[1];return(0,l.useLayoutEffect)(()=>{if(AMap&&r&&!m){var e=v;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(f||[],{opacity:c,zIndex:d,style:e});return A(o),o.setMap(r),()=>{o&&(o.clear(),A(void 0))}}},[r]),h(m,null!=t?t:n),w(m,e,["Map","Data","Style","Opacity","zIndex","Zooms"]),E(m,e,["onClick","onDblClick","onMouseMove","onMouseOut","onMouseUp","onMouseDown","onMouseOver","onTouchStart","onTouchEnd"]),{massMarks:m,setMassMarks:A}},Ae=s().forwardRef((e,o)=>{var n=he(e).massMarks;return(0,l.useImperativeHandle)(o,()=>v({},e,{massMarks:n}),[n,e]),null}),Ee=["visiable","visible"],we=["path"],ge=function(e){void 0===e&&(e={});var o=e,n=o.visiable,t=o.visible,a=i(o,Ee),r=I().map,s=(0,l.useState)(),u=s[0],c=s[1];return(0,l.useLayoutEffect)(()=>{if(AMap&&r&&!u){var e=new AMap.Polygon(v({},a));return r.add(e),c(e),()=>{if(e)try{r&&r.remove(e)}catch(o){}c(void 0)}}},[r]),(0,l.useEffect)(()=>{if(u){var e=a.path,o=i(a,we);e&&u.setPath(e),u.setOptions(o)}},[u,a]),h(u,null!=t?t:n),w(u,e,["Path","Options","Map","ExtData","Draggable"]),E(u,e,["onClick","onDblClick","onRightClick","onHide","onShow","onMouseDown","onMouseUp","onMouseOver","onMouseOut","onChange","onDragStart","onDragging","onDragEnd","onTouchStart","onTouchMove","onTouchEnd"]),{polygon:u,setPolygon:c}},ye=(0,l.createContext)(void 0),Ce=(0,l.forwardRef)((e,o)=>{var n=e.children,t=ge(e).polygon;return(0,l.useImperativeHandle)(o,()=>v({},e,{polygon:t}),[t]),(0,c.jsx)(ye.Provider,{value:t,children:n})}),be=(0,l.forwardRef)((e,o)=>{var n=e.active,t=I().map,a=(0,l.useContext)(ye),r=(0,l.useState)(!0),i=r[0],s=r[1],u=(0,l.useState)(),c=u[0],p=u[1];return(0,l.useImperativeHandle)(o,()=>v({},e,{polyEditor:c})),(0,l.useEffect)(()=>{if(a&&t&&!c&&AMap&&AMap.PolygonEditor){var e=new AMap.PolygonEditor(t,a);a.on("hide",()=>s(!1)),a.on("show",()=>s(!0)),p(e)}},[a]),(0,l.useEffect)(()=>{c&&(i&&!n&&a?(c.close(),e.onEnd&&e.onEnd({target:a})):i&&n&&a?(c.open(),e.onAdd&&e.onAdd({target:a})):!i&&n&&a?(c.close(),e.onEnd&&e.onEnd({target:a})):i||n||!a||c.close())},[n,i,a]),E(c,e,["onEnd","onAddnode","onRemovenode","onAdjust","onMove","onAdd"]),null}),ke=["visiable","visible"],Ie=["path"];function Te(e){void 0===e&&(e={});var o=(0,l.useState)(),n=o[0],t=o[1],a=e,r=a.visiable,s=a.visible,u=i(a,ke),c=I().map;return(0,l.useLayoutEffect)(()=>{if(c&&!n){var e=new AMap.Polyline(u);return c.add(e),t(e),()=>{if(e){try{c&&c.remove(e)}catch(o){}t(void 0)}}}},[c]),(0,l.useEffect)(()=>{if(n){var e=u.path,o=i(u,Ie);e&&n.setPath(e),n.setOptions(o)}},[n,u]),h(n,null!=s?s:r),w(n,e,["Path","Options","Map","ExtData","Draggable"]),E(n,e,["onHide","onShow","onMouseOut","onChange","onDragStart","onDragging","onDragEnd","onRightClick","onDblClick","onMouseDown","onClick","onMouseOver","onTouchEnd","onTouchMove","onTouchStart","onMouseUp"]),{polyline:n,setPolyline:t}}var Se=(0,l.createContext)(void 0),xe=s().forwardRef((e,o)=>{var n=e.children,t=Te(e).polyline;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)(ye),a=e.active,r=e.polyElement,i=void 0===r?n||t:r,s=I().map,u=(0,l.useState)(!0),c=u[0],p=u[1],d=(0,l.useState)(),f=d[0],M=d[1];return(0,l.useImperativeHandle)(o,()=>v({},e,{polyEditor:f})),(0,l.useEffect)(()=>{if(i&&s&&!f&&AMap&&AMap.PolyEditor){var e=new AMap.PolyEditor(s,i);i.on("hide",()=>p(!1)),i.on("show",()=>p(!0)),M(e)}},[i]),(0,l.useEffect)(()=>{f&&(c&&!a?(f.close(),e.onEnd&&e.onEnd({type:"end",target:e.polyElement})):c&&a?f.open():!c&&a&&(f.close(),e.onEnd&&e.onEnd({type:"end",target:e.polyElement})))},[a,c]),E(f,e,["onEnd","onAddnode","onAdjust","onRemovenode"]),null}),Re=(0,l.forwardRef)((e,o)=>{var n=e.active,t=I().map,a=(0,l.useContext)(Se),r=(0,l.useState)(!0),i=r[0],s=r[1],u=(0,l.useState)(),c=u[0],p=u[1];return(0,l.useImperativeHandle)(o,()=>v({},e,{polyEditor:c})),(0,l.useEffect)(()=>{if(a&&t&&!c&&AMap&&AMap.PolylineEditor){var e=new AMap.PolylineEditor(t,a);a.on("hide",()=>s(!1)),a.on("show",()=>s(!0)),p(e)}},[a]),(0,l.useEffect)(()=>{c&&(i&&!n&&a?(c.close(),e.onEnd&&e.onEnd({target:a})):i&&n&&a?(c.open(),e.onAdd&&e.onAdd({target:a})):!i&&n&&a&&(c.close(),e.onEnd&&e.onEnd({target:a})))},[n,i,a,c]),E(c,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 n=e.active,t=e.type,a=e.drawElementOptions,r=e.ifClear,i=I().map,s=(0,l.useState)(),u=s[0],c=s[1];return(0,l.useImperativeHandle)(o,()=>v({},e,{mouseTool:u})),(0,l.useEffect)(()=>{if(i&&!u&&AMap&&AMap.MouseTool){var e=new AMap.MouseTool(i);c(e)}},[i,Map,AMap.MouseTool]),(0,l.useEffect)(()=>{if(u)if(n)switch(t){case Oe.MARKER:u.marker(a||{});break;case Oe.POLYLINE:u.polyline(a||{});break;case Oe.POLYGON:u.polygon(a||{});break;case Oe.CIRCLE:u.circle(a||{});break;case Oe.RECTANGLE:u.rectangle(a||{});break;case Oe.MEASUREAREA:u.measureArea(a||{});break;case Oe.RULE:u.rule(a||{});break;case Oe.RECTZOOMIN:u.rectZoomIn(a||{});break;case Oe.RECTZOOMOUT:u.rectZoomOut(a||{})}else u.close(r)},[n,r]),E(u,e,["onDraw"]),null}),Ue=["visiable","visible"],De=function(e){void 0===e&&(e={});var o=e,n=o.visiable,t=o.visible,a=i(o,Ue),r=I().map,s=(0,l.useState)(),u=s[0],c=s[1];return(0,l.useLayoutEffect)(()=>{if(AMap&&r&&!u){var e=new AMap.Rectangle(v({},a));return r.add(e),c(e),()=>{e&&(AMap.v?r&&r.remove(e):r&&r.removeLayer(e)),c(void 0)}}},[r]),h(u,null!=t?t:n),w(u,e,["Bounds","Options","Map","ExtData"]),E(u,e,["onHide","onShow","onClick","onDblClick","onRightClick","onMouseOut","onMouseOver","onMouseUp","onMouseDown","onTouchEnd","onTouchMove","onTouchStart"]),{rectangle:u,setRectangle:c}},He=s().forwardRef((e,o)=>{var n=De(e).rectangle;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=(0,l.useState)(),n=o[0],t=o[1],a=e,r=a.position,i=a.visiable,s=a.visible,u=a.offset,c=I().map;return(0,l.useEffect)(()=>{var e;if(c&&!n)return c.plugin(["AMap.Scale"],()=>{e=new AMap.Scale({offset:u,position:r}),c.addControl(e),t(e)}),()=>{e&&c.removeControl(e)}},[c]),h(n,null!=s?s:i),{scaleControl:n,setScaleControl:t}}var Ne=s().forwardRef((e,o)=>{var n=Be(e).scaleControl;return(0,l.useImperativeHandle)(o,()=>v({},e,{scaleControl:n}),[n]),null}),We=["visiable","visible"],Ze=function(e){void 0===e&&(e={});var o=e,n=o.visiable,t=o.visible,a=i(o,We),r=(0,l.useState)(),s=r[0],u=r[1],c=I().map,p=M(),d=p.container,f=p.Portal;return(0,l.useLayoutEffect)(()=>{if(AMap&&c&&!s){e.children&&(a.text=d.innerHTML);var o=new AMap.Text(v({},a));return c.add(o),u(o),()=>{o&&(o.remove(),u(void 0))}}},[c]),(0,l.useEffect)(()=>{s&&s.setText(e.children?d.innerHTML:e.text||"")},[e.children,e.text,d,s]),h(s,null!=t?t:n),w(s,e,["Style","Title","Clickable","Draggable","Map","Position","Offset","Angle","zIndex","Top","Cursor","ExtData"]),E(s,e,["onMoving","onTouchMove","onTouchEnd","onMoveaLong","onTouchStart","onMoveEnd","onClick","onDblClick","onRightClick","onMouseMove","onMouseOver","onMouseOut","onMouseDown","onMouseUp","onDragStart","onDragEnd","onDragging"]),{text:s,setText:u,TextPortal:f}},Fe=(0,l.forwardRef)((e,o)=>{var n=Ze(v({},e)),t=n.text,a=n.TextPortal;return(0,l.useImperativeHandle)(o,()=>v({},e,{text:t})),e.children?(0,c.jsx)(a,{children:e.children}):null});function Ge(e){void 0===e&&(e={});var o=(0,l.useState)(),n=o[0],t=o[1],a=e,r=a.position,i=a.visiable,s=a.visible,u=a.offset,c=I().map;return(0,l.useEffect)(()=>{var e;if(c&&!n)return c.plugin(["AMap.ToolBar"],()=>{e=new AMap.ToolBar({offset:u,position:r}),c.addControl(e),t(e)}),()=>{e&&c.removeControl(e)}},[c]),h(n,null!=s?s:i),{toolBarControl:n,setToolBarControl:t}}var Ye=s().forwardRef((e,o)=>{var n=Ge(e).toolBarControl;return(0,l.useImperativeHandle)(o,()=>v({},e,{toolBarControl:n}),[n]),null}),qe=function(e){void 0===e&&(e={});var o=e,n=o.city,t=void 0===n?"":n,a=o.type,r=void 0===a?"live":a,i=o.onComplete,s=o.onError,u=(0,l.useState)(),c=u[0],p=u[1],d="live"===r?"getLive":"getForecast";return(0,l.useEffect)(()=>{var e;if(AMap&&!c)return AMap.plugin(["AMap.Weather"],()=>{e=new AMap.Weather,p(e)}),()=>{e&&p(void 0)}},[]),(0,l.useMemo)(()=>{var e;c&&t&&r&&(e=c,r&&t&&/^(live|forecast)$/.test(r)&&e[d](t,(e,o)=>{e&&s?s(e):o&&i&&i(o)}))},[c,t,r]),{weather:c,setWeather:p}},Je=s().forwardRef((e,o)=>{var n=qe(e).weather;return(0,l.useImperativeHandle)(o,()=>v({},e,{weather:n})),null});return r})());