快速开始

为 React 设计的复制粘贴式地图组件。

mapcn 提供了精美设计、可访问且可定制的地图组件。基于MapLibre GL 构建, 使用 Tailwind CSS 样式, 并专为与 shadcn/ui 协作而设计。

设计哲学

mapcn 遵循 shadcn 的地图模式:复制粘贴你拥有的组件,零锁定,合理的默认值开箱即用。

地图通常被视为隐藏在包装库和配置繁重的 SDK 后面的黑盒。mapcn 采取不同的方法—— 它贴近 MapLibre,保持 API 熟悉感,并让你在需要更多控制时直接访问原始地图实例。

目标很简单:让地图感觉像你的 UI 技术栈的其余部分——可组合、可主题化、可访问, 并且易于使用 Tailwind 和 shadcn 模式进行自定义。

为什么选择 mapcn?

大多数 React 地图方案要么过于臃肿,要么限制太多。mapcn 为希望快速交付且不放弃控制力的团队而生:

  • 拥有你的代码 — 将组件复制到项目中,完全自定义一切。
  • 快速启动 — 运行一条命令,使用生产就绪的默认值渲染你的第一张地图。
  • 安全扩展 — 直接基于 MapLibre 构建,需要时可下沉到原始 API。
  • 设计系统友好 — 使用 Tailwind 样式,自然融入 shadcn/ui 模式。

兼容任意地图样式

mapcn 支持所有 MapLibre 兼容的瓦片, 这意味着你可以使用几乎任何提供商的瓦片:

  • OpenStreetMap — 社区驱动的开源地图数据
  • CARTO — 简洁的底图,适合数据可视化
  • MapTiler — 精美的矢量瓦片,支持广泛自定义
  • Stadia Maps — 快速可靠的瓦片托管,多种风格
  • Thunderforest — 专为户外、骑行和交通设计的地图
  • 以及任何支持 MapLibre 样式规范的提供商

核心特性

零配置

使用免费地图瓦片开箱即用,无需 API 密钥。

主题感知

自动在浅色和深色地图样式之间切换。

可组合

使用简单、可组合的组件构建复杂 UI。

TypeScript

全面的 TypeScript 支持提供完整的类型安全。

复制粘贴

拥有你的代码。没有依赖,只需复制到项目中。

任意地图样式

使用任何 MapLibre 兼容的瓦片:MapTiler、CARTO、OpenStreetMap 等。

下一步

安装指南

开始安装