@djangocfg/widget-map

中文文档
0.1.36发布于 2026/11/11MITTypeScriptES Module近 30 天下载 4803

MapLibre GL上的交互式地图:标记、集群GeoJSON、层工厂、无密钥底图、地形、地理编码和计量

中文使用文档
文档目录7 节
  1. 安装
  2. 快开始
  3. 公共出口 - @djangocfg/widget-map
  4. 文档
  5. 两个条目
  6. 校验
  7. 相关

地图

交互式地图 @djangocfg/widget-map,在 地图Libre GL 通过 react-map-gl ——标记,集群的GeoJSON,弹出,层厂,免费的OpenFreeMap / PMTiles basemaps,运行时基图切换器,3D地形,地址/位置自动完成(geocoder),指南针,点击量度,可拖动标记,自定义标记图标,以及一个选入定位我(GPS)芯片,全部被放在一个小的提供商/康特表面后.

装舱警告. MapLibre GL为重(~800 KB gziped). 这个 @djangocfg/widget-map 条目已经是 懒惰 一个 - LazyMapContainer 将 MapLibre 块推迟到挂起 。 所有组件都是 'use client';从不在 Next.js 服务器上渲染出.

安装

pnpm add @djangocfg/widget-map @djangocfg/ui-core

快开始

import { LazyMapContainer, MapMarker } from '@djangocfg/widget-map';

<div className="h-96 rounded-xl overflow-hidden">
  <LazyMapContainer
    initialViewport={{ latitude: 25.08, longitude: 55.14, zoom: 13 }}
    mapStyle="light"
  >
    <MapMarker
      marker={{ id: 'home', latitude: 25.08, longitude: 55.14 }}
      color="#10b981"
      size={32}
    />
  </LazyMapContainer>
</div>

集装箱自行提供 MapProvider。使用兄弟会的地图上下文(例如按钮调用) flyTo,将你的树包入 <MapProvider> 提供 <MapView> 内在的 见 集装箱。 。 。 .

公共出口 - @djangocfg/widget-map

包子路径解决了懒惰入门. 它的表面:

构成部分 —— 说 LazyMapContainer, (中文(简体) ), LazyMapView (代码分割), MapView- 通过..MapContainer 类型,加上浅原始: MapMarker, (中文(简体) ), MapPopup, (中文(简体) ), MapCluster, (中文(简体) ), MapSource, (中文(简体) ), MapLayer, (中文(简体) ), MapControls, (中文(简体) ), CustomOverlay, (中文(简体) ), MapLegend, (中文(简体) ), LayerSwitcher, (中文(简体) ), MeasureControl, (中文(简体) ), DraggableMarkers, (中文(简体) ), GeocoderInput, (中文(简体) ), GeocoderControl, (中文(简体) ), CompassChip, (中文(简体) ), MarkerCard, (中文(简体) ), MapMarkers。 。 。 .

A. 背景情况 —— 说 MapProvider, (中文(简体) ), useMapContext, (中文(简体) ), MapContext。 。 。 .

样式 —— 说 MAP_STYLES, (中文(简体) ), getMapStyle, (中文(简体) ), MAP_STYLE_LABELS, (中文(简体) ), KEY_FREE_STYLES, (中文(简体) ), resolveBasemapOptions,以及自由地形 DEM 来源 TERRAIN_DEM 编号 : TERRAIN_DEM_URL。 。 。 .

导弹 —— 说 addPMTilesProtocol, (中文(简体) ), pmtilesSourceUrl (自发托管/离线基底图).

地理编码器 —— 说 photonResolve (默认无密钥光子解析器), cameraForResult (智能-zoom 帮助),和类型 GeocodeResult, (中文(简体) ), GeocodeKind, (中文(简体) ), ResolveGeocode。见 地理编码器。 。 。 .

类型 —— 说 MapContainerProps, (中文(简体) ), GeolocateOptions, (中文(简体) ), GeolocatePosition, (中文(简体) ), MapMarkerProps, (中文(简体) ), MapPopupProps, (中文(简体) ), MapClusterProps, (中文(简体) ), MapSourceProps, (中文(简体) ), MapLayerProps, (中文(简体) ), MapControlsProps, (中文(简体) ), MeasureControlProps, (中文(简体) ), DraggableMarkersProps, (中文(简体) ), DraggablePoint, (中文(简体) ), GeocoderInputProps, (中文(简体) ), GeocoderControlProps, (中文(简体) ), CompassChipProps, (中文(简体) ), MapProviderProps, (中文(简体) ), MapViewport, (中文(简体) ), MapStyleKey, (中文(简体) ), MarkerData,加上钩型 GeolocationFix, (中文(简体) ), GeolocationStatus, (中文(简体) ), UseGeolocationOptions, (中文(简体) ), UseGeolocationResult, (中文(简体) ), UseGeocoderOptions, (中文(简体) ), UseGeocoderResult, (中文(简体) ), UseCompassResult, (中文(简体) ), UseTerrainOptions, (中文(简体) ), UseMeasureResult, (中文(简体) ), MeasureMode, (中文(简体) ), MapImage, (中文(简体) ), UseMapImagesResult, (中文(简体) ), UseDraggableMarkersOptions, (中文(简体) ), UseDraggableMarkersResult, (中文(简体) ), DraggableMarkerHandlers,加上标记卡类型 MarkerCardProps, (中文(简体) ), MapMarkersProps, (中文(简体) ), MarkerWithCard, (中文(简体) ), MarkerCardInfo (卡片数据形状), MarkerCardAction, (中文(简体) ), MarkerCardData, (中文(简体) ), MarkerCardActionData, (中文(简体) ), UseMarkerCardResult。 。 。 .

钩子 —— 说 useMap, (中文(简体) ), useMapControl, (中文(简体) ), useMarkers, (中文(简体) ), useMapEvents, (中文(简体) ), useMapViewport, (中文(简体) ), useMapLayers, (中文(简体) ), useControl, (中文(简体) ), useSpiderfy (+ 数) UseSpiderfyOptions 编号 : UseSpiderfyResult 类型), useMarkerCard (单开标记卡选择状态),功能钩 useCompass, (中文(简体) ), useTerrain, (中文(简体) ), useMeasure, (中文(简体) ), useMapImages, (中文(简体) ), useDraggableMarkers, (中文(简体) ), useGeocoder和地图独立 useGeolocation (自定义“我在哪里”的浏览器位置;见 钩子) (中文(简体) ). useMapScrollProtection 编号 : useMapTouchMode 也出口——它们的力量 scrollProtection用来给你的.

层工厂 —— 说 createClusterLayers, (中文(简体) ), createPointLayer, (中文(简体) ), createHeatmapLayer, (中文(简体) ), createPolygonLayer, (中文(简体) ), createPolygonOutlineLayer, (中文(简体) ), createHighlightLayer, (中文(简体) ), createLineLayer, (中文(简体) ), createRouteLayers, (中文(简体) ), createDashedLineLayer, (中文(简体) ), createAnimatedLineLayer, (中文(简体) ), createSymbolLayer。 。 。 .

几何曲线 —— 说 calculateBounds, (中文(简体) ), calculateCenter, (中文(简体) ), calculateDistance, (中文(简体) ), isPointInBounds, (中文(简体) ), expandBounds, (中文(简体) ), toGeoJSON, (中文(简体) ), fromGeoJSON, (中文(简体) ), createPoint, (中文(简体) ), createPolygon, (中文(简体) ), createLineString, (中文(简体) ), createFeatureCollection。 。 。 .

蜘蛛鱼利用 —— 说 offsetOverlappingMarkers, (中文(简体) ), getSpiderfyPositions, (中文(简体) ), groupOverlappingMarkers, (中文(简体) ), hasOverlappingMarkers, (中文(简体) ), getOverlapStats。 。 。 .

文档

医生封面
集装箱MapContainer 编号 : MapView ——全道具,控制工具栏(搜索 地形 指南针 定位-我/GPS芯片),滚动保护与移动,全屏对话框.
基图.md地图样式 运行时基图切换器 OpenFreeMap 卫星/密钥 PMTiles 3D地形 (free DEM).
标记-poups.mdMapMarker, (中文(简体) ), MapPopup, (中文(简体) ), MapCluster,标记信息卡(MarkerCard 编号 : MapMarkers 编号 : useMarkerCard),可拖动标记,相重叠点/蛛网.
层.mdMapSource 编号 : MapLayer,分层工厂,自定义标记图标(符号层),几何功能.
地理编码器地址/地点自动完成 - GeocoderInput 编号 : GeocoderControl工具栏搜索芯片, photonResolve,智能缩放cameraForResult, (中文(简体) ), useGeocoder。 。 。 .
钩子( m)每钩取出一一譬.
高级CustomOverlay, (中文(简体) ), MapLegend, (中文(简体) ), LayerSwitcher, (中文(简体) ), MeasureControl抽取控制食谱 懒惰的装入 SSR.
故事内容童话故事列表.

两个条目

导入集装箱对于
@djangocfg/widget-map后面 React.lazy一切——这是默认的原因
@djangocfg/widget-map/eager静态边缘地图是页面,占位符读作闪光

eager 来源于根 (export * from './index' 加上静态 因此,两个表面不能漂移; src/entries.test.ts 走着走着 静态导入图, 并自控分割 .

在一个应用程序中导入两者都会使拆分失败 静态边缘拉起 MapLibre进入条目,不管其他一半做什么.

校验

pnpm --filter @djangocfg/widget-map check-types test

版本与发布记录

@djangocfg/widget-map 共发布 32 个版本,首次发布于 2026/09/09;过去 12 个月发布了 32 个版本。

版本发布日期距今
0.1.36latest2026/11/111 天前
0.1.352026/11/111 天前
0.1.342026/11/102 天前
0.1.332026/11/102 天前
0.1.322026/11/092 天前
0.1.312026/11/092 天前

关于 @djangocfg/widget-map 的常见问题

@djangocfg/widget-map 是什么?

MapLibre GL上的交互式地图:标记、集群GeoJSON、层工厂、无密钥底图、地形、地理编码和计量

如何安装 @djangocfg/widget-map?

在项目目录运行 npm install @djangocfg/widget-map,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^19.0.0)、react-dom(^19.0.0)、lucide-react(^1.68.0)、@djangocfg/ui-core(^2.1.648)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@djangocfg/widget-map 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@djangocfg/widget-map 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@djangocfg/widget-map 可以商用吗?

@djangocfg/widget-map 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@djangocfg/widget-map 的下载量有多少?

根据 npm 官方下载统计,@djangocfg/widget-map 在 2026/10/13 – 2026/11/11 这 30 天内被下载 4,803 次,日均约 160 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@djangocfg/widget-map 还在维护吗?

最新版本 0.1.36 发布于 2026/11/11(1 天前);至今共发布 32 个版本,其中过去 12 个月发布了 32 个;首次发布于 2026/09/09。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。