@antv/l7-mapkit 0.3.0 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/es/index.d.ts +990 -0
  2. package/lib/index.js +16 -0
  3. package/package.json +11 -13
  4. package/dist/component/Control/CustomControl.d.ts +0 -22
  5. package/dist/component/Control/ExportImageControl.d.ts +0 -36
  6. package/dist/component/Control/FullscreenControl.d.ts +0 -38
  7. package/dist/component/Control/GeoLocateControl.d.ts +0 -34
  8. package/dist/component/Control/MapThemeControl.d.ts +0 -56
  9. package/dist/component/Control/MouseLocationControl.d.ts +0 -30
  10. package/dist/component/Control/ScaleControl.d.ts +0 -36
  11. package/dist/component/Control/ZoomControl.d.ts +0 -34
  12. package/dist/component/Control/types.d.ts +0 -17
  13. package/dist/component/Control.d.ts +0 -44
  14. package/dist/component/CustomControl.d.ts +0 -32
  15. package/dist/component/Layer.d.ts +0 -79
  16. package/dist/component/LayerAttribute/BaseLayer.d.ts +0 -14
  17. package/dist/component/LayerAttribute/index.d.ts +0 -136
  18. package/dist/component/LayerContext.d.ts +0 -29
  19. package/dist/component/Legend/LegendCategories.d.ts +0 -26
  20. package/dist/component/Legend/LegendIcon.d.ts +0 -26
  21. package/dist/component/Legend/LegendProportion.d.ts +0 -19
  22. package/dist/component/Legend/LegendRamp.d.ts +0 -23
  23. package/dist/component/LoadImage.d.ts +0 -49
  24. package/dist/component/MapScene/GaodeMapScene.d.ts +0 -17
  25. package/dist/component/MapScene/MapScene.d.ts +0 -18
  26. package/dist/component/MapScene/interface.d.ts +0 -31
  27. package/dist/component/Marker.d.ts +0 -40
  28. package/dist/component/MarkerLayer.d.ts +0 -56
  29. package/dist/component/Popup.d.ts +0 -36
  30. package/dist/component/SceneContext.d.ts +0 -32
  31. package/dist/index.d.ts +0 -67
  32. package/dist/l7-mapkit.umd.cjs +0 -16
  33. package/dist/utils/style.d.ts +0 -7
  34. /package/{dist/l7-mapkit.js → es/index.js} +0 -0
package/lib/index.js ADDED
@@ -0,0 +1,16 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let l=require(`@antv/l7`),u=require(`@antv/l7-maps`),d=require(`react`);d=c(d,1);let f=require(`react-dom`);var p=(0,d.createContext)(void 0);function m(){let e=(0,d.useContext)(p);if(!e)throw Error(`useScene must be used within a GaodeMapScene or MapScene component`);return e}var h=o((e=>{var t=require(`react`),n=Symbol.for(`react.element`),r=Symbol.for(`react.fragment`),i=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,r){var s,c={},l=null,u=null;for(s in r!==void 0&&(l=``+r),t.key!==void 0&&(l=``+t.key),t.ref!==void 0&&(u=t.ref),t)i.call(t,s)&&!o.hasOwnProperty(s)&&(c[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps,t)c[s]===void 0&&(c[s]=t[s]);return{$$typeof:n,type:e,key:l,ref:u,props:c,_owner:a.current}}e.Fragment=r,e.jsx=s,e.jsxs=s})),g=o((e=>{process.env.NODE_ENV!==`production`&&(function(){"use strict";var t=require(`react`),n=Symbol.for(`react.element`),r=Symbol.for(`react.portal`),i=Symbol.for(`react.fragment`),a=Symbol.for(`react.strict_mode`),o=Symbol.for(`react.profiler`),s=Symbol.for(`react.provider`),c=Symbol.for(`react.context`),l=Symbol.for(`react.forward_ref`),u=Symbol.for(`react.suspense`),d=Symbol.for(`react.suspense_list`),f=Symbol.for(`react.memo`),p=Symbol.for(`react.lazy`),m=Symbol.for(`react.offscreen`),h=Symbol.iterator,g=`@@iterator`;function _(e){if(typeof e!=`object`||!e)return null;var t=h&&e[h]||e[g];return typeof t==`function`?t:null}var v=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function y(e){b(`error`,e,[...arguments].slice(1))}function b(e,t,n){var r=v.ReactDebugCurrentFrame.getStackAddendum();r!==``&&(t+=`%s`,n=n.concat([r]));var i=n.map(function(e){return String(e)});i.unshift(`Warning: `+t),Function.prototype.apply.call(console[e],console,i)}var x=!1,S=!1,C=!1,w=!1,T=!1,E=Symbol.for(`react.module.reference`);function D(e){return!!(typeof e==`string`||typeof e==`function`||e===i||e===o||T||e===a||e===u||e===d||w||e===m||x||S||C||typeof e==`object`&&e&&(e.$$typeof===p||e.$$typeof===f||e.$$typeof===s||e.$$typeof===c||e.$$typeof===l||e.$$typeof===E||e.getModuleId!==void 0))}function O(e,t,n){var r=e.displayName;if(r)return r;var i=t.displayName||t.name||``;return i===``?n:n+`(`+i+`)`}function k(e){return e.displayName||`Context`}function A(e){if(e==null)return null;if(typeof e.tag==`number`&&y(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),typeof e==`function`)return e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case i:return`Fragment`;case r:return`Portal`;case o:return`Profiler`;case a:return`StrictMode`;case u:return`Suspense`;case d:return`SuspenseList`}if(typeof e==`object`)switch(e.$$typeof){case c:return k(e)+`.Consumer`;case s:return k(e._context)+`.Provider`;case l:return O(e,e.render,`ForwardRef`);case f:var t=e.displayName||null;return t===null?A(e.type)||`Memo`:t;case p:var n=e,m=n._payload,h=n._init;try{return A(h(m))}catch{return null}}return null}var j=Object.assign,M=0,N,P,F,I,L,R,z;function B(){}B.__reactDisabledLog=!0;function V(){if(M===0){N=console.log,P=console.info,F=console.warn,I=console.error,L=console.group,R=console.groupCollapsed,z=console.groupEnd;var e={configurable:!0,enumerable:!0,value:B,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}M++}function H(){if(M--,M===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:j({},e,{value:N}),info:j({},e,{value:P}),warn:j({},e,{value:F}),error:j({},e,{value:I}),group:j({},e,{value:L}),groupCollapsed:j({},e,{value:R}),groupEnd:j({},e,{value:z})})}M<0&&y(`disabledDepth fell below zero. This is a bug in React. Please file an issue.`)}var U=v.ReactCurrentDispatcher,W;function G(e,t,n){if(W===void 0)try{throw Error()}catch(e){var r=e.stack.trim().match(/\n( *(at )?)/);W=r&&r[1]||``}return`
2
+ `+W+e}var K=!1,q=new(typeof WeakMap==`function`?WeakMap:Map);function J(e,t){if(!e||K)return``;var n=q.get(e);if(n!==void 0)return n;var r;K=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var a=U.current;U.current=null,V();try{if(t){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,`props`,{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(o,[])}catch(e){r=e}Reflect.construct(e,[],o)}else{try{o.call()}catch(e){r=e}e.call(o.prototype)}}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&typeof t.stack==`string`){for(var s=t.stack.split(`
3
+ `),c=r.stack.split(`
4
+ `),l=s.length-1,u=c.length-1;l>=1&&u>=0&&s[l]!==c[u];)u--;for(;l>=1&&u>=0;l--,u--)if(s[l]!==c[u]){if(l!==1||u!==1)do if(l--,u--,u<0||s[l]!==c[u]){var d=`
5
+ `+s[l].replace(` at new `,` at `);return e.displayName&&d.includes(`<anonymous>`)&&(d=d.replace(`<anonymous>`,e.displayName)),typeof e==`function`&&q.set(e,d),d}while(l>=1&&u>=0);break}}}finally{K=!1,U.current=a,H(),Error.prepareStackTrace=i}var f=e?e.displayName||e.name:``,p=f?G(f):``;return typeof e==`function`&&q.set(e,p),p}function ee(e,t,n){return J(e,!1)}function te(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function Y(e,t,n){if(e==null)return``;if(typeof e==`function`)return J(e,te(e));if(typeof e==`string`)return G(e);switch(e){case u:return G(`Suspense`);case d:return G(`SuspenseList`)}if(typeof e==`object`)switch(e.$$typeof){case l:return ee(e.render);case f:return Y(e.type,t,n);case p:var r=e,i=r._payload,a=r._init;try{return Y(a(i),t,n)}catch{}}return``}var X=Object.prototype.hasOwnProperty,ne={},re=v.ReactDebugCurrentFrame;function Z(e){if(e){var t=e._owner,n=Y(e.type,e._source,t?t.type:null);re.setExtraStackFrame(n)}else re.setExtraStackFrame(null)}function ie(e,t,n,r,i){var a=Function.call.bind(X);for(var o in e)if(a(e,o)){var s=void 0;try{if(typeof e[o]!=`function`){var c=Error((r||`React class`)+`: `+n+" type `"+o+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[o]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw c.name=`Invariant Violation`,c}s=e[o](t,o,r,n,null,`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`)}catch(e){s=e}s&&!(s instanceof Error)&&(Z(i),y("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",r||`React class`,n,o,typeof s),Z(null)),s instanceof Error&&!(s.message in ne)&&(ne[s.message]=!0,Z(i),y(`Failed %s type: %s`,n,s.message),Z(null))}}var ae=Array.isArray;function oe(e){return ae(e)}function se(e){return typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`}function ce(e){try{return le(e),!1}catch{return!0}}function le(e){return``+e}function ue(e){if(ce(e))return y(`The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.`,se(e)),le(e)}var Q=v.ReactCurrentOwner,de={key:!0,ref:!0,__self:!0,__source:!0},fe,pe,me={};function he(e){if(X.call(e,`ref`)){var t=Object.getOwnPropertyDescriptor(e,`ref`).get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function ge(e){if(X.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function _e(e,t){if(typeof e.ref==`string`&&Q.current&&t&&Q.current.stateNode!==t){var n=A(Q.current.type);me[n]||(y(`Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref`,A(Q.current.type),e.ref),me[n]=!0)}}function ve(e,t){var n=function(){fe||(fe=!0,y("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};n.isReactWarning=!0,Object.defineProperty(e,`key`,{get:n,configurable:!0})}function ye(e,t){var n=function(){pe||(pe=!0,y("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};n.isReactWarning=!0,Object.defineProperty(e,`ref`,{get:n,configurable:!0})}var be=function(e,t,r,i,a,o,s){var c={$$typeof:n,type:e,key:t,ref:r,props:s,_owner:o};return c._store={},Object.defineProperty(c._store,`validated`,{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(c,`_self`,{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.defineProperty(c,`_source`,{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c};function xe(e,t,n,r,i){var a,o={},s=null,c=null;for(a in n!==void 0&&(ue(n),s=``+n),ge(t)&&(ue(t.key),s=``+t.key),he(t)&&(c=t.ref,_e(t,i)),t)X.call(t,a)&&!de.hasOwnProperty(a)&&(o[a]=t[a]);if(e&&e.defaultProps){var l=e.defaultProps;for(a in l)o[a]===void 0&&(o[a]=l[a])}if(s||c){var u=typeof e==`function`?e.displayName||e.name||`Unknown`:e;s&&ve(o,u),c&&ye(o,u)}return be(e,s,c,i,r,Q.current,o)}var Se=v.ReactCurrentOwner,Ce=v.ReactDebugCurrentFrame;function $(e){if(e){var t=e._owner,n=Y(e.type,e._source,t?t.type:null);Ce.setExtraStackFrame(n)}else Ce.setExtraStackFrame(null)}var we=!1;function Te(e){return typeof e==`object`&&!!e&&e.$$typeof===n}function Ee(){if(Se.current){var e=A(Se.current.type);if(e)return`
6
+
7
+ Check the render method of \``+e+"`."}return``}function De(e){if(e!==void 0){var t=e.fileName.replace(/^.*[\\\/]/,``),n=e.lineNumber;return`
8
+
9
+ Check your code at `+t+`:`+n+`.`}return``}var Oe={};function ke(e){var t=Ee();if(!t){var n=typeof e==`string`?e:e.displayName||e.name;n&&(t=`
10
+
11
+ Check the top-level render call using <`+n+`>.`)}return t}function Ae(e,t){if(!(!e._store||e._store.validated||e.key!=null)){e._store.validated=!0;var n=ke(t);if(!Oe[n]){Oe[n]=!0;var r=``;e&&e._owner&&e._owner!==Se.current&&(r=` It was passed a child from `+A(e._owner.type)+`.`),$(e),y(`Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.`,n,r),$(null)}}}function je(e,t){if(typeof e==`object`){if(oe(e))for(var n=0;n<e.length;n++){var r=e[n];Te(r)&&Ae(r,t)}else if(Te(e))e._store&&(e._store.validated=!0);else if(e){var i=_(e);if(typeof i==`function`&&i!==e.entries)for(var a=i.call(e),o;!(o=a.next()).done;)Te(o.value)&&Ae(o.value,t)}}}function Me(e){var t=e.type;if(!(t==null||typeof t==`string`)){var n;if(typeof t==`function`)n=t.propTypes;else if(typeof t==`object`&&(t.$$typeof===l||t.$$typeof===f))n=t.propTypes;else return;if(n){var r=A(t);ie(n,e.props,`prop`,r,e)}else t.PropTypes!==void 0&&!we&&(we=!0,y("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",A(t)||`Unknown`));typeof t.getDefaultProps==`function`&&!t.getDefaultProps.isReactClassApproved&&y("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Ne(e){for(var t=Object.keys(e.props),n=0;n<t.length;n++){var r=t[n];if(r!==`children`&&r!==`key`){$(e),y("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",r),$(null);break}}e.ref!==null&&($(e),y("Invalid attribute `ref` supplied to `React.Fragment`."),$(null))}var Pe={};function Fe(e,t,r,a,o,s){var c=D(e);if(!c){var l=``;(e===void 0||typeof e==`object`&&e&&Object.keys(e).length===0)&&(l+=` You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.`);var u=De(o);u?l+=u:l+=Ee();var d;e===null?d=`null`:oe(e)?d=`array`:e!==void 0&&e.$$typeof===n?(d=`<`+(A(e.type)||`Unknown`)+` />`,l=` Did you accidentally export a JSX literal instead of a component?`):d=typeof e,y(`React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s`,d,l)}var f=xe(e,t,r,o,s);if(f==null)return f;if(c){var p=t.children;if(p!==void 0)if(a)if(oe(p)){for(var m=0;m<p.length;m++)je(p[m],e);Object.freeze&&Object.freeze(p)}else y(`React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.`);else je(p,e)}if(X.call(t,`key`)){var h=A(e),g=Object.keys(t).filter(function(e){return e!==`key`}),_=g.length>0?`{key: someKey, `+g.join(`: ..., `)+`: ...}`:`{key: someKey}`;Pe[h+_]||(y(`A props object containing a "key" prop is being spread into JSX:
12
+ let props = %s;
13
+ <%s {...props} />
14
+ React keys must be passed directly to JSX without using spread:
15
+ let props = %s;
16
+ <%s key={someKey} {...props} />`,_,h,g.length>0?`{`+g.join(`: ..., `)+`: ...}`:`{}`,h),Pe[h+_]=!0)}return e===i?Ne(f):Me(f),f}function Ie(e,t,n){return Fe(e,t,n,!0)}function Le(e,t,n){return Fe(e,t,n,!1)}var Re=Le,ze=Ie;e.Fragment=i,e.jsx=Re,e.jsxs=ze})()})),_=o(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=h():t.exports=g()}))();function v(e){let{style:t,className:n,mapConfig:r,sceneConfig:i,onLoaded:a,onClick:o,onMouseMove:s,onZoomChange:c,children:f}=e,m=`l7-mapkit-gaode-${(0,d.useId)().replace(/:/g,``)}`,h=(0,d.useRef)(null),g=(0,d.useRef)(null),v=(0,d.useRef)(!1),[y,b]=(0,d.useState)(void 0);return(0,d.useEffect)(()=>{if(!h.current||v.current)return;v.current=!0;let e=null;try{e=new l.Scene({id:h.current,...i,map:new u.GaodeMap({style:`light`,...r})}),g.current=e,e.on(`loaded`,()=>{b(e),a?.(e)})}catch(e){console.error(`Failed to initialize GaodeMap scene:`,e),v.current=!1}return()=>{v.current=!1,g.current&&(g.current.destroy(),g.current=null,b(void 0))}},[]),(0,d.useEffect)(()=>{y&&r?.style&&y.setMapStyle(r.style)},[y,r?.style]),(0,d.useEffect)(()=>{!y||r?.zoom===void 0||y.setZoom(r.zoom)},[y,r?.zoom]),(0,d.useEffect)(()=>{!y||!r?.center||y.setCenter(r.center)},[y,JSON.stringify(r?.center)]),(0,d.useEffect)(()=>{!y||r?.pitch===void 0||y.setPitch(r.pitch)},[y,r?.pitch]),(0,d.useEffect)(()=>{!y||r?.rotation===void 0||y.setRotation(r.rotation)},[y,r?.rotation]),(0,d.useEffect)(()=>{if(!(!y||!o))return y.on(`click`,o),()=>y.off(`click`,o)},[y,o]),(0,d.useEffect)(()=>{if(!(!y||!s))return y.on(`mousemove`,s),()=>y.off(`mousemove`,s)},[y,s]),(0,d.useEffect)(()=>{if(!(!y||!c))return y.on(`zoomchange`,c),()=>y.off(`zoomchange`,c)},[y,c]),(0,_.jsx)(p.Provider,{value:y,children:(0,_.jsx)(`div`,{id:m,ref:h,className:n,style:{width:`100%`,height:`400px`,...t},children:y&&f})})}function y(e){let{style:t,className:n,mapConfig:r,sceneConfig:i,onLoaded:a,onClick:o,onMouseMove:s,onZoomChange:c,children:f}=e,m=`l7-mapkit-map-${(0,d.useId)().replace(/:/g,``)}`,h=(0,d.useRef)(null),g=(0,d.useRef)(null),[v,y]=(0,d.useState)(void 0),b=(0,d.useRef)(!1);return(0,d.useEffect)(()=>{if(!h.current||b.current)return;b.current=!0;let e=new l.Scene({id:h.current,...i,map:new u.Map({...r})});return g.current=e,e.on(`loaded`,()=>{y(e),a?.(e)}),()=>{e.destroy(),g.current=null,b.current=!1,y(void 0)}},[]),(0,d.useEffect)(()=>{v&&r?.style&&v.setMapStyle(r.style)},[v,r?.style]),(0,d.useEffect)(()=>{!v||r?.zoom===void 0||v.setZoom(r.zoom)},[v,r?.zoom]),(0,d.useEffect)(()=>{!v||!r?.center||v.setCenter(r.center)},[v,JSON.stringify(r?.center)]),(0,d.useEffect)(()=>{!v||r?.pitch===void 0||v.setPitch(r.pitch)},[v,r?.pitch]),(0,d.useEffect)(()=>{!v||r?.rotation===void 0||v.setRotation(r.rotation)},[v,r?.rotation]),(0,d.useEffect)(()=>{if(!(!v||!o))return v.on(`click`,o),()=>v.off(`click`,o)},[v,o]),(0,d.useEffect)(()=>{if(!(!v||!s))return v.on(`mousemove`,s),()=>v.off(`mousemove`,s)},[v,s]),(0,d.useEffect)(()=>{if(!(!v||!c))return v.on(`zoomchange`,c),()=>v.off(`zoomchange`,c)},[v,c]),(0,_.jsx)(p.Provider,{value:v,children:(0,_.jsx)(`div`,{id:m,ref:h,className:n,style:{width:`100%`,height:`400px`,...t},children:v&&f})})}var b=(0,d.createContext)(void 0);function x(){let e=(0,d.useContext)(b);if(!e)throw Error(`useLayer must be used within a Layer component (PointLayer, LineLayer, etc.)`);return e}var S={PolygonLayer:l.PolygonLayer,LineLayer:l.LineLayer,PointLayer:l.PointLayer,HeatmapLayer:l.HeatmapLayer,RasterLayer:l.RasterLayer,ImageLayer:l.ImageLayer,CityBuildingLayer:l.CityBuildingLayer};function C(e){let{layerType:t,name:n,visible:r,zIndex:i,minZoom:a,maxZoom:o,blend:s,autoFit:c,source:u,sourceConfig:f,color:p,colorField:h,colorValues:g,size:v,sizeField:y,sizeValues:x,shape:C,shapeField:w,shapeValues:T,style:E,filterField:D,filterValues:O,animate:k,active:A,select:j,onLoaded:M,onClick:N,onDblClick:P,onMouseEnter:F,onMouseLeave:I,onMouseMove:L,onUnClick:R,onContextMenu:z,children:B}=e,V=m(),[H]=(0,d.useState)(()=>{let e=S[t]||l.PolygonLayer,u={};return n!==void 0&&(u.name=n),r!==void 0&&(u.visible=r),i!==void 0&&(u.zIndex=i),a!==void 0&&(u.minZoom=a),o!==void 0&&(u.maxZoom=o),s!==void 0&&(u.blend=s),c!==void 0&&(u.autoFit=c),new e(u)});return(0,d.useEffect)(()=>(V.addLayer(H),()=>{V.removeLayer(H)}),[]),(0,d.useEffect)(()=>{u!==void 0&&H.source(u,f)},[u,f]),(0,d.useEffect)(()=>{if(!M)return;let e=()=>M(H,V);return H.on(`inited`,e),()=>H.off(`inited`,e)},[M]),(0,d.useEffect)(()=>{H.inited&&(h&&g!==void 0?H.color(h,g):h?H.color(h):p!==void 0&&H.color(p))},[p,h,g]),(0,d.useEffect)(()=>{H.inited&&(y&&x!==void 0?H.size(y,x):y?H.size(y):v!==void 0&&H.size(v))},[v,y,x]),(0,d.useEffect)(()=>{H.inited&&(w&&T!==void 0?H.shape(w,T):w?H.shape(w):C!==void 0&&H.shape(C))},[C,w,T]),(0,d.useEffect)(()=>{!H.inited||!E||H.style(E)},[E]),(0,d.useEffect)(()=>{!H.inited||!D||O===void 0||H.filter(D,O)},[D,O]),(0,d.useEffect)(()=>{!H.inited||!k||H.animate(k)},[k]),(0,d.useEffect)(()=>{!H.inited||A===void 0||H.active(A)},[A]),(0,d.useEffect)(()=>{!H.inited||j===void 0||H.select(j)},[j]),(0,d.useEffect)(()=>{if(N)return H.on(`click`,N),()=>H.off(`click`,N)},[N]),(0,d.useEffect)(()=>{if(P)return H.on(`dblclick`,P),()=>H.off(`dblclick`,P)},[P]),(0,d.useEffect)(()=>{if(F)return H.on(`mouseenter`,F),()=>H.off(`mouseenter`,F)},[F]),(0,d.useEffect)(()=>{if(I)return H.on(`mouseleave`,I),()=>H.off(`mouseleave`,I)},[I]),(0,d.useEffect)(()=>{if(L)return H.on(`mousemove`,L),()=>H.off(`mousemove`,L)},[L]),(0,d.useEffect)(()=>{if(R)return H.on(`unclick`,R),()=>H.off(`unclick`,R)},[R]),(0,d.useEffect)(()=>{if(z)return H.on(`contextmenu`,z),()=>H.off(`contextmenu`,z)},[z]),(0,d.useEffect)(()=>{H.inited&&(r===!1?H.hide():H.show())},[r]),(0,d.useEffect)(()=>{!H.inited||i===void 0||H.setIndex(i)},[i]),(0,_.jsx)(b.Provider,{value:H,children:B})}var w=d.default.memo(function(e){return d.default.createElement(C,{...e,layerType:`PointLayer`})}),T=d.default.memo(function(e){return d.default.createElement(C,{...e,layerType:`LineLayer`})}),E=d.default.memo(function(e){return d.default.createElement(C,{...e,layerType:`PolygonLayer`})}),D=d.default.memo(function(e){return d.default.createElement(C,{...e,layerType:`HeatmapLayer`})}),O=d.default.memo(function(e){return d.default.createElement(C,{...e,layerType:`RasterLayer`})}),k=d.default.memo(function(e){return d.default.createElement(C,{...e,layerType:`ImageLayer`})}),A={zoom:l.Zoom,scale:l.Scale,logo:l.Logo,layerSwitch:l.LayerSwitch,mouseLocation:l.MouseLocation,mapTheme:l.MapTheme,geoLocate:l.GeoLocate,exportImage:l.ExportImage,fullscreen:l.Fullscreen,swipe:l.Swipe},j=d.default.memo(function(e){let{type:t,position:n,...r}=e,i=m(),a=(0,d.useRef)(null),o=(0,d.useRef)(!1);return(0,d.useEffect)(()=>{if(o.current)return;o.current=!0;let e=A[t];if(!e){console.warn(`[l7-mapkit] Unknown control type: "${t}"`),o.current=!1;return}let s=new e({position:n,...r});return a.current=s,i.addControl(s),()=>{i.removeControl(s),a.current=null,o.current=!1}},[t]),(0,d.useEffect)(()=>{a.current&&n&&a.current.setPosition(n)},[n]),null});function M(e){let{position:t=`topright`,className:n,style:r,children:i}=e,a=m(),[o]=(0,d.useState)(()=>document.createElement(`div`)),[,s]=(0,d.useState)(0),c=(0,d.useRef)(!1),u=(0,d.useRef)(null);return(0,d.useEffect)(()=>{if(c.current)return;c.current=!0;let e=new l.Control({position:t});return e.onAdd=()=>(n&&(o.className=n),r&&Object.assign(o.style,r),o),e.onRemove=()=>{},u.current=e,a.addControl(e),s(e=>e+1),()=>{a.removeControl(e),u.current=null,c.current=!1}},[]),(0,d.useEffect)(()=>{n&&(o.className=n)},[n]),(0,f.createPortal)(i,o)}var N=({position:e=`topleft`,zoomInText:t=`+`,zoomOutText:n=`-`,zoomInTitle:r=`放大`,zoomOutTitle:i=`缩小`,showZoom:a=!0,className:o=``,style:s,onAdd:c,onRemove:u,onShow:f,onHide:m})=>{let h=(0,d.useContext)(p),[g,_]=(0,d.useState)(null),v=(0,d.useMemo)(()=>({position:e,zoomInTitle:r,zoomOutTitle:i,showZoom:a}),[e,r,i,a]);return(0,d.useEffect)(()=>{if(!h)return;let e=new l.Zoom(v);return _(e),h.addControl(e),c?.(),f?.(),()=>{h.removeControl(e),_(null),u?.()}},[]),(0,d.useEffect)(()=>{g&&g.setOptions(v)},[g,v]),(0,d.useEffect)(()=>{if(!g)return;let e=()=>f?.(),t=()=>m?.();return g.on(`show`,e),g.on(`hide`,t),()=>{g.off(`show`,e),g.off(`hide`,t)}},[g,f,m]),null},P=({position:e=`bottomleft`,className:t=``,style:n,lockWidth:r=!1,maxWidth:i=100,metric:a=!0,imperial:o=!1,updateWhenIdle:s=!1,onAdd:c,onRemove:u,onShow:f,onHide:m})=>{let h=(0,d.useContext)(p),[g,_]=(0,d.useState)(null),v=(0,d.useMemo)(()=>({position:e,lockWidth:r,maxWidth:i,metric:a,imperial:o,updateWhenIdle:s}),[e,r,i,a,o,s]);return(0,d.useEffect)(()=>{if(!h)return;let e=new l.Scale(v);return _(e),h.addControl(e),c?.(),f?.(),()=>{h.removeControl(e),_(null),u?.()}},[]),(0,d.useEffect)(()=>{g&&g.setOptions(v)},[g,v]),(0,d.useEffect)(()=>{if(!g)return;let e=()=>f?.(),t=()=>m?.();return g.on(`show`,e),g.on(`hide`,t),()=>{g.off(`show`,e),g.off(`hide`,t)}},[g,f,m]),null},F=({position:e=`topright`,btnText:t=`全屏`,title:n=`全屏查看`,vertical:r=!1,exitBtnText:i=`退出全屏`,exitTitle:a=`退出全屏`,className:o=``,style:s,onAdd:c,onRemove:u,onShow:f,onHide:m,onFullscreenChange:h})=>{let g=(0,d.useContext)(p),[_,v]=(0,d.useState)(null),y=(0,d.useMemo)(()=>({position:e,btnText:t,title:n,vertical:r,exitBtnText:i,exitTitle:a}),[e,t,n,r,i,a]);return(0,d.useEffect)(()=>{if(!g)return;let e=new l.Fullscreen(y);return v(e),g.addControl(e),c?.(),f?.(),()=>{g.removeControl(e),v(null),u?.()}},[]),(0,d.useEffect)(()=>{_&&_.setOptions(y)},[_,y]),(0,d.useEffect)(()=>{if(!_)return;let e=()=>f?.(),t=()=>m?.(),n=e=>h?.(e?.target?.isFullscreen);return _.on(`show`,e),_.on(`hide`,t),_.on(`fullscreenchange`,n),()=>{_.off(`show`,e),_.off(`hide`,t),_.off(`fullscreenchange`,n)}},[_,f,m,h]),null},I=({position:e=`topright`,btnText:t=`定位`,title:n=`定位到当前位置`,vertical:r=!1,transform:i,className:a=``,style:o,onAdd:s,onRemove:c,onShow:u,onHide:f})=>{let m=(0,d.useContext)(p),[h,g]=(0,d.useState)(null),_=(0,d.useMemo)(()=>({position:e,btnText:t,title:n,vertical:r,transform:i}),[e,t,n,r,i]);return(0,d.useEffect)(()=>{if(!m)return;let e=new l.GeoLocate(_);return g(e),m.addControl(e),s?.(),u?.(),()=>{m.removeControl(e),g(null),c?.()}},[]),(0,d.useEffect)(()=>{h&&h.setOptions(_)},[h,_]),(0,d.useEffect)(()=>{if(!h)return;let e=()=>u?.(),t=()=>f?.();return h.on(`show`,e),h.on(`hide`,t),()=>{h.off(`show`,e),h.off(`hide`,t)}},[h,u,f]),null},L=({position:e=`topright`,options:t=[],btnText:n=`主题`,title:r=`地图主题`,vertical:i=!1,popperPlacement:a=`bottom-end`,popperTrigger:o=`click`,popperClassName:s=``,className:c=``,style:u,onAdd:f,onRemove:m,onShow:h,onHide:g,onPopperShow:_,onPopperHide:v,onSelectChange:y})=>{let b=(0,d.useContext)(p),[x,S]=(0,d.useState)(null),C=(0,d.useMemo)(()=>({position:e,options:t,btnText:n,title:r,vertical:i,popperPlacement:a,popperTrigger:o,popperClassName:s}),[e,t,n,r,i,a,o,s]);return(0,d.useEffect)(()=>{if(!b)return;let e=new l.MapTheme(C);return S(e),b.addControl(e),f?.(),h?.(),()=>{b.removeControl(e),S(null),m?.()}},[]),(0,d.useEffect)(()=>{x&&x.setOptions(C)},[x,C]),(0,d.useEffect)(()=>{if(!x)return;let e=()=>h?.(),t=()=>g?.(),n=()=>_?.(),r=()=>v?.(),i=e=>y?.(e?.target?.value);return x.on(`show`,e),x.on(`hide`,t),x.on(`popperShow`,n),x.on(`popperHide`,r),x.on(`selectChange`,i),()=>{x.off(`show`,e),x.off(`hide`,t),x.off(`popperShow`,n),x.off(`popperHide`,r),x.off(`selectChange`,i)}},[x,h,g,_,v,y]),null},R=({position:e=`bottomleft`,className:t=``,style:n,transform:r,onAdd:i,onRemove:a,onShow:o,onHide:s,onLocationChange:c})=>{let u=(0,d.useContext)(p),[f,m]=(0,d.useState)(null),h=(0,d.useMemo)(()=>({position:e,transform:r}),[e,r]);return(0,d.useEffect)(()=>{if(!u)return;let e=new l.MouseLocation(h);return m(e),u.addControl(e),i?.(),o?.(),()=>{u.removeControl(e),m(null),a?.()}},[]),(0,d.useEffect)(()=>{f&&f.setOptions(h)},[f,h]),(0,d.useEffect)(()=>{if(!f)return;let e=()=>o?.(),t=()=>s?.(),n=e=>c?.(e?.target?.lnglat);return f.on(`show`,e),f.on(`hide`,t),f.on(`locationchange`,n),()=>{f.off(`show`,e),f.off(`hide`,t),f.off(`locationchange`,n)}},[f,o,s,c]),null},z=({position:e=`topright`,imageType:t=`png`,btnText:n=`导出`,title:r=`导出图片`,vertical:i=!1,className:a=``,style:o,onAdd:s,onRemove:c,onShow:u,onHide:f,onExport:m})=>{let h=(0,d.useContext)(p),[g,_]=(0,d.useState)(null),v=(0,d.useMemo)(()=>({position:e,imageType:t,btnText:n,title:r,vertical:i,onExport:m}),[e,t,n,r,i,m]);return(0,d.useEffect)(()=>{if(!h)return;let e=new l.ExportImage(v);return _(e),h.addControl(e),s?.(),u?.(),()=>{h.removeControl(e),_(null),c?.()}},[]),(0,d.useEffect)(()=>{g&&g.setOptions(v)},[g,v]),(0,d.useEffect)(()=>{if(!g)return;let e=()=>u?.(),t=()=>f?.();return g.on(`show`,e),g.on(`hide`,t),()=>{g.off(`show`,e),g.off(`hide`,t)}},[g,u,f]),null},B=(e,t,n)=>{let r=[];for(let i=0;i<n;i++){let a=i/(n-1),o=Math.round(parseInt(e.slice(1,3),16)*(1-a)+parseInt(t.slice(1,3),16)*a),s=Math.round(parseInt(e.slice(3,5),16)*(1-a)+parseInt(t.slice(3,5),16)*a),c=Math.round(parseInt(e.slice(5,7),16)*(1-a)+parseInt(t.slice(5,7),16)*a);r.push(`#${o.toString(16).padStart(2,`0`)}${s.toString(16).padStart(2,`0`)}${c.toString(16).padStart(2,`0`)}`)}return r},V=({labels:e,colors:t,geometryType:n=`circle`,isStrokeColor:r=!1,className:i=``,style:a})=>{let o=e=>r?{border:`2px solid ${e}`}:{backgroundColor:e},s=Array.isArray(t)?t:B(t.startColor,t.endColor,e.length);return(0,_.jsx)(`div`,{className:`l7-mapkit-component l7-mapkit-legend-categories ${i}`,style:a,children:e.map((e,t)=>(0,_.jsxs)(`div`,{className:`flex items-center mb-2`,children:[(0,_.jsx)(`div`,{className:`w-4 h-4 mr-2 ${n===`circle`?`rounded-full`:n===`square`?`rounded-sm`:``}`,style:o(s[t])}),(0,_.jsx)(`span`,{className:`text-sm`,children:e})]},`${e}__${s[t]}__${t}`))})},H=({labels:e,labelUnit:t,colors:n})=>{let r=`${e[0]}${t}`,i=`${e[e.length-1]}${t}`;return(0,_.jsxs)(`div`,{className:`l7-mapkit-legend-ramp`,children:[(0,_.jsx)(`div`,{className:`h-4 w-full rounded`,style:{background:`linear-gradient(to right, ${n.join(`, `)})`}}),(0,_.jsxs)(`div`,{className:`flex justify-between mt-1 text-xs`,children:[(0,_.jsx)(`span`,{children:r}),(0,_.jsx)(`span`,{children:i})]})]})},U=({labels:e,labelUnit:t,colors:n})=>(0,_.jsxs)(`div`,{className:`l7-mapkit-legend-ramp`,children:[(0,_.jsx)(`div`,{className:`flex`,children:n.map((n,r)=>(0,_.jsx)(`div`,{title:`${e[r]}${t} - ${e[r+1]}${t}`,className:`h-4 flex-1 first:rounded-l last:rounded-r`,style:{backgroundColor:n}},n))}),(0,_.jsx)(`div`,{className:`flex justify-between mt-1 text-xs`,children:e.map(e=>(0,_.jsx)(`span`,{children:`${e}${t}`},e))})]}),W=({labels:e,colors:t,isContinuous:n=!1,labelUnit:r=``,className:i=``,style:a})=>(0,_.jsx)(`div`,{className:`l7-mapkit-component l7-mapkit-legend-ramp ${i}`,style:a,children:n?(0,_.jsx)(H,{labels:e,labelUnit:r,colors:t}):(0,_.jsx)(U,{labels:e,labelUnit:r,colors:t})}),G=(e,t)=>{let n=(t-e)/4;return[Math.floor(e+n),Math.floor(t-n)]},K=(e,t)=>{let n=Number.isFinite(e)?e:0,r=Number.isFinite(t)?t:0,i=G(n,r);return[{prefix:`MIN:`,val:n},i[0],i[1],{prefix:`MAX:`,val:r}]},q=({labels:e,fillColor:t=`#f9f9f9`,className:n=``,style:r})=>{let[i,a]=e,o=[86,62,38,24],s=K(i,a).reverse();return(0,_.jsx)(`div`,{className:`l7-mapkit-component l7-mapkit-legend-proportion ${n}`,style:r,children:(0,_.jsxs)(`div`,{className:`flex items-end`,children:[(0,_.jsx)(`div`,{className:`relative flex justify-end items-end mr-4`,style:{width:o[0]},children:o.map(e=>(0,_.jsx)(`div`,{className:`absolute rounded-full border border-gray-300`,style:{width:e,height:e,backgroundColor:t}},e))}),(0,_.jsx)(`div`,{style:{height:o[0]},children:s.map((e,t)=>(0,_.jsxs)(`div`,{className:`text-sm mb-1`,children:[e?.prefix,typeof e==`number`?e:e.val]},t))})]})})},J=({items:e,className:t=``,style:n})=>(0,_.jsx)(`div`,{className:`l7-mapkit-component l7-mapkit-legend-icon ${t}`,style:n,children:e.map((e,t)=>(0,_.jsxs)(`div`,{className:`flex items-center mb-2`,children:[(0,_.jsx)(`img`,{src:e.icon,alt:e.label,className:`w-6 h-6 mr-2 object-contain`}),(0,_.jsx)(`span`,{className:`text-sm`,children:e.label})]},t))});function ee(e){let{longitude:t,latitude:n,option:r,onLoaded:i,onClick:a,onMouseEnter:o,onMouseLeave:s,children:c}=e,u=m(),p=(0,d.useRef)(null),[h]=(0,d.useState)(()=>document.createElement(`div`)),g=(0,d.useRef)(!1);return(0,d.useEffect)(()=>{if(g.current)return;g.current=!0;let e=new l.Marker(r);return e.setLnglat({lng:t,lat:n}),c&&e.setElement(h),p.current=e,u.addMarker(e),i?.(e),()=>{e.remove(),p.current=null,g.current=!1}},[]),(0,d.useEffect)(()=>{p.current&&p.current.setLnglat({lng:t,lat:n})},[t,n]),(0,d.useEffect)(()=>{if(!p.current||!a)return;let e=p.current;return e.on(`click`,a),()=>{e.off(`click`,a)}},[a]),(0,d.useEffect)(()=>{if(!p.current||!o)return;let e=p.current;return e.on(`mouseenter`,o),()=>{e.off(`mouseenter`,o)}},[o]),(0,d.useEffect)(()=>{if(!p.current||!s)return;let e=p.current;return e.on(`mouseleave`,s),()=>{e.off(`mouseleave`,s)}},[s]),c?(0,f.createPortal)(c,h):null}function te(e){let{data:t,cluster:n=!1,clusterOption:r,renderMarker:i,onLoaded:a}=e,o=m(),s=(0,d.useRef)(null),c=(0,d.useRef)(!1);return(0,d.useEffect)(()=>{if(c.current)return;c.current=!0;let e=new l.MarkerLayer({cluster:n,clusterOption:r});return t.forEach(t=>{let n=new l.Marker(i?{element:i(t)}:void 0);n.setLnglat({lng:t.longitude,lat:t.latitude}),e.addMarker(n)}),s.current=e,o.addMarkerLayer(e),a?.(e),()=>{e.destroy(),s.current=null,c.current=!1}},[]),(0,d.useEffect)(()=>{s.current&&(s.current.clear(),t.forEach(e=>{let t=new l.Marker(i?{element:i(e)}:void 0);t.setLnglat({lng:e.longitude,lat:e.latitude}),s.current.addMarker(t)}))},[t]),null}function Y(e){let{longitude:t,latitude:n,option:r,closeButton:i=!1,onClose:a,children:o}=e,s=m(),c=(0,d.useRef)(null),u=(0,d.useRef)(document.createElement(`div`)),p=(0,d.useRef)(!1);return(0,d.useEffect)(()=>{if(p.current)return;p.current=!0;let e=new l.Popup({closeButton:i,...r});return e.setLnglat([t,n]),o&&e.setHTML(u.current),a&&e.on(`close`,a),c.current=e,s.addPopup(e),()=>{e.remove(),c.current=null,p.current=!1}},[]),(0,d.useEffect)(()=>{c.current&&c.current.setLnglat([t,n])},[t,n]),o?(0,f.createPortal)(o,u.current):null}function X(e){let{name:t,url:n}=e,r=m();return(0,d.useEffect)(()=>(r.addImage(t,n),()=>{r.removeImage(t)}),[t,n]),null}function ne(e){let{images:t}=e;return(0,_.jsx)(_.Fragment,{children:t.map(e=>(0,_.jsx)(X,{name:e.name,url:e.url},e.name))})}exports.Control=j,exports.CustomControl=M,exports.ExportImageControl=z,exports.FullscreenControl=F,exports.GaodeMapScene=v,exports.GeoLocateControl=I,exports.HeatmapLayer=D,exports.ImageLayer=k,exports.LayerContext=b,exports.LegendCategories=V,exports.LegendIcon=J,exports.LegendProportion=q,exports.LegendRamp=W,exports.LineLayer=T,exports.LoadImage=X,exports.LoadImages=ne,exports.MapScene=y,exports.MapThemeControl=L,exports.Marker=ee,exports.MarkerLayer=te,exports.MouseLocationControl=R,exports.PointLayer=w,exports.PolygonLayer=E,exports.Popup=Y,exports.RasterLayer=O,exports.ScaleControl=P,exports.SceneContext=p,exports.ZoomControl=N,exports.useLayer=x,exports.useScene=m;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antv/l7-mapkit",
3
- "version": "0.3.0",
3
+ "version": "0.4.4",
4
4
  "description": "React components for AntV L7 geospatial visualization",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -8,28 +8,26 @@
8
8
  "type": "git",
9
9
  "url": "https://github.com/antvis/L7-react"
10
10
  },
11
- "main": "./dist/l7-mapkit.umd.cjs",
12
- "module": "./dist/l7-mapkit.js",
13
- "types": "./dist/index.d.ts",
11
+ "main": "lib/index.js",
12
+ "unpkg": "dist/l7-mapkit.umd.cjs",
13
+ "module": "es/index.js",
14
+ "types": "es/index.d.ts",
14
15
  "exports": {
15
16
  ".": {
16
- "development": {
17
- "types": "./src/index.ts",
18
- "default": "./src/index.ts"
19
- },
20
- "import": "./dist/l7-mapkit.js",
21
- "require": "./dist/l7-mapkit.umd.cjs",
22
- "types": "./dist/index.d.ts"
17
+ "import": "./es/index.js",
18
+ "require": "./lib/index.js",
19
+ "types": "./es/index.d.ts"
23
20
  }
24
21
  },
25
22
  "files": [
26
- "dist",
23
+ "es",
24
+ "lib",
27
25
  "README.md"
28
26
  ],
29
27
  "scripts": {
30
28
  "dev": "vite build --watch",
31
29
  "start": "vite",
32
- "build": "vite build && tsc --emitDeclarationOnly --declaration --outDir dist",
30
+ "build": "vite build && vite build --config vite.config.cjs.ts && tsc --emitDeclarationOnly --declaration --outDir es",
33
31
  "preview": "vite preview",
34
32
  "type-check": "tsc --noEmit",
35
33
  "lint": "eslint src --ext .ts,.tsx",
@@ -1,22 +0,0 @@
1
- import React from 'react';
2
- import type { ControlPosition } from './types';
3
- /**
4
- * 自定义控件属性
5
- */
6
- export interface CustomControlProps {
7
- /** 控件位置 */
8
- position?: ControlPosition;
9
- /** 控件名称 */
10
- name?: string;
11
- /** 自定义类名 */
12
- className?: string;
13
- /** 自定义样式 */
14
- style?: React.CSSProperties;
15
- /** 子组件 */
16
- children?: React.ReactNode;
17
- }
18
- /**
19
- * 自定义控件组件
20
- * 支持 PC 和移动端响应式布局,使用 Tailwind CSS 样式
21
- */
22
- export declare const CustomControl: React.FC<CustomControlProps>;
@@ -1,36 +0,0 @@
1
- import React from 'react';
2
- import type { ControlPosition } from './types';
3
- /**
4
- * 导出图片控件属性
5
- */
6
- export interface ExportImageControlProps {
7
- /** 控件位置 */
8
- position?: ControlPosition;
9
- /** 图片类型 */
10
- imageType?: 'png' | 'jpeg';
11
- /** 按钮文本 */
12
- btnText?: string;
13
- /** 按钮标题 */
14
- title?: string;
15
- /** 是否垂直布局 */
16
- vertical?: boolean;
17
- /** 自定义类名 */
18
- className?: string;
19
- /** 自定义样式 */
20
- style?: React.CSSProperties;
21
- /** 控件添加回调 */
22
- onAdd?: () => void;
23
- /** 控件移除回调 */
24
- onRemove?: () => void;
25
- /** 控件显示回调 */
26
- onShow?: () => void;
27
- /** 控件隐藏回调 */
28
- onHide?: () => void;
29
- /** 导出回调 */
30
- onExport?: (dataUrl: string) => void;
31
- }
32
- /**
33
- * 导出图片控件组件
34
- * 支持 PC 和移动端响应式布局,使用 Tailwind CSS 样式
35
- */
36
- export declare const ExportImageControl: React.FC<ExportImageControlProps>;
@@ -1,38 +0,0 @@
1
- import React from 'react';
2
- import type { ControlPosition } from './types';
3
- /**
4
- * 全屏控件属性
5
- */
6
- export interface FullscreenControlProps {
7
- /** 控件位置 */
8
- position?: ControlPosition;
9
- /** 按钮文本 */
10
- btnText?: string;
11
- /** 按钮标题 */
12
- title?: string;
13
- /** 是否垂直布局 */
14
- vertical?: boolean;
15
- /** 退出按钮文本 */
16
- exitBtnText?: string;
17
- /** 退出按钮标题 */
18
- exitTitle?: string;
19
- /** 自定义类名 */
20
- className?: string;
21
- /** 自定义样式 */
22
- style?: React.CSSProperties;
23
- /** 控件添加回调 */
24
- onAdd?: () => void;
25
- /** 控件移除回调 */
26
- onRemove?: () => void;
27
- /** 控件显示回调 */
28
- onShow?: () => void;
29
- /** 控件隐藏回调 */
30
- onHide?: () => void;
31
- /** 全屏状态变化回调 */
32
- onFullscreenChange?: (isFullscreen: boolean) => void;
33
- }
34
- /**
35
- * 全屏控件组件
36
- * 支持 PC 和移动端响应式布局,使用 Tailwind CSS 样式
37
- */
38
- export declare const FullscreenControl: React.FC<FullscreenControlProps>;
@@ -1,34 +0,0 @@
1
- import React from 'react';
2
- import type { ControlPosition } from './types';
3
- /**
4
- * 定位控件属性
5
- */
6
- export interface GeoLocateControlProps {
7
- /** 控件位置 */
8
- position?: ControlPosition;
9
- /** 按钮文本 */
10
- btnText?: string;
11
- /** 按钮标题 */
12
- title?: string;
13
- /** 是否垂直布局 */
14
- vertical?: boolean;
15
- /** 坐标转换函数 */
16
- transform?: (lnglat: [number, number]) => [number, number];
17
- /** 自定义类名 */
18
- className?: string;
19
- /** 自定义样式 */
20
- style?: React.CSSProperties;
21
- /** 控件添加回调 */
22
- onAdd?: () => void;
23
- /** 控件移除回调 */
24
- onRemove?: () => void;
25
- /** 控件显示回调 */
26
- onShow?: () => void;
27
- /** 控件隐藏回调 */
28
- onHide?: () => void;
29
- }
30
- /**
31
- * 定位控件组件
32
- * 支持 PC 和移动端响应式布局,使用 Tailwind CSS 样式
33
- */
34
- export declare const GeoLocateControl: React.FC<GeoLocateControlProps>;
@@ -1,56 +0,0 @@
1
- import React from 'react';
2
- import type { ControlPosition } from './types';
3
- /**
4
- * 地图主题选项
5
- */
6
- export interface MapThemeOption {
7
- /** 主题值 */
8
- value: string;
9
- /** 显示文本 */
10
- text: string;
11
- [key: string]: any;
12
- }
13
- /**
14
- * 地图主题控件属性
15
- */
16
- export interface MapThemeControlProps {
17
- /** 控件位置 */
18
- position?: ControlPosition;
19
- /** 主题选项列表 */
20
- options?: MapThemeOption[];
21
- /** 按钮文本 */
22
- btnText?: string;
23
- /** 按钮标题 */
24
- title?: string;
25
- /** 是否垂直布局 */
26
- vertical?: boolean;
27
- /** Popper 放置位置 */
28
- popperPlacement?: 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
29
- /** Popper 触发方式 */
30
- popperTrigger?: 'click' | 'hover';
31
- /** Popper 类名 */
32
- popperClassName?: string;
33
- /** 自定义类名 */
34
- className?: string;
35
- /** 自定义样式 */
36
- style?: React.CSSProperties;
37
- /** 控件添加回调 */
38
- onAdd?: () => void;
39
- /** 控件移除回调 */
40
- onRemove?: () => void;
41
- /** 控件显示回调 */
42
- onShow?: () => void;
43
- /** 控件隐藏回调 */
44
- onHide?: () => void;
45
- /** Popper 显示回调 */
46
- onPopperShow?: () => void;
47
- /** Popper 隐藏回调 */
48
- onPopperHide?: () => void;
49
- /** 选择变化回调 */
50
- onSelectChange?: (value: string) => void;
51
- }
52
- /**
53
- * 地图主题控件组件
54
- * 支持 PC 和移动端响应式布局,使用 Tailwind CSS 样式
55
- */
56
- export declare const MapThemeControl: React.FC<MapThemeControlProps>;
@@ -1,30 +0,0 @@
1
- import React from 'react';
2
- import type { ControlPosition } from './types';
3
- /**
4
- * 鼠标位置控件属性
5
- */
6
- export interface MouseLocationControlProps {
7
- /** 控件位置 */
8
- position?: ControlPosition;
9
- /** 自定义类名 */
10
- className?: string;
11
- /** 自定义样式 */
12
- style?: React.CSSProperties;
13
- /** 坐标转换函数 */
14
- transform?: (position: any) => any;
15
- /** 控件添加回调 */
16
- onAdd?: () => void;
17
- /** 控件移除回调 */
18
- onRemove?: () => void;
19
- /** 控件显示回调 */
20
- onShow?: () => void;
21
- /** 控件隐藏回调 */
22
- onHide?: () => void;
23
- /** 位置变化回调 */
24
- onLocationChange?: (lnglat: [number, number]) => void;
25
- }
26
- /**
27
- * 鼠标位置控件组件
28
- * 支持 PC 和移动端响应式布局,使用 Tailwind CSS 样式
29
- */
30
- export declare const MouseLocationControl: React.FC<MouseLocationControlProps>;
@@ -1,36 +0,0 @@
1
- import React from 'react';
2
- import type { ControlPosition } from './types';
3
- /**
4
- * 比例尺控件属性
5
- */
6
- export interface ScaleControlProps {
7
- /** 控件位置 */
8
- position?: ControlPosition;
9
- /** 自定义类名 */
10
- className?: string;
11
- /** 自定义样式 */
12
- style?: React.CSSProperties;
13
- /** 是否锁定宽度 */
14
- lockWidth?: boolean;
15
- /** 最大宽度 */
16
- maxWidth?: number;
17
- /** 是否显示公制单位 */
18
- metric?: boolean;
19
- /** 是否显示英制单位 */
20
- imperial?: boolean;
21
- /** 是否在地图静止时更新 */
22
- updateWhenIdle?: boolean;
23
- /** 控件添加回调 */
24
- onAdd?: () => void;
25
- /** 控件移除回调 */
26
- onRemove?: () => void;
27
- /** 控件显示回调 */
28
- onShow?: () => void;
29
- /** 控件隐藏回调 */
30
- onHide?: () => void;
31
- }
32
- /**
33
- * 比例尺控件组件
34
- * 支持 PC 和移动端响应式布局,使用 Tailwind CSS 样式
35
- */
36
- export declare const ScaleControl: React.FC<ScaleControlProps>;
@@ -1,34 +0,0 @@
1
- import React from 'react';
2
- import type { ControlPosition } from './types';
3
- /**
4
- * 缩放控件属性
5
- */
6
- export interface ZoomControlProps {
7
- /** 控件位置 */
8
- position?: ControlPosition;
9
- /** 缩放按钮文本 */
10
- zoomInText?: React.ReactNode;
11
- zoomOutText?: React.ReactNode;
12
- /** 缩放按钮标题 */
13
- zoomInTitle?: string;
14
- zoomOutTitle?: string;
15
- /** 是否显示缩放级别 */
16
- showZoom?: boolean;
17
- /** 自定义类名 */
18
- className?: string;
19
- /** 自定义样式 */
20
- style?: React.CSSProperties;
21
- /** 控件添加回调 */
22
- onAdd?: () => void;
23
- /** 控件移除回调 */
24
- onRemove?: () => void;
25
- /** 控件显示回调 */
26
- onShow?: () => void;
27
- /** 控件隐藏回调 */
28
- onHide?: () => void;
29
- }
30
- /**
31
- * 缩放控件组件
32
- * 支持 PC 和移动端响应式布局,使用 Tailwind CSS 样式
33
- */
34
- export declare const ZoomControl: React.FC<ZoomControlProps>;
@@ -1,17 +0,0 @@
1
- /**
2
- * 控件位置类型
3
- */
4
- export type ControlPosition = 'topleft' | 'topright' | 'bottomleft' | 'bottomright';
5
- /**
6
- * 控件回调接口
7
- */
8
- export interface IControlCallback<T> {
9
- /** 控件添加回调 */
10
- onAdd?: () => void;
11
- /** 控件移除回调 */
12
- onRemove?: () => void;
13
- /** 控件显示回调 */
14
- onShow?: () => void;
15
- /** 控件隐藏回调 */
16
- onHide?: () => void;
17
- }
@@ -1,44 +0,0 @@
1
- import type { PositionName } from '@antv/l7';
2
- import React from 'react';
3
- /**
4
- * 内置控件类型
5
- * - zoom: 缩放控件
6
- * - scale: 比例尺控件
7
- * - logo: Logo 控件
8
- * - layerSwitch: 图层切换控件
9
- * - mouseLocation: 鼠标坐标控件
10
- * - mapTheme: 地图主题控件
11
- * - geoLocate: 定位控件
12
- * - exportImage: 导出图片控件
13
- * - fullscreen: 全屏控件
14
- * - swipe: 卷帘对比控件
15
- */
16
- export type ControlType = 'zoom' | 'scale' | 'logo' | 'layerSwitch' | 'mouseLocation' | 'mapTheme' | 'geoLocate' | 'exportImage' | 'fullscreen' | 'swipe';
17
- export interface IControlProps {
18
- /**
19
- * 控件类型
20
- * @see ControlType
21
- */
22
- type: ControlType;
23
- /**
24
- * 控件位置
25
- * @default 'bottomright'
26
- */
27
- position?: PositionName;
28
- /** 透传给控件构造器的其他配置项 */
29
- [key: string]: any;
30
- }
31
- /**
32
- * 内置地图控件组件,必须在 GaodeMapScene 或 MapScene 内部使用。
33
- *
34
- * @example
35
- * ```tsx
36
- * <GaodeMapScene ...>
37
- * <Control type="zoom" position="topleft" />
38
- * <Control type="scale" position="bottomleft" />
39
- * <Control type="layerSwitch" position="topright" />
40
- * </GaodeMapScene>
41
- * ```
42
- */
43
- declare const _default: React.NamedExoticComponent<IControlProps>;
44
- export default _default;
@@ -1,32 +0,0 @@
1
- import type { PositionName } from '@antv/l7';
2
- import React from 'react';
3
- export interface ICustomControlProps {
4
- /**
5
- * 控件位置
6
- * @default 'topright'
7
- */
8
- position?: PositionName;
9
- /** 控件容器 className */
10
- className?: string;
11
- /** 控件容器内联样式 */
12
- style?: React.CSSProperties;
13
- /** 自定义控件内容 */
14
- children?: React.ReactNode;
15
- }
16
- /**
17
- * 自定义地图控件组件,支持将任意 React 内容渲染到地图控件区域。
18
- * 必须在 GaodeMapScene 或 MapScene 内部使用。
19
- *
20
- * @example
21
- * ```tsx
22
- * <GaodeMapScene ...>
23
- * <CustomControl position="topright" className="my-legend">
24
- * <div style={{ background: 'white', padding: 8 }}>
25
- * <h4>图例</h4>
26
- * <span style={{ color: '#f00' }}>● 高值</span>
27
- * </div>
28
- * </CustomControl>
29
- * </GaodeMapScene>
30
- * ```
31
- */
32
- export default function CustomControl(props: ICustomControlProps): React.ReactPortal | null;
@@ -1,79 +0,0 @@
1
- import React from 'react';
2
- import type { ILayerProps } from './LayerAttribute/index';
3
- /**
4
- * 点图层,适合渲染散点、气泡、热力等点数据。
5
- *
6
- * @example
7
- * ```tsx
8
- * <PointLayer
9
- * source={data}
10
- * sourceConfig={{ parser: { type: 'json', x: 'lng', y: 'lat' } }}
11
- * colorField="value"
12
- * colorValues={['#f0f9e8', '#08589e']}
13
- * size={6}
14
- * shape="circle"
15
- * onClick={(e) => console.log(e)}
16
- * />
17
- * ```
18
- */
19
- export declare const PointLayer: React.NamedExoticComponent<ILayerProps>;
20
- /**
21
- * 线图层,适合渲染路径、边界、轨迹等线数据。
22
- * shape 支持:'line' | 'arc' | 'arc3d' | 'greatcircle'
23
- *
24
- * @example
25
- * ```tsx
26
- * <LineLayer
27
- * source={geojson}
28
- * color="#1890ff"
29
- * size={2}
30
- * style={{ opacity: 0.8 }}
31
- * />
32
- * ```
33
- */
34
- export declare const LineLayer: React.NamedExoticComponent<ILayerProps>;
35
- /**
36
- * 面图层,适合渲染行政区划、围栏、区域填充等面数据。
37
- *
38
- * @example
39
- * ```tsx
40
- * <PolygonLayer
41
- * source={geoData}
42
- * colorField="value"
43
- * colorValues={['#edf8e9', '#006d2c']}
44
- * style={{ opacity: 0.6 }}
45
- * active
46
- * />
47
- * ```
48
- */
49
- export declare const PolygonLayer: React.NamedExoticComponent<ILayerProps>;
50
- /**
51
- * 热力图层,适合渲染密度分布、强度分布等热力数据。
52
- * shape 支持:'heatmap' | 'heatmap3d' | 'hexagon' | 'grid'
53
- *
54
- * @example
55
- * ```tsx
56
- * <HeatmapLayer
57
- * source={points}
58
- * sourceConfig={{ parser: { type: 'json', x: 'lng', y: 'lat' } }}
59
- * colorValues={['#f7fbff', '#08306b']}
60
- * shape="heatmap"
61
- * />
62
- * ```
63
- */
64
- export declare const HeatmapLayer: React.NamedExoticComponent<ILayerProps>;
65
- /**
66
- * 栅格图层,适合渲染影像、遥感等栅格数据。
67
- */
68
- export declare const RasterLayer: React.NamedExoticComponent<ILayerProps>;
69
- /**
70
- * 图片图层,将一张图片叠加到地图指定范围。
71
- *
72
- * @example
73
- * ```tsx
74
- * <ImageLayer
75
- * source={{ data: 'https://example.com/image.png', bounds: [73, 3, 135, 53] }}
76
- * />
77
- * ```
78
- */
79
- export declare const ImageLayer: React.NamedExoticComponent<ILayerProps>;
@@ -1,14 +0,0 @@
1
- import type { ILayerProps } from './index';
2
- interface IBaseLayerProps extends ILayerProps {
3
- layerType: string;
4
- }
5
- /**
6
- * 所有图层组件的基础实现,负责:
7
- * 1. 创建 L7 图层实例
8
- * 2. 将扁平 props 映射到图层 API 调用
9
- * 3. 响应 props 变化并更新图层
10
- * 4. 注册/注销事件监听
11
- * 5. 提供 LayerContext 供子组件使用
12
- */
13
- export declare function BaseLayer(props: IBaseLayerProps): import("react/jsx-runtime").JSX.Element;
14
- export {};