{"_id":"@1adybug/react-amap","_rev":"10-c8acb57f9c8e3ce6db8d4be5e07887a7","name":"@1adybug/react-amap","dist-tags":{"latest":"0.5.1"},"versions":{"0.0.1":{"name":"@1adybug/react-amap","version":"0.0.1","_id":"@1adybug/react-amap@0.0.1","maintainers":[{"name":"1adybug","email":"lurongv@qq.com"}],"dist":{"shasum":"5abb3ffe6531767cd7c59d1f802bdff04c40a9d0","tarball":"https://registry.npmjs.org/@1adybug/react-amap/-/react-amap-0.0.1.tgz","fileCount":34,"integrity":"sha512-YRX7Cchkb2QJuuAfoNoKaZGUuXjxWAOkcgqH9MdvJQmsuPu1kXLHRZFAAimFaO/ytjPOKRLicrCH7upN7K3o5w==","signatures":[{"sig":"MEQCIEADdnzrMGMZyeXORkt2UFGzlNIxnhHT6VCjcIV6n1bGAiAjL/nVFJAj8mPva5vwkGZA/GEmkH2421xNsgBc6FXpJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211265},"main":"./dist/index.cjs","type":"module","_from":"file:1adybug-react-amap-0.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"rslib --watch","lint":"eslint . --ignore-pattern dist","build":"rslib build"},"_npmUser":{"name":"1adybug","email":"lurongv@qq.com"},"_resolved":"C:\\Users\\aorus\\AppData\\Local\\Temp\\0bc052408bb7eca16b01b9d2765598ed\\1adybug-react-amap-0.0.1.tgz","_integrity":"sha512-YRX7Cchkb2QJuuAfoNoKaZGUuXjxWAOkcgqH9MdvJQmsuPu1kXLHRZFAAimFaO/ytjPOKRLicrCH7upN7K3o5w==","_npmVersion":"11.12.1","description":"Install the dependencies:","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"stable-hash":"^0.0.6","@amap/amap-jsapi-types":"0.0.15","@amap/amap-jsapi-loader":"1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.com/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@rslib/core":"^0.22.0","@rsbuild/plugin-react":"^2.0.1"},"peerDependencies":{"react":">=19.2.4","react-dom":">=19.2.4","@types/react":"^19.2.15","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/react-amap_0.0.1_1780916262608_0.6218109728905687","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@1adybug/react-amap","version":"0.1.0","_id":"@1adybug/react-amap@0.1.0","maintainers":[{"name":"1adybug","email":"lurongv@qq.com"}],"dist":{"shasum":"c386bc0e2824035da275eef09fc80ba94b38807d","tarball":"https://registry.npmjs.org/@1adybug/react-amap/-/react-amap-0.1.0.tgz","fileCount":42,"integrity":"sha512-o0DlrvJ7CXG7/VfIZkDTJ855fZ2QtQN3cqdGA0qfXGzzbtYfjzW006C9hCx6ptCLLFvh4a9Ti3akKdML8wNJ2g==","signatures":[{"sig":"MEUCIFFonx69JYHqIuRAcO0+lOTDY+nSQzHkDhJiEghpTkyDAiEA2Wa+Mbwnuao+elkPWEI3GauL1uhbfVFcxBmnDV47FY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305005},"main":"./dist/index.cjs","type":"module","_from":"file:1adybug-react-amap-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"rslib --watch","lint":"eslint . --ignore-pattern dist","build":"rslib build"},"_npmUser":{"name":"1adybug","email":"lurongv@qq.com"},"_resolved":"C:\\Users\\aorus\\AppData\\Local\\Temp\\858082261362b145ae1b63a423c68fe6\\1adybug-react-amap-0.1.0.tgz","_integrity":"sha512-o0DlrvJ7CXG7/VfIZkDTJ855fZ2QtQN3cqdGA0qfXGzzbtYfjzW006C9hCx6ptCLLFvh4a9Ti3akKdML8wNJ2g==","_npmVersion":"11.12.1","description":"Install the dependencies:","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"stable-hash":"^0.0.6","@amap/amap-jsapi-types":"0.0.15","@amap/amap-jsapi-loader":"1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@rslib/core":"^0.22.0","@rsbuild/plugin-react":"^2.0.1"},"peerDependencies":{"react":">=19.2.4","react-dom":">=19.2.4","@types/react":"^19.2.15","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/react-amap_0.1.0_1780974027994_0.83756878847757","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@1adybug/react-amap","version":"0.2.0","_id":"@1adybug/react-amap@0.2.0","maintainers":[{"name":"1adybug","email":"lurongv@qq.com"}],"dist":{"shasum":"e2f039f02c9804ba9281fd3dfc810be806cddf88","tarball":"https://registry.npmjs.org/@1adybug/react-amap/-/react-amap-0.2.0.tgz","fileCount":42,"integrity":"sha512-eveUsbPVuLk6vfGlzpKWXvaqGpG8FzJcS/547VMp7AY1uXudqGFVXRbd8a3UdeWb9qQDeDizd/VvgCUXtiRohg==","signatures":[{"sig":"MEUCIQCSgT8+tfBi8TWyuF73ajKSfYWpDNzs6Oyk2b1WGfZU5gIgbZWG7FnVTWIBmdtELOEBfOBFWjJtBr6SY0B5gqv5eSA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339164},"main":"./dist/index.cjs","type":"module","_from":"file:1adybug-react-amap-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"rslib --watch","lint":"eslint . --ignore-pattern dist","build":"rslib build"},"_npmUser":{"name":"1adybug","email":"lurongv@qq.com"},"_resolved":"C:\\Users\\aorus\\AppData\\Local\\Temp\\05aae8b67ba842d7111cedfddee0a898\\1adybug-react-amap-0.2.0.tgz","_integrity":"sha512-eveUsbPVuLk6vfGlzpKWXvaqGpG8FzJcS/547VMp7AY1uXudqGFVXRbd8a3UdeWb9qQDeDizd/VvgCUXtiRohg==","_npmVersion":"11.12.1","description":"`@1adybug/react-amap` 是基于高德地图 JSAPI v2.0 的 React 19 声明式封装。它负责加载 JSAPI、创建地图实例，并把点标记、矢量图形、图层、控件、工具、服务等高德对象映射为 React 组件或 Hook。","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"stable-hash":"^0.0.6","@amap/amap-jsapi-types":"0.0.15","@amap/amap-jsapi-loader":"1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@rslib/core":"^0.22.0","@rsbuild/plugin-react":"^2.0.1"},"peerDependencies":{"react":">=19.2.4","react-dom":">=19.2.4","@types/react":"^19.2.15","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/react-amap_0.2.0_1780975497735_0.3821409911100746","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@1adybug/react-amap","version":"0.2.1","_id":"@1adybug/react-amap@0.2.1","maintainers":[{"name":"1adybug","email":"lurongv@qq.com"}],"dist":{"shasum":"42b7889352563e49323cbe93d8a6b7496c2995d7","tarball":"https://registry.npmjs.org/@1adybug/react-amap/-/react-amap-0.2.1.tgz","fileCount":42,"integrity":"sha512-Iy5MY2hBOAGUYFZiQDSC6XwnRZDpjT7lOF9d0cLynxav7b5HJzY1XVrXy8K9Nd/ClF0ous4P9m6I6hlRaytxbw==","signatures":[{"sig":"MEUCIH4MFlLiFJGS/O/InGXzBRwqBEi8i+jsOe1pAhoktOjPAiEAkRKAJOorgMg1mfcBUCkH2Z9Ob0zoPb4P8BsVPwc0FAo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346380},"main":"./dist/index.cjs","type":"module","_from":"file:1adybug-react-amap-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"rslib --watch","lint":"eslint . --ignore-pattern dist","build":"rslib build"},"_npmUser":{"name":"1adybug","email":"lurongv@qq.com"},"_resolved":"C:\\Users\\aorus\\AppData\\Local\\Temp\\0bc738b6adb8c7fb0fcb3321a599193b\\1adybug-react-amap-0.2.1.tgz","_integrity":"sha512-Iy5MY2hBOAGUYFZiQDSC6XwnRZDpjT7lOF9d0cLynxav7b5HJzY1XVrXy8K9Nd/ClF0ous4P9m6I6hlRaytxbw==","_npmVersion":"11.12.1","description":"`@1adybug/react-amap` 是基于高德地图 JSAPI v2.0 的 React 19 声明式封装。它负责加载 JSAPI、创建地图实例，并把点标记、矢量图形、图层、控件、工具、服务等高德对象映射为 React 组件或 Hook。","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"stable-hash":"^0.0.6","@amap/amap-jsapi-types":"0.0.15","@amap/amap-jsapi-loader":"1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@rslib/core":"^0.22.0","@rsbuild/plugin-react":"^2.0.1"},"peerDependencies":{"react":">=19.2.4","react-dom":">=19.2.4","@types/react":"^19.2.15","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/react-amap_0.2.1_1780984970319_0.6147495218587549","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@1adybug/react-amap","version":"0.3.0","_id":"@1adybug/react-amap@0.3.0","maintainers":[{"name":"1adybug","email":"lurongv@qq.com"}],"dist":{"shasum":"4d2b56c2bba26259c39e857bd32a03b1b338f077","tarball":"https://registry.npmjs.org/@1adybug/react-amap/-/react-amap-0.3.0.tgz","fileCount":42,"integrity":"sha512-C4KJSF6ogPkOZfEQDAEawPFZdYW6R/V73J23LNeVwONf2WgeCm7AAOOxa0Yk4p4U07Sg1J9ZEdlGQLofVjDHqw==","signatures":[{"sig":"MEUCIQCZ4C9beo64jNvZlRvuIx1p/JZFittRRhV4rDvAh5owkQIgEpMmUg9B++hZBAzgw5wQYmfCXt3sVD8xn2asZKYfKCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352490},"main":"./dist/index.cjs","type":"module","_from":"file:1adybug-react-amap-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"rslib --watch","lint":"eslint . --ignore-pattern dist","build":"rslib build"},"_npmUser":{"name":"1adybug","email":"lurongv@qq.com"},"_resolved":"C:\\Users\\aorus\\AppData\\Local\\Temp\\12c6354f34674e3259c9f45e656ae04a\\1adybug-react-amap-0.3.0.tgz","_integrity":"sha512-C4KJSF6ogPkOZfEQDAEawPFZdYW6R/V73J23LNeVwONf2WgeCm7AAOOxa0Yk4p4U07Sg1J9ZEdlGQLofVjDHqw==","_npmVersion":"11.12.1","description":"`@1adybug/react-amap` 是基于高德地图 JSAPI v2.0 的 React 19 声明式封装。它负责加载 JSAPI、创建地图实例，并把点标记、矢量图形、图层、控件、工具、服务等高德对象映射为 React 组件或 Hook。","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"stable-hash":"^0.0.6","@amap/amap-jsapi-types":"0.0.15","@amap/amap-jsapi-loader":"1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@rslib/core":"^0.22.0","@rsbuild/plugin-react":"^2.0.1"},"peerDependencies":{"react":">=19.2.4","react-dom":">=19.2.4","@types/react":"^19.2.15","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/react-amap_0.3.0_1780987228813_0.9251701596524651","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@1adybug/react-amap","version":"0.3.1","_id":"@1adybug/react-amap@0.3.1","maintainers":[{"name":"1adybug","email":"lurongv@qq.com"}],"dist":{"shasum":"ad74fc0f95a6cdf82e1bd4c4e652cb5fee1e36b5","tarball":"https://registry.npmjs.org/@1adybug/react-amap/-/react-amap-0.3.1.tgz","fileCount":42,"integrity":"sha512-rj72hBcJc7jnyMBDPp5E+HuoeAxklpCGfzSNHMnm/irmAax9KMU3u58W3RVjxHJXjvp3BRgIXTLGJTMZ30kpaQ==","signatures":[{"sig":"MEUCIQClVmTFxjWcKEziMUrT3Ml78P5RhZE7TTVTpJAZq5VMKgIgVSYtieQiT34/ZErpHdceZTiJ4I9sxiLb18D+5ytmRxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363714},"main":"./dist/index.cjs","type":"module","_from":"file:1adybug-react-amap-0.3.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"rslib --watch","lint":"eslint . --ignore-pattern dist","build":"rslib build"},"_npmUser":{"name":"1adybug","email":"lurongv@qq.com"},"_resolved":"C:\\Users\\aorus\\AppData\\Local\\Temp\\602a8a2e2e719ed42784c9e8bc865fd8\\1adybug-react-amap-0.3.1.tgz","_integrity":"sha512-rj72hBcJc7jnyMBDPp5E+HuoeAxklpCGfzSNHMnm/irmAax9KMU3u58W3RVjxHJXjvp3BRgIXTLGJTMZ30kpaQ==","_npmVersion":"11.12.1","description":"`@1adybug/react-amap` 是基于高德地图 JSAPI v2.0 的 React 19 声明式封装。它负责加载 JSAPI、创建地图实例，并把点标记、矢量图形、图层、控件、工具、服务等高德对象映射为 React 组件或 Hook。","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"stable-hash":"^0.0.6","@amap/amap-jsapi-types":"0.0.15","@amap/amap-jsapi-loader":"1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@rslib/core":"^0.22.0","@rsbuild/plugin-react":"^2.0.1"},"peerDependencies":{"react":">=19.2.4","react-dom":">=19.2.4","@types/react":"^19.2.15","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/react-amap_0.3.1_1780989123473_0.7107588176827018","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@1adybug/react-amap","version":"0.3.2","_id":"@1adybug/react-amap@0.3.2","maintainers":[{"name":"1adybug","email":"lurongv@qq.com"}],"dist":{"shasum":"7b2bd97ec1f82c3eca9c946acc7eb334c768370f","tarball":"https://registry.npmjs.org/@1adybug/react-amap/-/react-amap-0.3.2.tgz","fileCount":42,"integrity":"sha512-74ljeTiHk0DC0FbEHCoFK4OZzs36SmfBQx19kGYozcRQdYt0WlQCOY4tvN9naviVSoCIwewd6JWi1pbKOahoIA==","signatures":[{"sig":"MEUCIQD4/aa5tfdN4wQMUpRyTNMIIghe/W8OVminY98DmI1ZwgIgTro0mpjtBUwNQXq31LoyCVPpfwKiesjMtrAygJeMFuA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":418410},"main":"./dist/index.cjs","type":"module","_from":"file:1adybug-react-amap-0.3.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"rslib --watch","lint":"eslint . --ignore-pattern dist","build":"rslib build"},"_npmUser":{"name":"1adybug","email":"lurongv@qq.com"},"_resolved":"C:\\Users\\aorus\\AppData\\Local\\Temp\\5305854cf5da7c988bd8e27aa258be94\\1adybug-react-amap-0.3.2.tgz","_integrity":"sha512-74ljeTiHk0DC0FbEHCoFK4OZzs36SmfBQx19kGYozcRQdYt0WlQCOY4tvN9naviVSoCIwewd6JWi1pbKOahoIA==","_npmVersion":"11.12.1","description":"`@1adybug/react-amap` 是基于高德地图 JSAPI v2.0 的 React 19 声明式封装。它负责加载 JSAPI、创建地图实例，并把点标记、矢量图形、图层、控件、工具、服务等高德对象映射为 React 组件或 Hook。","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"stable-hash":"^0.0.6","@amap/amap-jsapi-types":"0.0.15","@amap/amap-jsapi-loader":"1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@rslib/core":"^0.22.0","@rsbuild/plugin-react":"^2.0.1"},"peerDependencies":{"react":">=19.2.4","react-dom":">=19.2.4","@types/react":"^19.2.15","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/react-amap_0.3.2_1781000848880_0.19079452206525072","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@1adybug/react-amap","version":"0.4.0","_id":"@1adybug/react-amap@0.4.0","maintainers":[{"name":"1adybug","email":"lurongv@qq.com"}],"dist":{"shasum":"c8ac44306934cc7b2b316072011ef5e080277211","tarball":"https://registry.npmjs.org/@1adybug/react-amap/-/react-amap-0.4.0.tgz","fileCount":42,"integrity":"sha512-fDC0rXOwIXBLCfzjgszkAAl5ZgcFdeGpTE0WTaeDCQ4QwyOR1lAzm4V+VVxGoZUhE31TMUvNMHev33905RQjQw==","signatures":[{"sig":"MEQCIA5YTxIudOKpK80N+pWvC3iBxx9qOCuOZ3xvi9b7WCRzAiB/P+VMGGkOs+Q/TJNDYGBzbWTTlVtdKW/ljrDWyJNF4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":413970},"main":"./dist/index.cjs","type":"module","_from":"file:1adybug-react-amap-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"rslib --watch","lint":"eslint . --ignore-pattern dist","build":"rslib build"},"_npmUser":{"name":"1adybug","email":"lurongv@qq.com"},"_resolved":"C:\\Users\\aorus\\AppData\\Local\\Temp\\e6fa77024727b5f00ad05862b0d61542\\1adybug-react-amap-0.4.0.tgz","_integrity":"sha512-fDC0rXOwIXBLCfzjgszkAAl5ZgcFdeGpTE0WTaeDCQ4QwyOR1lAzm4V+VVxGoZUhE31TMUvNMHev33905RQjQw==","_npmVersion":"11.12.1","description":"`@1adybug/react-amap` 是基于高德地图 JSAPI v2.0 的 React 19 声明式封装。它负责加载 JSAPI、创建地图实例，并把点标记、矢量图形、图层、控件、工具、服务等高德对象映射为 React 组件或 Hook。","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"stable-hash":"^0.0.6","@amap/amap-jsapi-types":"0.0.15","@amap/amap-jsapi-loader":"1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@rslib/core":"^0.22.0","@rsbuild/plugin-react":"^2.0.1"},"peerDependencies":{"react":">=19.2.4","react-dom":">=19.2.4","@types/react":"^19.2.15","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/react-amap_0.4.0_1781054904605_0.23104080804677607","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@1adybug/react-amap","version":"0.5.0","_id":"@1adybug/react-amap@0.5.0","maintainers":[{"name":"1adybug","email":"lurongv@qq.com"}],"dist":{"shasum":"0aacbf5582cc9c56c9d78d7ec47414eaddb150f7","tarball":"https://registry.npmjs.org/@1adybug/react-amap/-/react-amap-0.5.0.tgz","fileCount":42,"integrity":"sha512-tp7Gp8dzuV8tKZTBAU7pnrLmq2S7cGQz9uiVXd3ne+8b1eZksHiUI+sQcnDkUfbWG5hz98XGQZ/ILTNOxvenzg==","signatures":[{"sig":"MEQCIHq7Gzt93Ro9TxCRrUTf1KIZIC3iRDpTJhwqV4G/d7+NAiBHnWLWd1HGBb6/ckO7xBXzzNg/mBe+hrGyCInb+5MdkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":409689},"main":"./dist/index.cjs","type":"module","_from":"file:1adybug-react-amap-0.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"rslib --watch","lint":"eslint . --ignore-pattern dist","build":"rslib build"},"_npmUser":{"name":"1adybug","email":"lurongv@qq.com"},"_resolved":"C:\\Users\\aorus\\AppData\\Local\\Temp\\443e8b939811cfc865fae9a24654789b\\1adybug-react-amap-0.5.0.tgz","_integrity":"sha512-tp7Gp8dzuV8tKZTBAU7pnrLmq2S7cGQz9uiVXd3ne+8b1eZksHiUI+sQcnDkUfbWG5hz98XGQZ/ILTNOxvenzg==","_npmVersion":"11.12.1","description":"`@1adybug/react-amap` 是基于高德地图 JSAPI v2.0 的 React 19 声明式封装。它负责加载 JSAPI、创建地图实例，并把点标记、矢量图形、图层、控件、工具、服务等高德对象映射为 React 组件或 Hook。","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"stable-hash":"^0.0.6","@amap/amap-jsapi-types":"0.0.15","@amap/amap-jsapi-loader":"1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@rslib/core":"^0.22.0","@rsbuild/plugin-react":"^2.0.1"},"peerDependencies":{"react":">=19.2.4","react-dom":">=19.2.4","@types/react":"^19.2.15","@types/react-dom":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/react-amap_0.5.0_1781060102144_0.24191563353756984","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@1adybug/react-amap","version":"0.5.1","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"devDependencies":{"@rsbuild/plugin-react":"^2.0.1","@rslib/core":"^0.22.0","typescript":"^6.0.3"},"peerDependencies":{"@types/react":"^19.2.15","@types/react-dom":"^19.2.3","react":">=19.2.4","react-dom":">=19.2.4"},"dependencies":{"@amap/amap-jsapi-loader":"1.0.1","@amap/amap-jsapi-types":"0.0.15","stable-hash":"^0.0.6"},"scripts":{"build":"rslib build","dev":"rslib --watch","lint":"eslint . --ignore-pattern dist"},"_id":"@1adybug/react-amap@0.5.1","description":"`@1adybug/react-amap` 是基于高德地图 JSAPI v2.0 的 React 19 声明式封装。它负责加载 JSAPI、创建地图实例，并把点标记、矢量图形、图层、控件、工具、服务等高德对象映射为 React 组件或 Hook。","_integrity":"sha512-IvBsFjW1qSs6pEV3vbk6YaTtQEjNfeZ8CefgKbeLAVQrJUZOEzDlNyJv3gt0gyy8o8whTQzrlBNT/FZtsthwAQ==","_resolved":"C:\\Users\\aorus\\AppData\\Local\\Temp\\11fc23bfb8dc9e79c6d5dee3ded0b017\\1adybug-react-amap-0.5.1.tgz","_from":"file:1adybug-react-amap-0.5.1.tgz","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-IvBsFjW1qSs6pEV3vbk6YaTtQEjNfeZ8CefgKbeLAVQrJUZOEzDlNyJv3gt0gyy8o8whTQzrlBNT/FZtsthwAQ==","shasum":"5f0205ecec5f6ebe2fde16d3dffb6c422b2c088c","tarball":"https://registry.npmjs.org/@1adybug/react-amap/-/react-amap-0.5.1.tgz","fileCount":42,"unpackedSize":409713,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDMgbH6cimrFwCorsVFZan9UdL3vIF5qtR0ov+KgikHSgIge4Hb8nmkGSooWObZ1ET5EHdRzQ4xaBaCq7YnVEitkdM="}]},"_npmUser":{"name":"1adybug","email":"lurongv@qq.com"},"directories":{},"maintainers":[{"name":"1adybug","email":"lurongv@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-amap_0.5.1_1781060469344_0.694693479541155"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-08T10:57:42.427Z","modified":"2026-06-10T03:01:09.576Z","0.0.1":"2026-06-08T10:57:42.789Z","0.1.0":"2026-06-09T03:00:28.150Z","0.2.0":"2026-06-09T03:24:57.879Z","0.2.1":"2026-06-09T06:02:50.484Z","0.3.0":"2026-06-09T06:40:28.940Z","0.3.1":"2026-06-09T07:12:03.610Z","0.3.2":"2026-06-09T10:27:29.013Z","0.4.0":"2026-06-10T01:28:24.823Z","0.5.0":"2026-06-10T02:55:02.286Z","0.5.1":"2026-06-10T03:01:09.484Z"},"description":"`@1adybug/react-amap` 是基于高德地图 JSAPI v2.0 的 React 19 声明式封装。它负责加载 JSAPI、创建地图实例，并把点标记、矢量图形、图层、控件、工具、服务等高德对象映射为 React 组件或 Hook。","maintainers":[{"name":"1adybug","email":"lurongv@qq.com"}],"readme":"# @1adybug/react-amap\r\n\r\n`@1adybug/react-amap` 是基于高德地图 JSAPI v2.0 的 React 19 声明式封装。它负责加载 JSAPI、创建地图实例，并把点标记、矢量图形、图层、控件、工具、服务等高德对象映射为 React 组件或 Hook。\r\n\r\n组件的核心设计是：在组件挂载时创建对应的高德实例，在 props 变化时同步可更新参数，在组件卸载时自动移除或销毁实例。大部分组件既可以放在 `<Map>` 内通过上下文获取 `map` / `AMap`，也可以显式传入 `map` 与 `AMap`。\r\n\r\n## 安装\r\n\r\n```bash\r\npnpm add @1adybug/react-amap\r\n```\r\n\r\n这个包将 `react`、`react-dom` 与 `@types/react` 作为 peer dependencies，当前声明兼容 React 19。\r\n\r\n## 快速开始\r\n\r\n高德地图 JSAPI v2.0 需要安全密钥配置。推荐在生产环境使用 `serviceHost` 代理，避免在前端暴露 `securityJsCode`。\r\n\r\n```tsx\r\nimport { type FC, useState } from \"react\"\r\n\r\nimport {\r\n    Map,\r\n    MapMarkerAnchor,\r\n    MapPlugin,\r\n    MapStatus,\r\n    Marker,\r\n    Scale,\r\n    ToolBar,\r\n} from \"@1adybug/react-amap\"\r\n\r\nconst App: FC = () => {\r\n    const [status, setStatus] = useState(MapStatus.Idle)\r\n\r\n    return (\r\n        <div className=\"h-screen w-screen\">\r\n            <Map\r\n                apiKey={import.meta.env.VITE_AMAP_KEY}\r\n                securityConfig={{\r\n                    securityJsCode: import.meta.env.VITE_AMAP_SECURITY_JS_CODE,\r\n                }}\r\n                center={[116.397428, 39.90923]}\r\n                zoom={12}\r\n                plugins={[MapPlugin.Scale, MapPlugin.ToolBar]}\r\n                onStatusChange={setStatus}\r\n                onMapClick={event => console.log(\"map click\", event)}\r\n            >\r\n                <Scale />\r\n                <ToolBar position=\"RT\" />\r\n                <Marker\r\n                    position={[116.397428, 39.90923]}\r\n                    title=\"天安门\"\r\n                    anchor={MapMarkerAnchor.底部居中}\r\n                    onClick={event => console.log(\"marker click\", event)}\r\n                />\r\n            </Map>\r\n            <span hidden={status === MapStatus.Loaded}>地图加载中</span>\r\n        </div>\r\n    )\r\n}\r\n\r\nexport default App\r\n```\r\n\r\n## 通用规则\r\n\r\n### 安全密钥\r\n\r\n`Map` 在加载 JSAPI 前会合并 `window._AMapSecurityConfig` 与 `securityConfig`。如果既没有 `securityJsCode`，也没有 `serviceHost`，组件会进入 `MapStatus.Error` 并通过 `onMapError` 抛出错误。\r\n\r\n```tsx\r\n<Map\r\n    apiKey={apiKey}\r\n    securityConfig={{\r\n        securityJsCode,\r\n        serviceHost: \"https://example.com/_AMapService\",\r\n    }}\r\n/>\r\n```\r\n\r\n### 容器尺寸\r\n\r\n`Map` 的根容器默认是 `position: relative; width: 100%; height: 100%`。外层容器必须有明确宽高，否则地图可能不可见。\r\n\r\n```tsx\r\n<div className=\"h-screen w-screen\">\r\n    <Map apiKey={apiKey} securityConfig={{ securityJsCode }} />\r\n</div>\r\n```\r\n\r\n### 参数传递\r\n\r\n组件配置参数直接作为顶层 props 传入，例如 `<Marker position={...} visible />`。组件不再提供 `xxxOptions` 形式的额外配置容器。\r\n\r\n### 事件\r\n\r\n组件支持两种事件写法：\r\n\r\n```tsx\r\n<Marker\r\n    onClick={event => console.log(event)}\r\n    events={{\r\n        dragend: event => console.log(event),\r\n    }}\r\n/>\r\n```\r\n\r\n覆盖物、图层、控件、工具和服务通用快捷事件包括：\r\n\r\n`onClick`、`onDblClick`、`onRightClick`、`onMouseDown`、`onMouseUp`、`onMouseMove`、`onMouseOver`、`onMouseOut`、`onTouchStart`、`onTouchMove`、`onTouchEnd`、`onDragStart`、`onDragging`、`onDragEnd`、`onMoving`、`onMoveEnd`、`onZoomStart`、`onZoomChange`、`onZoomEnd`、`onRotateStart`、`onRotateChange`、`onRotateEnd`、`onComplete`、`onOpen`、`onClose`、`onChange`、`onEnd`。\r\n\r\n`Map` 的地图事件使用 `onMap` 前缀，例如 `onMapClick`、`onMapMoveEnd`、`onMapZoomChange`。也可以使用 `events={{ click: ... }}` 绑定原始高德事件名。\r\n\r\n### 生命周期\r\n\r\n多数实例组件支持：\r\n\r\n- `ref`：获取底层高德实例，卸载后会置为 `null`。\r\n- `onLoad(instance)`：实例创建完成后触发。\r\n- `onDestroy(instance)`：实例销毁或移除前触发。\r\n\r\n```tsx\r\nconst markerRef = useRef<MapMarkerInstance | null>(null)\r\n\r\n<Marker\r\n    ref={markerRef}\r\n    position={[116.39, 39.9]}\r\n    onLoad={marker => marker.setTitle?.(\"已创建\")}\r\n/>\r\n```\r\n\r\n### 插件加载\r\n\r\n`Map` 的 `plugins` 可预加载插件。需要插件的组件也会在创建前尝试按需加载对应插件。\r\n\r\n```tsx\r\n<Map\r\n    apiKey={apiKey}\r\n    securityConfig={{ securityJsCode }}\r\n    plugins={[MapPlugin.Scale, MapPlugin.MouseTool, MapPlugin.Geocoder]}\r\n/>\r\n```\r\n\r\n## Map\r\n\r\n`Map` 是地图根组件，负责加载 JSAPI、配置安全策略、创建 `AMap.Map`，并通过 `MapContext` 向子组件提供 `map` 与 `AMap`。\r\n\r\n常用 props：\r\n\r\n| prop | 说明 |\r\n| --- | --- |\r\n| `apiKey` | 高德 Web 端开发者 Key，必填 |\r\n| `securityConfig` | `{ securityJsCode?: string; serviceHost?: string }` |\r\n| `version` | JSAPI 版本，默认 `\"2.0\"` |\r\n| `plugins` | 预加载插件列表，使用 `MapPlugin` |\r\n| `loaderUrl` | Loader 脚本地址，默认高德官方 `loader.js` |\r\n| `loaderOptions` | 传给 Loader 的额外配置，不允许覆盖 `key`、`version`、`plugins`、`serviceHost` |\r\n| `loaderTimeout` | 自定义 Loader 脚本加载超时，默认 `15000` ms |\r\n| `appName` | 写入 `AMap.getConfig().appname`，默认 `\"react-amap\"` |\r\n| `events` | 地图原始事件映射 |\r\n| `onMapLoad` | 地图创建完成回调，参数为 `(map, AMap)` |\r\n| `onMapError` | 地图加载失败回调 |\r\n| `onDestroy` | 地图销毁前回调 |\r\n| `onStatusChange` | 加载状态变化回调 |\r\n\r\n地图参数可以直接作为顶层 props 传入：\r\n\r\n```tsx\r\n<Map\r\n    apiKey={apiKey}\r\n    securityConfig={{ securityJsCode }}\r\n    center={[116.39, 39.9]}\r\n    zoom={11}\r\n    rotation={0}\r\n    pitch={45}\r\n    viewMode=\"3D\"\r\n    mapStyle=\"amap://styles/normal\"\r\n    dragEnable\r\n    scrollWheel\r\n/>\r\n```\r\n\r\n以下运行时参数变化后会同步到地图实例：`center`、`zoom`、`rotation`、`pitch`、`features`、`layers`、`zooms`、`dragEnable`、`zoomEnable`、`jogEnable`、`pitchEnable`、`rotateEnable`、`animateEnable`、`keyboardEnable`、`doubleClickZoom`、`scrollWheel`、`touchZoom`、`touchZoomCenter`、`defaultCursor`、`mapStyle`。\r\n\r\n以下初始化参数变化会重建地图：`apiKey`、`version`、`plugins`、`loaderUrl`、`loaderOptions`、`loaderTimeout`、`securityConfig`、`viewMode`、`showLabel`、`isHotspot`、`showBuildingBlock`、`showIndoorMap`、`skyColor`、`WebGLParams`。\r\n\r\n## Marker\r\n\r\n`Marker` 创建 `AMap.Marker`。适合少量可交互点标记，并支持 React 子节点作为自定义内容。\r\n\r\n常用 props：\r\n\r\n| prop | 说明 |\r\n| --- | --- |\r\n| `position` | 标记坐标 |\r\n| `icon` | 图片地址或 `AMap.Icon` |\r\n| `content` | 字符串或 `HTMLElement` 内容 |\r\n| `children` | React 自定义内容，会通过 portal 渲染到 Marker 内容容器 |\r\n| `contentClassName` / `contentStyle` | React 自定义内容容器样式 |\r\n| `title` | 鼠标悬停文字 |\r\n| `visible` | 是否可见 |\r\n| `zIndex` | 叠加层级 |\r\n| `offset` | 偏移量 |\r\n| `anchor` | 锚点，可用 `MapMarkerAnchor` |\r\n| `angle` | 旋转角度 |\r\n| `clickable` / `draggable` | 是否可点击 / 拖拽 |\r\n| `label` | 文本标注，`direction` 可用 `MapMarkerLabelDirection` |\r\n\r\n```tsx\r\n<Marker\r\n    position={[116.397428, 39.90923]}\r\n    title=\"天安门\"\r\n    label={{\r\n        content: \"天安门\",\r\n        direction: \"top\",\r\n        offset: [0, -6],\r\n    }}\r\n    draggable\r\n    onDragEnd={event => console.log(event)}\r\n/>\r\n```\r\n\r\n自定义内容：\r\n\r\n```tsx\r\n<Marker position={[116.397428, 39.90923]} contentClassName=\"rounded bg-white px-2 py-1 shadow\">\r\n    <span>自定义 Marker</span>\r\n</Marker>\r\n```\r\n\r\n## Point 组件\r\n\r\n### Text\r\n\r\n`Text` 创建 `AMap.Text` 文本标记。\r\n\r\n```tsx\r\n<Text\r\n    position={[116.397428, 39.90923]}\r\n    text=\"文本标记\"\r\n    anchor={MapMarkerAnchor.底部居中}\r\n    style={{\r\n        color: \"#1677ff\",\r\n        backgroundColor: \"#fff\",\r\n        border: \"1px solid #1677ff\",\r\n        padding: \"4px 8px\",\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`position`、`text`、`title`、`zIndex`、`offset`、`anchor`、`angle`、`clickable`、`draggable`、`bubble`、`zooms`、`cursor`、`topWhenClick`、`style`、`visible`。\r\n\r\n### ElasticMarker\r\n\r\n`ElasticMarker` 创建 `AMap.ElasticMarker`，用于不同缩放级别下自动切换样式的灵活点标记。组件会按需加载 `MapPlugin.ElasticMarker`。\r\n\r\n```tsx\r\n<ElasticMarker\r\n    position={[116.397428, 39.90923]}\r\n    zoomStyleMapping={{\r\n        10: 0,\r\n        14: 1,\r\n    }}\r\n    styles={[\r\n        {\r\n            icon: {\r\n                img: \"/marker-small.png\",\r\n                size: [24, 24],\r\n            },\r\n        },\r\n        {\r\n            icon: {\r\n                img: \"/marker-large.png\",\r\n                size: [40, 40],\r\n            },\r\n            label: {\r\n                content: \"重点点位\",\r\n                position: MapElasticMarkerLabelPosition.顶部居中,\r\n            },\r\n        },\r\n    ]}\r\n/>\r\n```\r\n\r\n常用 props：`position`、`zIndex`、`offset`、`clickable`、`draggable`、`bubble`、`cursor`、`topWhenClick`、`zoomStyleMapping`、`styles`、`visible`。\r\n\r\n### LabelsLayer 与 LabelMarker\r\n\r\n`LabelsLayer` 创建 `AMap.LabelsLayer`，`LabelMarker` 创建 `AMap.LabelMarker`。`LabelMarker` 必须添加到标注图层中；放在 `LabelsLayer` 内时会自动读取上下文。\r\n\r\n```tsx\r\n<LabelsLayer collision allowCollision={false} zIndex={120}>\r\n    <LabelMarker\r\n        name=\"poi-1\"\r\n        position={[116.397428, 39.90923]}\r\n        icon={{\r\n            image: \"/poi.png\",\r\n            size: [24, 24],\r\n            anchor: \"bottom-center\",\r\n        }}\r\n        text={{\r\n            content: \"POI\",\r\n            direction: \"right\",\r\n            style: {\r\n                fontSize: 12,\r\n                fillColor: \"#111\",\r\n                backgroundColor: \"#fff\",\r\n            },\r\n        }}\r\n    />\r\n</LabelsLayer>\r\n```\r\n\r\n`LabelsLayer` 常用 props：`zooms`、`zIndex`、`visible`、`collision`、`allowCollision`、`animation`。\r\n\r\n`LabelMarker` 常用 props：`name`、`position`、`zooms`、`opacity`、`rank`、`zIndex`、`visible`、`extData`、`icon`、`text`。\r\n\r\n### MassMarks\r\n\r\n`MassMarks` 创建 `AMap.MassMarks`，适合海量点展示。\r\n\r\n```tsx\r\n<MassMarks\r\n    data={[\r\n        { lnglat: [116.39, 39.9], name: \"点位 1\" },\r\n        { lnglat: [116.4, 39.91], style: 1, name: \"点位 2\" },\r\n    ]}\r\n    style={[\r\n        {\r\n            url: \"/mass-1.png\",\r\n            size: [16, 16],\r\n            anchor: [8, 8],\r\n        },\r\n        {\r\n            url: \"/mass-2.png\",\r\n            size: [20, 20],\r\n            anchor: [10, 10],\r\n        },\r\n    ]}\r\n    opacity={0.9}\r\n/>\r\n```\r\n\r\n常用 props：`data`、`style`、`opacity`、`zIndex`、`zooms`、`cursor`、`visible`。\r\n\r\n### MarkerCluster\r\n\r\n`MarkerCluster` 创建 `AMap.MarkerCluster`，组件会按需加载 `MapPlugin.MarkerCluster`。\r\n\r\n```tsx\r\n<MarkerCluster\r\n    data={[\r\n        { lnglat: [116.39, 39.9], weight: 1 },\r\n        { lnglat: [116.4, 39.91], weight: 2 },\r\n    ]}\r\n    gridSize={80}\r\n    maxZoom={16}\r\n    averageCenter\r\n/>\r\n```\r\n\r\n常用 props：`data`、`gridSize`、`maxZoom`、`averageCenter`、`clusterByZoomChange`、`styles`、`renderClusterMarker`、`renderMarker`。\r\n\r\n## 矢量覆盖物\r\n\r\n矢量组件会创建对应的 `AMap.Polygon`、`AMap.Polyline` 等实例并添加到地图。\r\n\r\n通用样式 props：`visible`、`zIndex`、`bubble`、`cursor`、`strokeColor`、`strokeOpacity`、`strokeWeight`、`strokeStyle`、`strokeDasharray`、`draggable`、`extData`。\r\n\r\n面状组件还支持：`fillColor`、`fillOpacity`。\r\n\r\n线状组件还支持：`isOutline`、`outlineColor`、`borderWeight`、`lineJoin`、`lineCap`、`geodesic`、`showDir`、`animate`、`speed`。\r\n\r\n### Polygon\r\n\r\n```tsx\r\n<Polygon\r\n    path={[\r\n        [116.39, 39.9],\r\n        [116.41, 39.9],\r\n        [116.41, 39.92],\r\n        [116.39, 39.92],\r\n    ]}\r\n    fillColor=\"#1677ff\"\r\n    fillOpacity={0.25}\r\n    strokeColor=\"#1677ff\"\r\n    extrusionHeight={200}\r\n/>\r\n```\r\n\r\n常用 props：`path`、`extrusionHeight`、`wallColor`、`roofColor`。\r\n\r\n### Polyline\r\n\r\n```tsx\r\n<Polyline\r\n    path={[\r\n        [116.39, 39.9],\r\n        [116.4, 39.91],\r\n        [116.42, 39.92],\r\n    ]}\r\n    strokeColor=\"#52c41a\"\r\n    strokeWeight={6}\r\n    showDir\r\n/>\r\n```\r\n\r\n常用 props：`path`。\r\n\r\n### BezierCurve 与 BesizerCurve\r\n\r\n`BezierCurve` 创建 `AMap.BezierCurve`。`BesizerCurve` 是兼容拼写别名，功能相同。\r\n\r\n```tsx\r\n<BezierCurve\r\n    path={[\r\n        [116.39, 39.9],\r\n        [116.4, 39.95, 116.42, 39.92],\r\n    ]}\r\n    strokeColor=\"#fa8c16\"\r\n    strokeWeight={4}\r\n/>\r\n```\r\n\r\n常用 props：`path`。\r\n\r\n### Circle\r\n\r\n```tsx\r\n<Circle\r\n    center={[116.397428, 39.90923]}\r\n    radius={1000}\r\n    fillColor=\"#1677ff\"\r\n    fillOpacity={0.2}\r\n    strokeColor=\"#1677ff\"\r\n/>\r\n```\r\n\r\n常用 props：`center`、`radius`。\n\r\n### CircleMarker\r\n\r\n```tsx\r\n<CircleMarker center={[116.397428, 39.90923]} radius={8} fillColor=\"#f5222d\" />\r\n```\r\n\r\n`CircleMarker` 的 `radius` 单位是像素。常用 props：`center`、`radius`。\r\n\r\n### Ellipse\r\n\r\n```tsx\r\n<Ellipse\r\n    center={[116.397428, 39.90923]}\r\n    radius={[1200, 600]}\r\n    fillColor=\"#722ed1\"\r\n    fillOpacity={0.2}\r\n/>\r\n```\r\n\r\n常用 props：`center`、`radius`。\r\n\r\n### Rectangle\r\n\r\n```tsx\r\n<Rectangle bounds={bounds} fillColor=\"#13c2c2\" fillOpacity={0.2} />\r\n```\r\n\r\n`bounds` 可传入高德 `Bounds` 实例或 JSAPI 支持的 bounds-like 数据。常用 props：`bounds`。\r\n\r\n### GeoJSON\r\n\r\n```tsx\r\n<GeoJSON\r\n    geoJSON={geoJSON}\r\n    getMarker={(feature, lnglat) => new AMap.Marker({ position: lnglat })}\r\n    getPolyline={(feature, path) => new AMap.Polyline({ path })}\r\n    getPolygon={(feature, path) => new AMap.Polygon({ path })}\r\n/>\r\n```\r\n\r\n常用 props：`geoJSON`、`getMarker`、`getPolyline`、`getPolygon`。\r\n\r\n## 图层\r\n\r\n图层组件通用 props：`visible`、`opacity`、`zIndex`、`zooms`、`events`、`onLoad`、`onDestroy`。\r\n\r\n### 基础瓦片图层\r\n\r\n```tsx\r\n<TileLayer opacity={0.8} />\r\n<TrafficLayer autoRefresh interval={180} />\r\n<SatelliteLayer />\r\n<RoadNetLayer />\r\n```\r\n\r\n`TileLayer`、`SatelliteLayer`、`RoadNetLayer` 常用 props：`tileUrl`、`dataZooms`、`tileSize`。\r\n\r\n`TrafficLayer` 额外支持：`autoRefresh`、`interval`。\r\n\r\n### WMSLayer 与 WMTSLayer\r\n\r\n```tsx\r\n<WMSLayer\r\n    url=\"https://example.com/wms\"\r\n    params={{\r\n        layers: \"demo\",\r\n        format: \"image/png\",\r\n        transparent: true,\r\n    }}\r\n/>\r\n\r\n<WMTSLayer\r\n    url=\"https://example.com/wmts\"\r\n    params={{\r\n        layer: \"demo\",\r\n        tileMatrixSet: \"c\",\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`url`、`params`、`tileSize`、`zooms`、`opacity`。\r\n\r\n### MapboxVectorTileLayer\r\n\r\n```tsx\r\n<MapboxVectorTileLayer\r\n    url=\"https://example.com/{z}/{x}/{y}.mvt\"\r\n    styles={{\r\n        polygon: { fillColor: \"#1677ff\" },\r\n        line: { strokeColor: \"#52c41a\" },\r\n        point: { radius: 4 },\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`url`、`styles`。\r\n\r\n### BuildingsLayer\r\n\r\n```tsx\r\n<BuildingsLayer\r\n    wallColor=\"#d9d9d9\"\r\n    roofColor=\"#ffffff\"\r\n    heightFactor={1}\r\n    styleOpts={{\r\n        hideWithoutStyle: false,\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`wallColor`、`roofColor`、`heightFactor`、`styleOpts`。\r\n\r\n### DistrictLayer 系列\r\n\r\n```tsx\r\n<DistrictLayerProvince\r\n    adcode=\"110000\"\r\n    depth={1}\r\n    styles={{\r\n        fill: \"#1677ff22\",\r\n        stroke: \"#1677ff\",\r\n    }}\r\n/>\r\n```\r\n\r\n导出组件：`DistrictLayer`、`DistrictLayerWorld`、`DistrictLayerCountry`、`DistrictLayerProvince`。\r\n\r\n常用 props：`adcode`、`SOC`、`depth`、`styles`。\r\n\r\n### IndoorMap\r\n\r\n```tsx\r\n<IndoorMap\r\n    indoorid=\"B000A8VT15\"\r\n    floor={1}\r\n    floorBarVisible\r\n    labelsVisible\r\n/>\r\n```\r\n\r\n常用 props：`cursor`、`hideFloorBar`、`indoorid`、`floor`、`shopid`、`floorBarVisible`、`labelsVisible`。\r\n\r\n### FlexibleLayer\r\n\r\n```tsx\r\n<FlexibleLayer\r\n    cacheSize={128}\r\n    createTile={(x, y, z, success, fail) => {\r\n        const image = new Image()\r\n        image.onload = () => success(image)\r\n        image.onerror = fail\r\n        image.src = `https://example.com/tiles/${z}/${x}/${y}.png`\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`cacheSize`、`createTile`、`tileSize`、`dataZooms`。\r\n\r\n### ImageLayer\r\n\r\n```tsx\r\n<ImageLayer url=\"/overlay.png\" bounds={bounds} opacity={0.7} />\r\n```\r\n\r\n常用 props：`url`、`bounds`。\r\n\r\n### CanvasLayer\r\n\r\n```tsx\r\n<CanvasLayer canvas={canvasElement} bounds={bounds} />\r\n```\r\n\r\n常用 props：`canvas`、`bounds`。\r\n\r\n### CustomLayer 与 GLCustomLayer\r\n\r\n```tsx\r\n<CustomLayer\r\n    canvas={canvasElement}\r\n    render={() => {\r\n        const context = canvasElement.getContext(\"2d\")\r\n        context?.clearRect(0, 0, canvasElement.width, canvasElement.height)\r\n    }}\r\n/>\r\n\r\n<GLCustomLayer zIndex={30} />\r\n```\r\n\r\n`CustomLayer` 常用 props：`canvas`、`render`。`GLCustomLayer` 透传 JSAPI 支持的自定义图层参数。\r\n\r\n### VectorLayer\r\n\r\n`VectorLayer` 创建 `AMap.VectorLayer`，用于承载矢量覆盖物。\r\n\r\n```tsx\r\n<VectorLayer zIndex={20}>\r\n    <Polygon path={path} strokeColor=\"#1677ff\" fillColor=\"#1677ff\" fillOpacity={0.2} />\r\n</VectorLayer>\r\n```\r\n\r\n### HeatMap\r\n\r\n`HeatMap` 创建 `AMap.HeatMap`，组件会按需加载 `MapPlugin.HeatMap`。\r\n\r\n```tsx\r\n<HeatMap\r\n    radius={25}\r\n    gradient={{\r\n        0.4: \"blue\",\r\n        0.65: \"lime\",\r\n        1: \"red\",\r\n    }}\r\n    dataSet={{\r\n        max: 100,\r\n        data: [\r\n            { lng: 116.39, lat: 39.9, count: 80 },\r\n            { lng: 116.4, lat: 39.91, count: 40 },\r\n        ],\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`dataSet`、`radius`、`gradient`。\r\n\r\n## 控件\r\n\r\n控件组件会创建对应插件并调用 `map.addControl`。通用 props：`position`、`offset`、`visible`、`events`、`onLoad`、`onDestroy`。\r\n\r\n`position` 可使用 `ControlPosition`：\r\n\r\n```tsx\r\n<Scale position={ControlPosition.左下角} />\r\n<ToolBar position={ControlPosition.右上角} />\r\n<ControlBar position=\"RT\" showControlButton />\r\n<MapType position=\"RT\" defaultType={MapTypeDefaultType.卫星图} showTraffic showRoad />\r\n<HawkEye position=\"RB\" opened width=\"180px\" height=\"120px\" />\r\n```\r\n\r\n组件说明：\r\n\r\n- `Scale`：比例尺控件，需要 `MapPlugin.Scale`。\r\n- `ToolBar`：缩放工具条，需要 `MapPlugin.ToolBar`。\r\n- `ControlBar`：3D 旋转 / 俯仰组合控件，需要 `MapPlugin.ControlBar`。\r\n- `MapType`：图层切换控件，需要 `MapPlugin.MapType`，支持 `defaultType`、`showTraffic`、`showRoad`。\r\n- `HawkEye`：鹰眼控件，需要 `MapPlugin.HawkEye`，支持 `autoMove`、`showRectangle`、`showButton`、`opened`、`mapStyle`、`layers`、`width`、`height`。\r\n\r\n## 信息窗体与右键菜单\r\n\r\n### InfoWindow\r\n\r\n`InfoWindow` 创建 `AMap.InfoWindow`。默认 `active=true`，当传入 `position` 时会自动打开；`active=false` 时关闭。\r\n\r\n```tsx\r\n<InfoWindow position={[116.397428, 39.90923]} offset={[0, -24]}>\r\n    <div className=\"rounded bg-white p-2 shadow\">信息窗体内容</div>\r\n</InfoWindow>\r\n```\r\n\r\n常用 props：`active`、`height`、`position`、`content`、`children`、`contentClassName`、`contentStyle`、`isCustom`、`autoMove`、`avoid`、`closeWhenClickMap`、`size`、`anchor`、`offset`、`extData`。\r\n\r\n### ContextMenu\r\n\r\n`ContextMenu` 创建 `AMap.ContextMenu`。默认 `active=false`，当 `active=true` 且有 `position` 时打开。\r\n\r\n```tsx\r\n<ContextMenu\r\n    active={menuOpen}\r\n    position={menuPosition}\r\n    items={[\r\n        {\r\n            text: \"放大一级\",\r\n            onClick: () => mapRef.current?.zoomIn?.(),\r\n        },\r\n        {\r\n            text: \"缩小一级\",\r\n            onClick: () => mapRef.current?.zoomOut?.(),\r\n        },\r\n    ]}\r\n/>\r\n```\r\n\r\n常用 props：`active`、`position`、`content`、`children`、`contentClassName`、`contentStyle`、`items`。\r\n\r\n## 群组\r\n\r\n### OverlayGroup\r\n\r\n`OverlayGroup` 创建 `AMap.OverlayGroup`，用于统一管理覆盖物。\r\n\r\n```tsx\r\n<OverlayGroup visible opacity={0.8}>\r\n    <Marker position={[116.397428, 39.90923]} title=\"天安门\" />\r\n    <Circle center={[116.397428, 39.90923]} radius={500} />\r\n</OverlayGroup>\r\n```\r\n\r\n常用 props：`children`、`visible`、`opacity`、`zIndex`、`zooms`。\r\n\r\n### LayerGroup\r\n\r\n`LayerGroup` 创建 `AMap.LayerGroup`，用于统一管理图层。\r\n\r\n```tsx\r\n<LayerGroup visible>\r\n    <SatelliteLayer />\r\n    <RoadNetLayer />\r\n</LayerGroup>\r\n```\r\n\r\n常用 props：`children`、`visible`、`opacity`、`zIndex`、`zooms`。\r\n\r\n## MouseTool\r\n\r\n`MouseTool` 创建 `AMap.MouseTool`，组件会按需加载 `MapPlugin.MouseTool`。通过 `mode` 指定绘制或量测模式，通过 `active` 控制是否开启。\r\n\r\n```tsx\r\n<MouseTool\r\n    mode={MapMouseToolMode.Polygon}\r\n    active={drawing}\r\n    polygonOptions={{\r\n        fillColor: \"#1677ff\",\r\n        fillOpacity: 0.2,\r\n        strokeColor: \"#1677ff\",\r\n    }}\r\n    clearOnModeChange\r\n    onDraw={event => console.log(\"绘制完成\", event)}\r\n/>\r\n```\r\n\r\n可用模式：\r\n\r\n- `MapMouseToolMode.Marker`：绘制点标记。\r\n- `MapMouseToolMode.Circle`：绘制圆。\r\n- `MapMouseToolMode.Rectangle`：绘制矩形。\r\n- `MapMouseToolMode.Polyline`：绘制折线。\r\n- `MapMouseToolMode.Polygon`：绘制多边形。\r\n- `MapMouseToolMode.MeasureArea`：面积量测。\r\n- `MapMouseToolMode.Rule`：距离量测。\r\n- `MapMouseToolMode.RectZoomIn`：拉框放大。\r\n- `MapMouseToolMode.RectZoomOut`：拉框缩小。\r\n\r\n常用 props：`mode`、`active`、`options`、`markerOptions`、`circleOptions`、`rectangleOptions`、`polylineOptions`、`polygonOptions`、`measureAreaOptions`、`ruleOptions`、`rectZoomInOptions`、`rectZoomOutOptions`、`clearOnClose`、`clearOnModeChange`、`onDraw`。\n\r\n## RangingTool\r\n\r\n`RangingTool` 创建 `AMap.RangingTool`，组件会按需加载 `MapPlugin.RangingTool`。\r\n\r\n```tsx\r\n<RangingTool\r\n    active={measuring}\r\n    removeOverlaysOnTurnOff\r\n    lineOptions={{\r\n        strokeColor: \"#1677ff\",\r\n        strokeWeight: 4,\r\n    }}\r\n    endLabelText=\"总距离\"\r\n/>\r\n```\r\n\r\n常用 props：`active`、`removeOverlaysOnTurnOff`、`startMarkerOptions`、`midMarkerOptions`、`endMarkerOptions`、`lineOptions`、`tmpLineOptions`、`startLabelText`、`midLabelText`、`endLabelText`、`startLabelOffset`、`midLabelOffset`、`endLabelOffset`。\r\n\r\n## 矢量编辑器\r\n\r\n编辑器组件会按需加载对应插件，创建编辑器实例，并通过 `target` 指定要编辑的矢量覆盖物。`active` 默认 `true`，为 `false` 时关闭编辑。\r\n\r\n基础示例：\r\n\r\n```tsx\r\nconst [polygon, setPolygon] = useState<MapPolygonInstance | null>(null)\r\n\r\n<Polygon\r\n    ref={setPolygon}\r\n    path={[\r\n        [116.39, 39.9],\r\n        [116.41, 39.9],\r\n        [116.41, 39.92],\r\n    ]}\r\n/>\r\n<PolygonEditor\r\n    target={polygon}\r\n    active={editing}\r\n    onEnd={() => console.log(\"编辑结束\")}\r\n/>\r\n```\r\n\r\n通用 props：`target`、`active`、`createOptions`、`editOptions`、`events`、`onLoad`、`onDestroy`。\r\n\r\n组件说明：\r\n\r\n- `PolygonEditor`：编辑 `Polygon`，支持 `controlPoint`、`midControlPoint`，实例额外支持吸附多边形相关方法。\r\n- `PolylineEditor`：编辑 `Polyline`，支持 `controlPoint`、`midControlPoint`。\r\n- `PolyEditor`：通用多边形 / 折线编辑器，`target` 可为 `Polygon` 或 `Polyline`。\r\n- `CircleEditor`：编辑 `Circle`，支持 `movePoint`、`resizePoint`。\r\n- `BezierCurveEditor`：编辑 `BezierCurve`，支持 `controlPoint`、`midControlPoint`、`bezierControlPoint`、`bezierControlLine`。\r\n- `EllipseEditor`：编辑 `Ellipse`，支持 `movePoint`、`resizeXPoint`、`resizeYPoint`。\r\n- `RectangleEditor`：编辑 `Rectangle`，支持 `southWestPoint`、`northEastPoint`。\r\n\r\n## 服务组件与 Hook\r\n\r\n服务组件不会渲染 DOM，也不会直接显示内容。它们负责加载 JSAPI 服务插件、创建服务实例，并通过 `ref`、`onLoad` 或对应 Hook 暴露实例。\r\n\r\n服务通用 props：\r\n\r\n| prop | 说明 |\r\n| --- | --- |\r\n| `map` / `AMap` | 显式传入地图实例与命名空间，不传时读取 `MapContext` |\r\n| `enabled` | 是否创建服务，默认 `true` |\r\n| `events` | 服务事件映射 |\r\n| `ref` | 服务实例 ref |\r\n| `onLoad` / `onDestroy` | 创建完成 / 销毁前回调 |\r\n\r\n服务组件和 Hook 一一对应：\r\n\r\n| 组件 | Hook | 插件 | 常用实例方法 |\r\n| --- | --- | --- | --- |\r\n| `Geocoder` | `useGeocoder` | `MapPlugin.Geocoder` | `getLocation`、`getAddress`、`setCity` |\r\n| `AutoComplete` | `useAutoComplete` | `MapPlugin.AutoComplete` | `search`、`setType`、`setCity`、`setCityLimit` |\r\n| `PlaceSearch` | `usePlaceSearch` | `MapPlugin.PlaceSearch` | `search`、`searchInBounds`、`searchNearBy`、`getDetails` |\r\n| `CloudDataSearch` | `useCloudDataSearch` | `MapPlugin.CloudDataSearch` | `searchNearBy`、`searchById`、`searchByDistrict`、`searchInPolygon` |\r\n| `Driving` | `useDriving` | `MapPlugin.Driving` | `search`、`setPolicy`、`setAvoidPolygons` |\r\n| `TruckDriving` | `useTruckDriving` | `MapPlugin.TruckDriving` | `search`、`setPolicy`、`setProvinceAndNumber` |\r\n| `Walking` | `useWalking` | `MapPlugin.Walking` | `search` |\r\n| `Transfer` | `useTransfer` | `MapPlugin.Transfer` | `search`、`leaveAt`、`setCity`、`setCityd` |\r\n| `Riding` | `useRiding` | `MapPlugin.Riding` | `search` |\r\n| `DragRoute` | `useDragRoute` | `MapPlugin.DragRoute` | `search`、`getWays`、`getRoute` |\r\n| `DragRouteTruck` | `useDragRouteTruck` | `MapPlugin.DragRouteTruck` | `search`、`updatePath`、`getWays`、`getRoute` |\r\n| `GraspRoad` | `useGraspRoad` | `MapPlugin.GraspRoad` | `driving` |\r\n| `DistrictSearch` | `useDistrictSearch` | `MapPlugin.DistrictSearch` | `search`、`setLevel`、`setSubdistrict` |\r\n| `Weather` | `useWeather` | `MapPlugin.Weather` | `getLive`、`getForecast` |\r\n| `StationSearch` | `useStationSearch` | `MapPlugin.StationSearch` | `search`、`setCity`、`setPageIndex`、`setPageSize` |\r\n| `LineSearch` | `useLineSearch` | `MapPlugin.LineSearch` | `search`、`setCity`、`setPageIndex`、`setPageSize` |\r\n| `Geolocation` | `useGeolocation` | `MapPlugin.Geolocation` | `getCurrentPosition`、`getCityInfo`、`addTo`、`removeFrom` |\r\n| `CitySearch` | `useCitySearch` | `MapPlugin.CitySearch` | `getLocalCity`、`getCityByIp` |\r\n\r\n### Geocoder\r\n\r\n```tsx\r\n<Geocoder\r\n    city=\"北京\"\r\n    extensions={MapServiceExtensions.详细信息}\r\n    onLoad={geocoder => {\r\n        geocoder.getLocation?.(\"北京市朝阳区\", (status, result) => {\r\n            console.log(status, result)\r\n        })\r\n    }}\r\n/>\r\n```\r\n\r\nHook 写法：\r\n\r\n```tsx\r\nconst geocoder = useGeocoder({\r\n    city: \"北京\",\r\n})\r\n\r\nfunction onSearchAddress() {\r\n    geocoder?.getLocation?.(\"北京市朝阳区\", (status, result) => {\r\n        console.log(status, result)\r\n    })\r\n}\r\n```\r\n\r\n常用 props：`city`、`radius`、`lang`、`batch`、`extensions`。\r\n\r\n### AutoComplete\r\n\r\n```tsx\r\n<AutoComplete\r\n    input=\"keyword\"\r\n    city=\"北京\"\r\n    datatype={MapAutoCompleteDataType.POI}\r\n    citylimit\r\n    onLoad={autoComplete => {\r\n        autoComplete.search?.(\"咖啡\", (status, result) => console.log(status, result))\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`type`、`city`、`datatype`、`citylimit`、`input`、`output`、`outPutDirAuto`、`closeResultOnScroll`、`lang`。\r\n\r\n### PlaceSearch\r\n\r\n```tsx\r\n<PlaceSearch\r\n    city=\"北京\"\r\n    type=\"餐饮服务\"\r\n    pageSize={10}\r\n    autoFitView\r\n    onLoad={placeSearch => {\r\n        placeSearch.search?.(\"咖啡\", (status, result) => console.log(status, result))\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`city`、`type`、`pageSize`、`pageIndex`、`extensions`、`panel`、`citylimit`、`autoFitView`。\r\n\r\n当传入 `map` 或放在 `Map` 内时，`PlaceSearch` 会把当前地图写入构造参数，除非你已经在 options 中显式设置 `map`。\r\n\r\n### CloudDataSearch\r\n\r\n`CloudDataSearch` 需要必填 `tableId`。\r\n\r\n```tsx\r\n<CloudDataSearch\r\n    tableId=\"your-table-id\"\r\n    keywords=\"门店\"\r\n    pageSize={20}\r\n    onLoad={service => {\r\n        service.searchNearBy?.([116.39, 39.9], 1000, (status, result) => {\r\n            console.log(status, result)\r\n        })\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`tableId`、`keywords`、`filter`、`orderBy`、`pageSize`、`pageIndex`、`panel`、`autoFitView`。\r\n\r\n### 路线规划服务\r\n\r\n`Driving`、`TruckDriving`、`Walking`、`Transfer`、`Riding` 都通过实例的 `search` 发起路线规划。\r\n\r\n```tsx\r\n<Driving\r\n    policy={0}\r\n    showTraffic\r\n    autoFitView\r\n    onLoad={driving => {\r\n        driving.search?.([116.39, 39.9], [116.45, 39.95], (status, result) => {\r\n            console.log(status, result)\r\n        })\r\n    }}\r\n/>\r\n```\r\n\r\n通用路线 props：`policy`、`extensions`、`panel`、`hideMarkers`、`showTraffic`、`province`、`number`、`isOutline`、`outlineColor`、`autoFitView`。\r\n\r\n额外 props：\r\n\r\n- `Driving`：`ferry`。\r\n- `TruckDriving`：`size`、`width`、`height`、`load`、`weight`、`axlesNum`。\r\n- `Transfer`：`city`、`cityd`。\r\n- `Walking`：使用通用路线 props。\r\n- `Riding`：使用通用路线 props。\r\n\r\n### DragRoute 与 DragRouteTruck\r\n\r\n`DragRoute` 需要路线 `path`。`autoSearch` 默认 `true`，创建后会立即执行 `search`。\r\n\r\n```tsx\r\n<DragRoute\r\n    path={[\r\n        [116.39, 39.9],\r\n        [116.45, 39.95],\r\n    ]}\r\n    policy={0}\r\n    autoSearch\r\n/>\r\n```\r\n\r\n`DragRouteTruck` 使用 `locations`：\r\n\r\n```tsx\r\n<DragRouteTruck\r\n    locations={[\r\n        { lnglat: [116.39, 39.9] },\r\n        { lnglat: [116.45, 39.95] },\r\n    ]}\r\n    cartype={1}\r\n    autoSearch\r\n/>\r\n```\r\n\r\n`DragRoute` 常用 props：`path`、`policy`、`autoSearch`、`polyOption`、`startMarkerOptions`、`midMarkerOptions`、`endMarkerOptions`、`showTraffic`。\r\n\r\n`DragRouteTruck` 常用 props：`locations`、`autoSearch`、`cartype`、`showpolyline`、`nosteps`、`autoRefresh`、`refreshTime`、`apiVersion`、`showFields`。\r\n\r\n### GraspRoad\r\n\r\n```tsx\r\n<GraspRoad\r\n    onLoad={graspRoad => {\r\n        graspRoad.driving?.(\r\n            [\r\n                { x: 116.39, y: 39.9, sp: 30, ag: 90, tm: Date.now() },\r\n                { x: 116.4, y: 39.91, sp: 28, ag: 95, tm: Date.now() + 1000 },\r\n            ],\r\n            (status, result) => console.log(status, result)\r\n        )\r\n    }}\r\n/>\r\n```\r\n\r\n### DistrictSearch\r\n\r\n```tsx\r\n<DistrictSearch\r\n    level={MapDistrictSearchLevel.市}\r\n    subdistrict={1}\r\n    extensions={MapServiceExtensions.详细信息}\r\n    onLoad={districtSearch => {\r\n        districtSearch.search?.(\"北京市\", (status, result) => console.log(status, result))\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`level`、`showbiz`、`extensions`、`subdistrict`。\r\n\r\n### Weather\r\n\r\n```tsx\r\n<Weather\r\n    onLoad={weather => {\r\n        weather.getLive?.(\"北京市\", (error, result) => console.log(error, result))\r\n        weather.getForecast?.(\"北京市\", (error, result) => console.log(error, result))\r\n    }}\r\n/>\r\n```\r\n\r\n### StationSearch 与 LineSearch\r\n\r\n```tsx\r\n<StationSearch\r\n    city=\"北京\"\r\n    pageSize={10}\r\n    onLoad={stationSearch => {\r\n        stationSearch.search?.(\"中关村\", (status, result) => console.log(status, result))\r\n    }}\r\n/>\r\n\r\n<LineSearch\r\n    city=\"北京\"\r\n    onLoad={lineSearch => {\r\n        lineSearch.search?.(\"1路\", (status, result) => console.log(status, result))\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`pageIndex`、`pageSize`、`city`、`extensions`。\r\n\r\n### Geolocation\r\n\r\n`Geolocation` 默认 `addControl=true`，创建后会添加到当前地图控件中；卸载时自动移除。\r\n\r\n```tsx\r\n<Geolocation\r\n    position={ControlPosition.右下角}\r\n    enableHighAccuracy\r\n    timeout={10000}\r\n    showMarker\r\n    showCircle\r\n    panToLocation\r\n    zoomToAccuracy\r\n    onLoad={geolocation => {\r\n        geolocation.getCurrentPosition?.((status, result) => console.log(status, result))\r\n    }}\r\n/>\r\n```\r\n\r\n常用 props：`addControl`、`position`、`offset`、`convert`、`enableHighAccuracy`、`timeout`、`maximumAge`、`showButton`、`showCircle`、`showMarker`、`markerOptions`、`circleOptions`、`panToLocation`、`zoomToAccuracy`、`GeoLocationFirst`、`noIpLocate`、`noGeoLocation`、`useNative`、`getCityWhenFail`、`needAddress`、`extensions`。\r\n\r\n### CitySearch\r\n\r\n```tsx\r\n<CitySearch\r\n    onLoad={citySearch => {\r\n        citySearch.getLocalCity?.((status, result) => console.log(status, result))\r\n    }}\r\n/>\r\n```\r\n\r\n常用实例方法：`getLocalCity`、`getCityByIp`。\r\n\r\n### WebService\r\n\r\n`WebService` 暴露 `AMap.WebService` 静态对象。\r\n\r\n```tsx\r\n<WebService\r\n    onLoad={webService => {\r\n        webService.get?.(\r\n            \"/v3/place/text\",\r\n            {\r\n                keywords: \"咖啡\",\r\n                city: \"北京\",\r\n            },\r\n            (status, result) => console.log(status, result)\r\n        )\r\n    }}\r\n/>\r\n```\r\n\r\n也可以使用 `useMapWebService`。\r\n\r\n### 坐标转换与移动动画\r\n\r\n`useMapConvertFrom` 返回坐标转换函数，底层调用 `AMap.convertFrom`。\r\n\r\n```tsx\r\nconst convertFrom = useMapConvertFrom()\r\n\r\nfunction onConvert() {\r\n    convertFrom?.({\r\n        lnglat: [116.39, 39.9],\r\n        type: MapCoordinateConvertType.GPS,\r\n        callback: (status, result) => console.log(status, result),\r\n    })\r\n}\r\n```\r\n\r\n`useMapMoveAnimation` 会加载 `MapPlugin.MoveAnimation`，返回布尔值表示插件是否可用。\r\n\r\n```tsx\r\nconst moveAnimationLoaded = useMapMoveAnimation()\r\n```\r\n\r\n## 基础类与通用工具 Hooks\r\n\r\n### useMapContext\r\n\r\n读取当前 `<Map>` 提供的上下文。\r\n\r\n```tsx\r\nconst { map, AMap, status, error } = useMapContext()\r\n```\r\n\r\n### useMapFoundation\r\n\r\n读取基础类构造器：`LngLat`、`Bounds`、`Pixel`、`Size`。\r\n\r\n```tsx\r\nconst { LngLat, Bounds, Pixel, Size } = useMapFoundation()\r\n\r\nconst center = LngLat ? new LngLat(116.39, 39.9) : undefined\r\n```\r\n\r\n### useMapCommon\r\n\r\n读取通用工具：`GeometryUtil`、`DomUtil`、`Browser`、`Util`。\r\n\r\n```tsx\r\nconst geometryUtil = useMapGeometryUtil()\r\nconst distance = geometryUtil?.distance?.([116.39, 39.9], [116.4, 39.91])\r\n```\r\n\r\n可用 Hook：\r\n\r\n- `useMapCommon`\r\n- `useMapGeometryUtil`\r\n- `useMapDomUtil`\r\n- `useMapBrowser`\r\n- `useMapUtil`\r\n\r\n### useMapPlugin\r\n\r\n手动加载插件。通常组件会自动按需加载，只有你需要直接使用插件构造器时才需要调用它。\r\n\r\n```tsx\r\nconst loaded = useMapPlugin({\r\n    map,\r\n    AMap,\r\n    pluginName: MapPlugin.MouseTool,\r\n    constructorName: \"MouseTool\",\r\n})\r\n```\r\n\r\n## 枚举常量\r\n\r\n包内导出了常用常量，避免手写字符串：\r\n\r\n- `MapViewMode`：`TwoDimensional`、`ThreeDimensional`。\r\n- `MapStatus`：`Idle`、`Loading`、`Loaded`、`Error`。\r\n- `MapPlugin`：所有可加载的 JSAPI 插件名。\r\n- `MapMarkerAnchor`：Marker / 文本锚点。\r\n- `MapMarkerLabelDirection`：文本标注方向。\r\n- `MapElasticMarkerLabelPosition`：灵活点标记文本位置。\r\n- `ControlPosition`：控件停靠位置。\r\n- `MapTypeLayerType`、`MapTypeDefaultType`：地图类型控件配置。\r\n- `MapMouseToolMode`：鼠标工具模式。\r\n- `MapServiceLanguage`、`MapServiceExtensions`、`MapAutoCompleteDataType`、`MapDistrictSearchLevel`、`MapGeolocationDisabledPolicy`、`MapCoordinateConvertType`：服务参数常量。\r\n\r\n## SSR 注意事项\r\n\r\n`Map` 只会在浏览器环境加载 JSAPI。如果当前环境没有 `window` 或 `document`，会进入错误状态。SSR 项目中应确保地图只在客户端渲染，或者在页面层做动态导入 / 客户端边界。\r\n\r\n## 开发\r\n\r\n在仓库根目录安装依赖：\r\n\r\n```bash\r\npnpm install\r\n```\r\n\r\n构建：\r\n\r\n```bash\r\npnpm --filter @1adybug/react-amap build\r\n```\r\n\r\n类型检查：\r\n\r\n```bash\r\npnpm --filter @1adybug/react-amap exec tsc --noEmit\r\n```\r\n\r\nLint：\r\n\r\n```bash\r\npnpm --filter @1adybug/react-amap lint\r\n```\n","readmeFilename":"README.md"}