Appearance
引擎选型(OpenLayers / MapLibre)
GeoVerse 的基础层是两个相互独立的核心包,共享同一套 API 心智,按渲染引擎二选一:
| 核心包 | 渲染引擎 | UMD 全局名 | peerDependency |
|---|---|---|---|
@geoverse/core-ol | OpenLayers 10+ | GeoVerse | ol |
@geoverse/core-libre | MapLibre GL JS 5 | GeoVerseLibre | maplibre-gl |
两者导出同名的核心类(GMap / Marker / Circle / Polygon / Polyline / GVectorLayer / InfoWindow …),构造参数与方法尽量对齐,使用者侧坐标契约一律 WGS-84 经纬度。换引擎主要是换 import 与底图代号,业务写法基本不变。
想用一套 API 在两引擎间运行时切换,而非各自直接用核心包?见统一门面
geoverse——createMap({ engine })+geoverse/ol、geoverse/libre子路径。ℹ️ 包名变更:OpenLayers 核心原名
geoverse,现为@geoverse/core-ol;geoverse包名现由统一门面占用。
共同点
- 国内坐标系无偏移:高德 GCJ-02、天地图(CGCS2000≈WGS-84)开箱即用。
- WGS-84 统一契约:要素、相机、事件、弹窗的经纬度入/出参全为 WGS-84,内部自动按底图基准面变换。
- ESM 优先 + 混淆 UMD 双轨交付、完整 d.ts、SSR 安全(模块顶层零副作用)。
- 要素编辑通过同一个引擎无关的
@geoverse/editor-core接入(OL 用editor-ol,MapLibre 用editor-libre)。 - 框架组件
@geoverse/vue/@geoverse/react目前封装 OpenLayers 核心。
差异速查
| 维度 | OpenLayers 版 @geoverse/core-ol | MapLibre 版 @geoverse/core-libre |
|---|---|---|
| 渲染 | Canvas 2D(栅格/矢量) | WebGL(GPU,矢量切片、倾斜/旋转) |
| 自定义投影 | ✅ 可注册 GCJ-02 / BD-09 / EPSG:3395 等并重投影瓦片 | ❌ 仅 Web Mercator;以「数据边界变换」对齐国内坐标 |
| 百度 BD-09 | ✅ 原生瓦片源开箱即用 | 🧪 瓦片纠偏 warp + 同源代理(无 CORS/防盗链) |
| 栅格服务 | ✅ 丰富:XYZ / WMS / WMTS / ArcGIS / 超图 iServer | XYZ 栅格 + 矢量切片(vector tiles) |
| 矢量切片底图 | 一般(需扩展) | ✅ 原生强项(OpenFreeMap 等免 key style) |
| 内置图层种类 | 热力 / 海量点 / 聚合 / 路况 / 自定义底图 / ECharts… | 矢量要素 / 矢量切片(MVP 范围,其余延后) |
| 交互工具 | 测量 / 绘制 / 鹰眼 / 轨迹回放等内置 | 以编辑器三包提供编辑;测量/绘制延后 |
| 框架组件 | ✅ Vue / React 官方绑定 | 暂无(可直接用核心类) |
该选哪个
选 OpenLayers 版 @geoverse/core-ol —— 当你需要:
- 开箱即用的百度底图(不想自建瓦片代理);
- 丰富的栅格服务(WMS/WMTS/ArcGIS/超图)或自定义投影/瓦片网格;
- 内置的热力/海量点/聚合/路况/轨迹回放等业务图层与交互;
- 现成的 Vue / React 组件;或已有大量 OpenLayers 代码。
选 MapLibre 版 @geoverse/core-libre —— 当你需要:
- 矢量切片底图、WebGL 渲染、3D/倾斜/旋转,或要接 MapLibre 生态插件;
- 数据以 WGS-84 为主,叠加标准底图或高德(GCJ-02)/天地图国内底图;
- 更轻的渲染管线与 GPU 大数据量表现。
能否共存
两包互不依赖、可同时安装(各自的核心类不冲突,引擎实例独立)。常见做法是按页面/模块选用其一;除非有特殊需求,同一张地图只用一个引擎。
