[{"data":1,"prerenderedAt":983},["ShallowReactive",2],{"$fH1eWlqoiC00W22IavqAu_OsP-ik--NHmWXCHCGpo4RI":3,"mdc--kyryde-key":478,"landing":499,"home-hero-demo-source":681},[4],{"title":5,"path":6,"stem":7,"children":8,"page":55},"Docs","\u002Fdocs","docs",[9,57,110,199,232,301,339,382,446],{"title":10,"path":11,"stem":12,"children":13,"category":16,"description":16,"icon":56},"快速开始","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[14,18,23,28,33],{"title":15,"path":11,"stem":12,"category":16,"description":17},"介绍",null,"了解 Movk Mapbox 的声明式设计、上下文注入架构与 Nuxt \u002F Vue 双模式，从安装到组合地图、数据源、图层与控件。",{"title":19,"path":20,"stem":21,"category":16,"description":22},"安装","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation","安装 @movk\u002Fmapbox 及其 peer 依赖，并按 Nuxt 或 Vue + Vite 选择接入方式。",{"title":24,"path":25,"stem":26,"category":16,"description":27},"Nuxt 4","\u002Fdocs\u002Fgetting-started\u002Fnuxt","docs\u002F1.getting-started\u002F3.nuxt","在 Nuxt 4 中注册 @movk\u002Fmapbox 模块，配置 token，组件与 composables 自动导入。",{"title":29,"path":30,"stem":31,"category":16,"description":32},"Vue + Vite","\u002Fdocs\u002Fgetting-started\u002Fvue","docs\u002F1.getting-started\u002F4.vue","在纯 Vue + Vite 项目中经 @movk\u002Fmapbox\u002Fvite 与 vue-plugin 使用同一套组件。",{"title":34,"category":16,"description":16,"icon":35,"path":36,"stem":37,"children":38,"page":55},"AI 集成","i-lucide-bot","\u002Fdocs\u002Fgetting-started\u002Fai","docs\u002F1.getting-started\u002Fai",[39,45,50],{"title":40,"path":41,"stem":42,"category":43,"description":44},"MCP Server","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fmcp","docs\u002F1.getting-started\u002Fai\u002F1.mcp","ai","文档站内置 MCP Server，供 AI 智能体检索本库组件、composables、示例，并提供坐标转换等增强工具。",{"title":46,"path":47,"stem":48,"category":43,"description":49},"llms.txt","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fllms-txt","docs\u002F1.getting-started\u002Fai\u002F2.llms-txt","文档站自动生成 llms.txt 与 llms-full.txt，为大模型提供结构化的库能力与文档索引。",{"title":51,"path":52,"stem":53,"category":43,"description":54},"Agent Skills","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fskills","docs\u002F1.getting-started\u002Fai\u002F3.skills","文档站发布 movk-mapbox Agent Skill，让 AI 工具一条命令即可学会用本库声明式地构建地图。",false,"i-lucide-square-play",{"title":58,"category":16,"description":16,"icon":59,"path":60,"stem":61,"children":62,"page":55},"核心组件","i-lucide-box","\u002Fdocs\u002Fcore","docs\u002F2.core",[63,69,74,79,84,89,95,100,105],{"title":64,"path":65,"stem":66,"category":67,"description":68},"MapboxMap","\u002Fdocs\u002Fcore\u002Fmap","docs\u002F2.core\u002F1.map","basics","根组件，在客户端创建 Mapbox GL 实例并经 MapboxContext 下发，支持相机 v-model 双向绑定与跨路由持久化。",{"title":70,"path":71,"stem":72,"category":67,"description":73},"MapboxSource","\u002Fdocs\u002Fcore\u002Fsource","docs\u002F2.core\u002F2.source","声明式数据源，支持 geojson \u002F vector \u002F raster \u002F image \u002F video，按类型增量更新且可被多个图层复用。",{"title":75,"path":76,"stem":77,"category":67,"description":78},"MapboxLayer","\u002Fdocs\u002Fcore\u002Flayer","docs\u002F2.core\u002F3.layer","声明式图层，按 type 渲染并经 paint \u002F layout \u002F filter 控制样式，支持内联 source 与图层交互事件。",{"title":80,"path":81,"stem":82,"category":67,"description":83},"MapboxLayerGroup","\u002Fdocs\u002Fcore\u002Flayer-group","docs\u002F2.core\u002F4.layer-group","图层组，为子图层提供统一的插入锚点与组级显隐开关。",{"title":85,"path":86,"stem":87,"category":67,"description":88},"MapboxCustomLayer","\u002Fdocs\u002Fcore\u002Fcustom-layer","docs\u002F2.core\u002F5.custom-layer","托管 CustomLayerInterface，把自定义 WebGL 图层接入声明式生命周期与样式重载重建。",{"title":90,"path":91,"stem":92,"category":93,"description":94},"MapboxMarker","\u002Fdocs\u002Fcore\u002Fmarker","docs\u002F2.core\u002F6.marker","overlay","标记，默认插槽渲染自定义 DOM，支持 v-model:lnglat 双向绑定与拖拽回写。",{"title":96,"path":97,"stem":98,"category":93,"description":99},"MapboxLottieMarker","\u002Fdocs\u002Fcore\u002Flottie-marker","docs\u002F2.core\u002F7.lottie-marker","在标记位用 lottie-web 渲染矢量动画，支持 animationData 内联或 path 远程加载。",{"title":101,"path":102,"stem":103,"category":93,"description":104},"MapboxPopup","\u002Fdocs\u002Fcore\u002Fpopup","docs\u002F2.core\u002F8.popup","弹窗，默认插槽渲染内容，lnglat 锚定且响应式更新位置。",{"title":106,"path":107,"stem":108,"category":93,"description":109},"MapboxTooltip","\u002Fdocs\u002Fcore\u002Ftooltip","docs\u002F2.core\u002F9.tooltip","悬浮提示，鼠标移到目标图层要素时跟随显示，slot 暴露命中要素。",{"title":111,"category":16,"description":16,"icon":112,"path":113,"stem":114,"children":115,"page":55},"图层组件","i-lucide-layers","\u002Fdocs\u002Flayers","docs\u002F3.layers",[116,122,128,133,139,144,149,154,159,164,169,174,179,184,189,194],{"title":117,"path":118,"stem":119,"category":120,"description":121},"circle","\u002Fdocs\u002Flayers\u002Fcircle","docs\u002F3.layers\u002F1.circle","builtin","用 MapboxLayer 的 circle 类型渲染圆点图层，经内联 geojson 源与 paint 控制半径、颜色与描边。",{"title":123,"path":124,"stem":125,"category":126,"description":127},"MapboxVideoLayer","\u002Fdocs\u002Flayers\u002Fvideo","docs\u002F3.layers\u002F10.video","data-driven","视频覆盖图层，把视频按四角经纬度贴合到地图，暴露播放控制。",{"title":129,"path":130,"stem":131,"category":126,"description":132},"MapboxRasterLayer","\u002Fdocs\u002Flayers\u002Fraster","docs\u002F3.layers\u002F11.raster","栅格瓦片图层，叠加 XYZ\u002FTMS 模板的外部瓦片服务。",{"title":134,"path":135,"stem":136,"category":137,"description":138},"MapboxBufferCircle","\u002Fdocs\u002Flayers\u002Fbuffer-circle","docs\u002F3.layers\u002F12.buffer-circle","buffers","圆形缓冲区，基于 turf 测地圆按米半径生成填充与描边图层。",{"title":140,"path":141,"stem":142,"category":137,"description":143},"MapboxBufferEllipse","\u002Fdocs\u002Flayers\u002Fbuffer-ellipse","docs\u002F3.layers\u002F13.buffer-ellipse","椭圆缓冲区，按米半轴与方位角生成填充与描边图层。",{"title":145,"path":146,"stem":147,"category":137,"description":148},"MapboxBufferLine","\u002Fdocs\u002Flayers\u002Fbuffer-line","docs\u002F3.layers\u002F14.buffer-line","线缓冲区，沿线两侧扩展指定米宽生成走廊面。",{"title":150,"path":151,"stem":152,"category":137,"description":153},"MapboxBufferPolygon","\u002Fdocs\u002Flayers\u002Fbuffer-polygon","docs\u002F3.layers\u002F15.buffer-polygon","多边形缓冲区，向外扩展或负值向内收缩指定米宽。",{"title":155,"path":156,"stem":157,"category":137,"description":158},"MapboxBufferSector","\u002Fdocs\u002Flayers\u002Fbuffer-sector","docs\u002F3.layers\u002F16.buffer-sector","扇形缓冲区，按起止方位角与米半径生成扇面。",{"title":160,"path":161,"stem":162,"category":120,"description":163},"fill","\u002Fdocs\u002Flayers\u002Ffill","docs\u002F3.layers\u002F2.fill","用 MapboxLayer 的 fill 类型渲染面图层，经 paint 控制填充色与透明度，支持数据驱动着色。",{"title":165,"path":166,"stem":167,"category":120,"description":168},"line","\u002Fdocs\u002Flayers\u002Fline","docs\u002F3.layers\u002F3.line","用 MapboxLayer 的 line 类型渲染线图层，经 paint 控制线宽、颜色与端点样式。",{"title":170,"path":171,"stem":172,"category":120,"description":173},"symbol","\u002Fdocs\u002Flayers\u002Fsymbol","docs\u002F3.layers\u002F4.symbol","用 MapboxLayer 的 symbol 类型渲染文字与图标标注，layout 读取要素属性。",{"title":175,"path":176,"stem":177,"category":120,"description":178},"fill-extrusion","\u002Fdocs\u002Flayers\u002Ffill-extrusion","docs\u002F3.layers\u002F5.fill-extrusion","用 MapboxLayer 的 fill-extrusion 类型把面挤出为 3D 体块，高度可数据驱动。",{"title":180,"path":181,"stem":182,"category":120,"description":183},"heatmap","\u002Fdocs\u002Flayers\u002Fheatmap","docs\u002F3.layers\u002F6.heatmap","用 MapboxLayer 的 heatmap 类型把点密度渲染为热力图，paint 控制半径与强度。",{"title":185,"path":186,"stem":187,"category":126,"description":188},"MapboxClusterLayer","\u002Fdocs\u002Flayers\u002Fcluster","docs\u002F3.layers\u002F7.cluster","点聚合图层，基于 geojson cluster 自动渲染聚合圆、计数与散点三层，点击聚合圆展开。",{"title":190,"path":191,"stem":192,"category":126,"description":193},"MapboxBuildingLayer","\u002Fdocs\u002Flayers\u002Fbuilding","docs\u002F3.layers\u002F8.building","3D 建筑图层，挤出官方样式的 composite\u002Fbuilding 矢量源，可调颜色、透明度与起始缩放。",{"title":195,"path":196,"stem":197,"category":126,"description":198},"MapboxImageLayer","\u002Fdocs\u002Flayers\u002Fimage","docs\u002F3.layers\u002F9.image","静态图片覆盖图层，把一张图片按四角经纬度贴合到地图上。",{"title":200,"category":16,"description":16,"icon":201,"path":202,"stem":203,"children":204,"page":55},"控件","i-lucide-sliders-horizontal","\u002Fdocs\u002Fcontrols","docs\u002F4.controls",[205,211,216,221,227],{"title":206,"path":207,"stem":208,"category":209,"description":210},"MapboxNavigationControl","\u002Fdocs\u002Fcontrols\u002Fnavigation","docs\u002F4.controls\u002F1.navigation","interactive","导航控件，提供缩放按钮与指北罗盘，position 控制停靠角，options 透传至 mapbox-gl。",{"title":212,"path":213,"stem":214,"category":209,"description":215},"MapboxGeolocateControl","\u002Fdocs\u002Fcontrols\u002Fgeolocate","docs\u002F4.controls\u002F2.geolocate","定位控件，点击后请求浏览器定位并在地图上跟踪用户位置与方向。",{"title":217,"path":218,"stem":219,"category":209,"description":220},"MapboxFullscreenControl","\u002Fdocs\u002Fcontrols\u002Ffullscreen","docs\u002F4.controls\u002F3.fullscreen","全屏控件，点击在全屏与常态间切换地图容器。",{"title":222,"path":223,"stem":224,"category":225,"description":226},"MapboxScaleControl","\u002Fdocs\u002Fcontrols\u002Fscale","docs\u002F4.controls\u002F4.scale","info","比例尺控件，随缩放显示当前地图比例，支持公制、英制与海里单位。",{"title":228,"path":229,"stem":230,"category":225,"description":231},"MapboxAttributionControl","\u002Fdocs\u002Fcontrols\u002Fattribution","docs\u002F4.controls\u002F5.attribution","版权信息控件，展示数据来源署名，支持折叠与自定义版权文本。",{"title":233,"category":16,"description":16,"icon":234,"path":235,"stem":236,"children":237,"page":55},"效果组件","i-lucide-sparkles","\u002Fdocs\u002Feffects","docs\u002F5.effects",[238,244,250,256,261,266,271,276,281,286,291,296],{"title":239,"path":240,"stem":241,"category":242,"description":243},"MapboxRadar","\u002Fdocs\u002Feffects\u002Fradar","docs\u002F5.effects\u002F1.radar","dynamic","雷达扫描效果，canvas 生成扇形扫描贴图并按帧旋转。",{"title":245,"path":246,"stem":247,"category":248,"description":249},"MapboxWindowBuilding","\u002Fdocs\u002Feffects\u002Fwindow-building","docs\u002F5.effects\u002F10.window-building","building","窗户建筑，程序生成窗户点阵贴图作 fill-extrusion-pattern。",{"title":251,"path":252,"stem":253,"category":254,"description":255},"MapboxSpriteImage","\u002Fdocs\u002Feffects\u002Fsprite-image","docs\u002F5.effects\u002F11.sprite-image","annotation","帧动画图标层，雪碧图切帧后由 symbol 逐帧循环播放。",{"title":257,"path":258,"stem":259,"category":254,"description":260},"MapboxAnimatedImage","\u002Fdocs\u002Feffects\u002Fanimated-image","docs\u002F5.effects\u002F12.animated-image","动图图标层，ImageDecoder 解码 GIF\u002FAPNG\u002FWebP 为帧逐帧循环播放。",{"title":262,"path":263,"stem":264,"category":242,"description":265},"MapboxDiffusionCircle","\u002Fdocs\u002Feffects\u002Fdiffusion","docs\u002F5.effects\u002F2.diffusion","扩散圆效果，多圈同心圆周期性扩张并渐隐。",{"title":267,"path":268,"stem":269,"category":242,"description":270},"MapboxGlowCircle","\u002Fdocs\u002Feffects\u002Fglow","docs\u002F5.effects\u002F3.glow","炫光圆效果，实心内核加模糊光晕，可选呼吸脉冲。",{"title":272,"path":273,"stem":274,"category":242,"description":275},"MapboxWaveCircle","\u002Fdocs\u002Feffects\u002Fwave","docs\u002F5.effects\u002F4.wave","波浪圆效果，常驻底圆加周期向外扩张的描边波纹。",{"title":277,"path":278,"stem":279,"category":242,"description":280},"MapboxTrail","\u002Fdocs\u002Feffects\u002Ftrail","docs\u002F5.effects\u002F5.trail","动态轨迹，line-gradient 彗尾沿线循环平移。",{"title":282,"path":283,"stem":284,"category":242,"description":285},"MapboxMigration","\u002Fdocs\u002Feffects\u002Fmigration","docs\u002F5.effects\u002F6.migration","迁徙图，OD 对生成贝塞尔弧线，粒子沿线循环飞行并带渐变尾迹。",{"title":287,"path":288,"stem":289,"category":248,"description":290},"MapboxFlowBuilding","\u002Fdocs\u002Feffects\u002Fflow-building","docs\u002F5.effects\u002F7.flow-building","流动建筑，渐变着色加高亮带沿建筑高度循环流动。",{"title":292,"path":293,"stem":294,"category":248,"description":295},"MapboxGradientBuilding","\u002Fdocs\u002Feffects\u002Fgradient-building","docs\u002F5.effects\u002F8.gradient-building","渐变建筑，按高度插值着色的 3D 建筑。",{"title":297,"path":298,"stem":299,"category":248,"description":300},"MapboxTextureBuilding","\u002Fdocs\u002Feffects\u002Ftexture-building","docs\u002F5.effects\u002F9.texture-building","纹理建筑，用户贴图作 fill-extrusion-pattern。",{"title":302,"category":16,"description":16,"icon":303,"path":304,"stem":305,"children":306,"page":55},"环境与天气","i-lucide-cloud-sun","\u002Fdocs\u002Fenvironment","docs\u002F6.environment",[307,313,318,323,329,334],{"title":308,"path":309,"stem":310,"category":311,"description":312},"MapboxFog","\u002Fdocs\u002Fenvironment\u002Ffog","docs\u002F6.environment\u002F1.fog","ambience","设置地图的雾 \u002F 大气效果，options 透传 mapbox fog 规格。",{"title":314,"path":315,"stem":316,"category":311,"description":317},"MapboxLights","\u002Fdocs\u002Fenvironment\u002Flights","docs\u002F6.environment\u002F2.lights","设置地图 3D 光照（环境光 \u002F 平行光 \u002F 平面光），照亮 3D 建筑与地形。",{"title":319,"path":320,"stem":321,"category":311,"description":322},"MapboxTerrain","\u002Fdocs\u002Fenvironment\u002Fterrain","docs\u002F6.environment\u002F3.terrain","启用三维地形，基于 raster-dem 数据源并以 exaggeration 控制夸张程度。",{"title":324,"path":325,"stem":326,"category":327,"description":328},"MapboxTemperature","\u002Fdocs\u002Fenvironment\u002Ftemperature","docs\u002F6.environment\u002F4.temperature","weather","把温度采样点按属性渲染为热力层，支持权重范围、半径与配色断点。",{"title":330,"path":331,"stem":332,"category":327,"description":333},"MapboxRain","\u002Fdocs\u002Fenvironment\u002Frain","docs\u002F6.environment\u002F5.rain","为地图添加降雨效果，options 透传 mapbox rain 规格。",{"title":335,"path":336,"stem":337,"category":327,"description":338},"MapboxSnow","\u002Fdocs\u002Fenvironment\u002Fsnow","docs\u002F6.environment\u002F6.snow","为地图添加降雪效果，options 透传 mapbox snow 规格。",{"title":340,"category":16,"description":16,"icon":341,"path":342,"stem":343,"children":344,"page":55},"扩展能力","i-lucide-puzzle","\u002Fdocs\u002Fextensions","docs\u002F7.extensions",[345,351,356,361,367,372,377],{"title":346,"path":347,"stem":348,"category":349,"description":350},"MapboxDrawControl","\u002Fdocs\u002Fextensions\u002Fdraw","docs\u002F7.extensions\u002F1.draw","draw","基于 mapbox-gl-draw 的声明式绘制控件，v-model 受控要素与模式，并暴露命令式实例方法。",{"title":352,"path":353,"stem":354,"category":349,"description":355},"movkDrawModes","\u002Fdocs\u002Fextensions\u002Fdraw-modes","docs\u002F7.extensions\u002F2.draw-modes","movk 自定义绘制模式集合（圆\u002F椭圆\u002F矩形\u002F扇形），合并进 MapboxDraw.modes 使用。",{"title":357,"path":358,"stem":359,"category":349,"description":360},"drawThemeStyles","\u002Fdocs\u002Fextensions\u002Fdraw-theme","docs\u002F7.extensions\u002F3.draw-theme","生成 mapbox-gl-draw 主题样式数组，支持要素级 user_color 覆盖。",{"title":362,"path":363,"stem":364,"category":365,"description":366},"MapboxTiandituLayer","\u002Fdocs\u002Fextensions\u002Ftianditu","docs\u002F7.extensions\u002F4.tianditu","basemap","以天地图 WMTS 瓦片作底图，支持矢量\u002F影像\u002F地形及对应注记叠加。",{"title":368,"path":369,"stem":370,"category":365,"description":371},"MapboxWmsLayer","\u002Fdocs\u002Fextensions\u002Fwms","docs\u002F7.extensions\u002F5.wms","接入标准 WMS 服务为栅格图层，透传版本、格式、CRS 等参数。",{"title":373,"path":374,"stem":375,"category":365,"description":376},"MapboxWmtsLayer","\u002Fdocs\u002Fextensions\u002Fwmts","docs\u002F7.extensions\u002F6.wmts","接入标准 WMTS（KVP）服务为栅格图层，支持子域名展开与自定义鉴权参数。",{"title":378,"path":379,"stem":380,"category":365,"description":381},"坐标转换","\u002Fdocs\u002Fextensions\u002Fcoordinate","docs\u002F7.extensions\u002F7.coordinate","基于 gcoord 在 WGS84 \u002F GCJ02 \u002F BD09 \u002F EPSG3857 间转换坐标点与 GeoJSON。",{"title":383,"category":16,"description":16,"icon":384,"path":385,"stem":386,"children":387,"page":55},"Composables","i-lucide-square-function","\u002Fdocs\u002Fcomposables","docs\u002F8.composables",[388,394,400,405,410,415,420,426,431,436,441],{"title":389,"path":390,"stem":391,"category":392,"description":393},"useMap","\u002Fdocs\u002Fcomposables\u002Fuse-map","docs\u002F8.composables\u002F1.use-map","context","注入当前 MapboxMap 上下文，在子组件中直接访问地图实例与就绪状态。",{"title":395,"path":396,"stem":397,"category":398,"description":399},"useMeasure","\u002Fdocs\u002Fcomposables\u002Fuse-measure","docs\u002F8.composables\u002F10.use-measure","interaction","测距 \u002F 测面工具，自管 geojson 源与展示图层，turf 实时计算读数。",{"title":401,"path":402,"stem":403,"category":392,"description":404},"defineMapboxControl","\u002Fdocs\u002Fcomposables\u002Fdefine-mapbox-control","docs\u002F8.composables\u002F11.define-mapbox-control","用回调式 onAdd \u002F onRemove 快速定义一个自定义 Mapbox 控件。",{"title":406,"path":407,"stem":408,"category":392,"description":409},"useMapbox","\u002Fdocs\u002Fcomposables\u002Fuse-mapbox","docs\u002F8.composables\u002F2.use-mapbox","按 id 从注册表获取已挂载地图的上下文，在组件树之外或跨路由访问地图。",{"title":411,"path":412,"stem":413,"category":398,"description":414},"useMapboxCamera","\u002Fdocs\u002Fcomposables\u002Fuse-mapbox-camera","docs\u002F8.composables\u002F3.use-mapbox-camera","相机操作助手，封装 flyTo \u002F easeTo \u002F jumpTo \u002F fitBounds，自动等待地图加载完成。",{"title":416,"path":417,"stem":418,"category":398,"description":419},"useMapboxDraw","\u002Fdocs\u002Fcomposables\u002Fuse-mapbox-draw","docs\u002F8.composables\u002F4.use-mapbox-draw","注入当前 MapboxDrawControl 的绘制实例，在子组件中程序化控制绘制。",{"title":421,"path":422,"stem":423,"category":424,"description":425},"useMapboxImage","\u002Fdocs\u002Fcomposables\u002Fuse-mapbox-image","docs\u002F8.composables\u002F5.use-mapbox-image","icon-export","注册 symbol 图层可用的命名图片，样式切换后自动补回，卸载时移除。",{"title":427,"path":428,"stem":429,"category":398,"description":430},"useFeatureState","\u002Fdocs\u002Fcomposables\u002Fuse-feature-state","docs\u002F8.composables\u002F6.use-feature-state","在目标图层上维护 feature-state 的 hover \u002F selected 状态，驱动数据驱动样式。",{"title":432,"path":433,"stem":434,"category":424,"description":435},"useFrameIcon","\u002Fdocs\u002Fcomposables\u002Fuse-frame-icon","docs\u002F8.composables\u002F7.use-frame-icon","注册帧动画图标的底层原语，处理样式重载补回与缺图兜底，由 SpriteImage \u002F AnimatedImage 共用。",{"title":437,"path":438,"stem":439,"category":398,"description":440},"useMapAnimation","\u002Fdocs\u002Fcomposables\u002Fuse-map-animation","docs\u002F8.composables\u002F8.use-map-animation","地图帧动画原语，基于 requestAnimationFrame，仅在地图存在且样式就绪时调用回调。",{"title":442,"path":443,"stem":444,"category":424,"description":445},"useMapExport","\u002Fdocs\u002Fcomposables\u002Fuse-map-export","docs\u002F8.composables\u002F9.use-map-export","导出当前地图为图片 dataURL 或直接触发浏览器下载，免 preserveDrawingBuffer 改造。",{"title":447,"category":16,"description":16,"icon":448,"path":449,"stem":450,"children":451,"page":55},"工具函数","i-lucide-wrench","\u002Fdocs\u002Futils","docs\u002F9.utils",[452,457,463,468,473],{"title":453,"path":454,"stem":455,"category":456,"description":381},"transformPoint \u002F transformGeoJSON","\u002Fdocs\u002Futils\u002Fcoordinate","docs\u002F9.utils\u002F1.coordinate","coordinate",{"title":458,"path":459,"stem":460,"category":461,"description":462},"bufferPaints","\u002Fdocs\u002Futils\u002Fbuffer","docs\u002F9.utils\u002F2.buffer","geometry","生成缓冲区图层的默认 fill \u002F line paint 对象，统一主色与不透明度。",{"title":464,"path":465,"stem":466,"category":461,"description":467},"boundsOfGeoJSON","\u002Fdocs\u002Futils\u002Fgeometry","docs\u002F9.utils\u002F3.geometry","扫描任意 GeoJSON 的全部坐标求包围盒，可直接传给 map.fitBounds。",{"title":469,"path":470,"stem":471,"category":456,"description":472},"formatDistance \u002F formatArea","\u002Fdocs\u002Futils\u002Fmeasure","docs\u002F9.utils\u002F4.measure","把米 \u002F 平方米数值格式化为带单位的距离与面积读数字符串。",{"title":474,"path":475,"stem":476,"category":461,"description":477},"heatmapPaint","\u002Fdocs\u002Futils\u002Fheatmap","docs\u002F9.utils\u002F5.heatmap","生成 mapbox heatmap 图层 paint，把要素属性线性映射为热力权重并按密度着色。",{"data":479,"body":480},{},{"type":481,"children":482},"root",[483],{"type":484,"tag":485,"props":486,"children":487},"element","p",{},[488,491],{"type":489,"value":490},"text","Copyright © 2026 - 2026 YiXuan - ",{"type":484,"tag":492,"props":493,"children":496},"span",{"className":494},[495],"text-highlighted",[497],{"type":489,"value":498},"MIT License",{"id":500,"title":501,"body":502,"description":501,"extension":672,"meta":673,"navigation":674,"path":675,"seo":676,"stem":679,"__hash__":680},"landing\u002Findex.md","",{"type":503,"value":504,"toc":669},"minimark",[505,575,658],[506,507,513,519,531,542,566],"u-page-hero",{"className":508,"orientation":512},[509,510,511],"dark:bg-gradient-to-b","from-neutral-900","to-neutral-950","horizontal",[514,515,516],"template",{"v-slot:top":501},[517,518],"hero-background",{},[514,520,521],{"v-slot:title":501},[522,523,524,525,530],"motion",{},"声明式 ",[492,526,529],{"className":527},[528],"text-primary","Mapbox GL"," 组件库",[514,532,533],{"v-slot:description":501},[522,534,536,537,541],{":transition":535},"{\"duration\":0.6,\"delay\":0.3}","声明式组合地图、图层、标记与控件，相机参数 ",[538,539,540],"code",{},"v-model"," 双向绑定。一套组件通用于 Nuxt 4 与纯 Vue + Vite，内置 3D 建筑、动态效果、天气环境与本土化底图。",[514,543,544],{"v-slot:links":501},[522,545,552,558],{":transition":546,"className":547},"{\"duration\":0.6,\"delay\":0.5}",[548,549,550,551],"flex","flex-wrap","gap-x-6","gap-y-3",[553,554,557],"u-button",{"size":555,"to":11,"trailing-icon":556},"xl","i-lucide-arrow-right","快速入门",[553,559,565],{"size":555,"to":560,"color":561,"icon":562,"target":563,"variant":564},"https:\u002F\u002Fgithub.com\u002Fmhaibaraai\u002Fmovk-mapbox","neutral","i-simple-icons-github","_blank","outline","查看源码",[522,567,572],{":transition":568,"className":569},"{\"duration\":0.6,\"delay\":0.1}",[570,571],"mx-auto","w-full",[573,574],"home-hero-demo",{},[576,577,580,583,586],"u-page-section",{"className":578},[579],"dark:bg-neutral-950",[514,581,582],{"v-slot:title":501},"核心特性",[514,584,585],{"v-slot:description":501},"声明式组合、上下文注入与双模式运行，从一张底图到复杂的三维效果与本土化底图服务，按需采用。",[514,587,588,598,607,616,624,631,640,649],{"v-slot:features":501},[589,590,592,595],"u-page-feature",{"icon":591},"i-lucide-blocks",[514,593,594],{"v-slot:title":501},"声明式组合",[514,596,597],{"v-slot:description":501},"以组件组合地图、数据源、图层、标记、弹窗与控件，状态即视图，告别命令式的 add\u002Fremove 样板。",[589,599,601,604],{"icon":600},"i-lucide-share-2",[514,602,603],{"v-slot:title":501},"MapboxContext 注入",[514,605,606],{"v-slot:description":501},"根组件下发上下文，子组件经 useMap() 直接取实例与 isLoaded \u002F whenLoaded()，无需 id 查表。",[589,608,610,613],{"icon":609},"i-lucide-move",[514,611,612],{"v-slot:title":501},"相机双向绑定",[514,614,615],{"v-slot:description":501},"v-model:center \u002F zoom \u002F bearing \u002F pitch 双向同步相机参数，并支持跨路由 persistent 持久化。",[589,617,618,621],{"icon":112},[514,619,620],{"v-slot:title":501},"丰富图层与效果",[514,622,623],{"v-slot:description":501},"内置 circle \u002F fill \u002F line \u002F symbol \u002F fill-extrusion \u002F heatmap 与聚合、建筑、栅格、视频图层，叠加雷达、扩散、辉光、波纹、迁徙、轨迹等动态效果。",[589,625,626,628],{"icon":303},[514,627,302],{"v-slot:title":501},[514,629,630],{"v-slot:description":501},"fog 大气、3D lights、terrain 地形与 temperature \u002F rain \u002F snow 天气，配合相机倾斜还原沉浸式三维场景。",[589,632,634,637],{"icon":633},"i-lucide-map",[514,635,636],{"v-slot:title":501},"本土化扩展",[514,638,639],{"v-slot:description":501},"天地图底图、WMS \u002F WMTS 服务、mapbox-gl-draw 绘制，以及基于 gcoord 的 WGS84 \u002F GCJ02 \u002F BD09 坐标转换，开箱即用。",[589,641,643,646],{"icon":642},"i-lucide-package",[514,644,645],{"v-slot:title":501},"Nuxt \u002F Vue 双模式",[514,647,648],{"v-slot:description":501},"既是 Nuxt 4 模块，也提供 @movk\u002Fmapbox\u002Fvite + vue-plugin，让同一套组件在纯 Vue + Vite 项目中通用。",[589,650,652,655],{"icon":651},"i-lucide-toy-brick",[514,653,654],{"v-slot:title":501},"Composables 与工具",[514,656,657],{"v-slot:description":501},"useMap、useMapboxCamera、useMeasure、useMapExport 等 composables，搭配坐标、缓冲、几何与量算工具，按需渐进式采用。",[659,660,663,666],"u-page-c-t-a",{":links":661,"className":662},"[{\"label\":\"Star on GitHub\",\"to\":\"https:\u002F\u002Fgithub.com\u002Fmhaibaraai\u002Fmovk-mapbox\",\"target\":\"_blank\",\"icon\":\"i-lucide-star\",\"color\":\"neutral\"},{\"label\":\"快速入门\",\"to\":\"\u002Fdocs\u002Fgetting-started\",\"color\":\"neutral\",\"variant\":\"outline\",\"trailingIcon\":\"i-lucide-arrow-right\"}]",[579],[514,664,665],{"v-slot:title":501},"开始构建你的下一张地图",[514,667,668],{"v-slot:description":501},"从一张底图到三维建筑、动态效果与本土化底图服务，Movk Mapbox 用声明式组件把 Mapbox GL 的复杂度收敛为可组合的能力。",{"title":501,"searchDepth":670,"depth":670,"links":671},2,[],"md",{},true,"\u002F",{"title":677,"description":678},"Movk Mapbox — 声明式 Mapbox GL v3 封装库","Compose maps, sources, layers, markers and controls declaratively with MapboxMap \u002F MapboxLayer components and composables. Native Nuxt 4 module plus a Vite plugin for plain Vue. Ships 3D buildings, radar \u002F diffusion \u002F glow effects, fog \u002F terrain \u002F weather, Tianditu and WMS \u002F WMTS basemaps, and multi-CRS localization.","index","R50KYYI2Mgkll_2kcRWqZB3rsW6_WQhFqpK1JerCH-A",{"data":682,"body":683,"toc":981},{"title":501,"description":501},{"type":481,"children":684},[685,975],{"type":484,"tag":686,"props":687,"children":691},"pre",{"className":688,"code":689,"language":690,"meta":501,"style":501},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Ctemplate>\n  \u003CMapboxMap\n    :options=\"{\n      style: 'mapbox:\u002F\u002Fstyles\u002Fmapbox\u002Flight-v11',\n      center: [116.461, 39.909],\n      zoom: 15.5,\n      pitch: 60,\n      bearing: -20\n    }\"\n  >\n    \u003CMapboxGradientBuilding\n      :stops=\"[[0, '#1e3a8a'], [80, '#0ea5e9'], [200, '#f59e0b'], [400, '#f43f5e']]\"\n      :opacity=\"0.9\"\n    \u002F>\n  \u003C\u002FMapboxMap>\n\u003C\u002Ftemplate>\n","vue",[692],{"type":484,"tag":538,"props":693,"children":694},{"__ignoreMap":501},[695,715,728,754,763,772,781,790,799,813,822,836,906,932,941,958],{"type":484,"tag":492,"props":696,"children":698},{"class":165,"line":697},1,[699,705,710],{"type":484,"tag":492,"props":700,"children":702},{"style":701},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[703],{"type":489,"value":704},"\u003C",{"type":484,"tag":492,"props":706,"children":708},{"style":707},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[709],{"type":489,"value":514},{"type":484,"tag":492,"props":711,"children":712},{"style":701},[713],{"type":489,"value":714},">\n",{"type":484,"tag":492,"props":716,"children":717},{"class":165,"line":670},[718,723],{"type":484,"tag":492,"props":719,"children":720},{"style":701},[721],{"type":489,"value":722},"  \u003C",{"type":484,"tag":492,"props":724,"children":725},{"style":707},[726],{"type":489,"value":727},"MapboxMap\n",{"type":484,"tag":492,"props":729,"children":731},{"class":165,"line":730},3,[732,738,743,748],{"type":484,"tag":492,"props":733,"children":735},{"style":734},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[736],{"type":489,"value":737},"    :options",{"type":484,"tag":492,"props":739,"children":740},{"style":701},[741],{"type":489,"value":742},"=",{"type":484,"tag":492,"props":744,"children":745},{"style":701},[746],{"type":489,"value":747},"\"",{"type":484,"tag":492,"props":749,"children":751},{"style":750},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[752],{"type":489,"value":753},"{\n",{"type":484,"tag":492,"props":755,"children":757},{"class":165,"line":756},4,[758],{"type":484,"tag":492,"props":759,"children":760},{"style":750},[761],{"type":489,"value":762},"      style: 'mapbox:\u002F\u002Fstyles\u002Fmapbox\u002Flight-v11',\n",{"type":484,"tag":492,"props":764,"children":766},{"class":165,"line":765},5,[767],{"type":484,"tag":492,"props":768,"children":769},{"style":750},[770],{"type":489,"value":771},"      center: [116.461, 39.909],\n",{"type":484,"tag":492,"props":773,"children":775},{"class":165,"line":774},6,[776],{"type":484,"tag":492,"props":777,"children":778},{"style":750},[779],{"type":489,"value":780},"      zoom: 15.5,\n",{"type":484,"tag":492,"props":782,"children":784},{"class":165,"line":783},7,[785],{"type":484,"tag":492,"props":786,"children":787},{"style":750},[788],{"type":489,"value":789},"      pitch: 60,\n",{"type":484,"tag":492,"props":791,"children":793},{"class":165,"line":792},8,[794],{"type":484,"tag":492,"props":795,"children":796},{"style":750},[797],{"type":489,"value":798},"      bearing: -20\n",{"type":484,"tag":492,"props":800,"children":802},{"class":165,"line":801},9,[803,808],{"type":484,"tag":492,"props":804,"children":805},{"style":750},[806],{"type":489,"value":807},"    }",{"type":484,"tag":492,"props":809,"children":810},{"style":701},[811],{"type":489,"value":812},"\"\n",{"type":484,"tag":492,"props":814,"children":816},{"class":165,"line":815},10,[817],{"type":484,"tag":492,"props":818,"children":819},{"style":701},[820],{"type":489,"value":821},"  >\n",{"type":484,"tag":492,"props":823,"children":825},{"class":165,"line":824},11,[826,831],{"type":484,"tag":492,"props":827,"children":828},{"style":701},[829],{"type":489,"value":830},"    \u003C",{"type":484,"tag":492,"props":832,"children":833},{"style":707},[834],{"type":489,"value":835},"MapboxGradientBuilding\n",{"type":484,"tag":492,"props":837,"children":839},{"class":165,"line":838},12,[840,845,849,853,858,864,869,875,880,886,891,897,902],{"type":484,"tag":492,"props":841,"children":842},{"style":734},[843],{"type":489,"value":844},"      :stops",{"type":484,"tag":492,"props":846,"children":847},{"style":701},[848],{"type":489,"value":742},{"type":484,"tag":492,"props":850,"children":851},{"style":701},[852],{"type":489,"value":747},{"type":484,"tag":492,"props":854,"children":855},{"style":750},[856],{"type":489,"value":857},"[[0, '",{"type":484,"tag":492,"props":859,"children":861},{"style":860},"background-color:#1e3a8a;color:#ffffff;display:inline-block;padding:0 0.15em;margin:0 -0.15em;border-radius:0.2em",[862],{"type":489,"value":863},"#1e3a8a",{"type":484,"tag":492,"props":865,"children":866},{"style":750},[867],{"type":489,"value":868},"'], [80, '",{"type":484,"tag":492,"props":870,"children":872},{"style":871},"background-color:#0ea5e9;color:#ffffff;display:inline-block;padding:0 0.15em;margin:0 -0.15em;border-radius:0.2em",[873],{"type":489,"value":874},"#0ea5e9",{"type":484,"tag":492,"props":876,"children":877},{"style":750},[878],{"type":489,"value":879},"'], [200, '",{"type":484,"tag":492,"props":881,"children":883},{"style":882},"background-color:#f59e0b;color:#ffffff;display:inline-block;padding:0 0.15em;margin:0 -0.15em;border-radius:0.2em",[884],{"type":489,"value":885},"#f59e0b",{"type":484,"tag":492,"props":887,"children":888},{"style":750},[889],{"type":489,"value":890},"'], [400, '",{"type":484,"tag":492,"props":892,"children":894},{"style":893},"background-color:#f43f5e;color:#000000;display:inline-block;padding:0 0.15em;margin:0 -0.15em;border-radius:0.2em",[895],{"type":489,"value":896},"#f43f5e",{"type":484,"tag":492,"props":898,"children":899},{"style":750},[900],{"type":489,"value":901},"']]",{"type":484,"tag":492,"props":903,"children":904},{"style":701},[905],{"type":489,"value":812},{"type":484,"tag":492,"props":907,"children":909},{"class":165,"line":908},13,[910,915,919,923,928],{"type":484,"tag":492,"props":911,"children":912},{"style":734},[913],{"type":489,"value":914},"      :opacity",{"type":484,"tag":492,"props":916,"children":917},{"style":701},[918],{"type":489,"value":742},{"type":484,"tag":492,"props":920,"children":921},{"style":701},[922],{"type":489,"value":747},{"type":484,"tag":492,"props":924,"children":925},{"style":750},[926],{"type":489,"value":927},"0.9",{"type":484,"tag":492,"props":929,"children":930},{"style":701},[931],{"type":489,"value":812},{"type":484,"tag":492,"props":933,"children":935},{"class":165,"line":934},14,[936],{"type":484,"tag":492,"props":937,"children":938},{"style":701},[939],{"type":489,"value":940},"    \u002F>\n",{"type":484,"tag":492,"props":942,"children":944},{"class":165,"line":943},15,[945,950,954],{"type":484,"tag":492,"props":946,"children":947},{"style":701},[948],{"type":489,"value":949},"  \u003C\u002F",{"type":484,"tag":492,"props":951,"children":952},{"style":707},[953],{"type":489,"value":64},{"type":484,"tag":492,"props":955,"children":956},{"style":701},[957],{"type":489,"value":714},{"type":484,"tag":492,"props":959,"children":961},{"class":165,"line":960},16,[962,967,971],{"type":484,"tag":492,"props":963,"children":964},{"style":701},[965],{"type":489,"value":966},"\u003C\u002F",{"type":484,"tag":492,"props":968,"children":969},{"style":707},[970],{"type":489,"value":514},{"type":484,"tag":492,"props":972,"children":973},{"style":701},[974],{"type":489,"value":714},{"type":484,"tag":976,"props":977,"children":978},"style",{},[979],{"type":489,"value":980},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":501,"searchDepth":670,"depth":670,"links":982},[],1781668172442]