更新记录
1.0.0(2026-07-19)
- 首发:离线 GeoJSON 地图可视化(M2 原生绑定层 桥接)。
- 自研核心 30 单测绿、自研 无额外系统依赖;原生绑定层 生成 Kotlin/Swift 绑定、桥接(types.uts 拆分避 overload panic + 顶层工厂避构造重载歧义)。
平台兼容性
uni-app x(5.14)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 5.0 | 12 | × | × |
nex-geomap 离线地图可视化
自研离线地图渲染核心:离线渲染 GeoJSON 地图:省市 choropleth 分级填色 + 气泡叠加 + 区域点击命中,投影(Albers 等积 / Web Mercator)+ 坐标系互转(WGS84/GCJ02/BD09)全在原生层,不依赖在线瓦片 / 地图 SDK。提供 uni-app x 可调的对象型 API。
API
对象型 GeoMap(new GeoMap(width, height) 建一次,之后载底图/配置/出图/命中):
| 方法 | 说明 |
|---|---|
new GeoMap(width, height) |
建 w×h 地图(像素;默认 Albers 等积投影、空底图) |
loadGeojson(json, coordSys) |
载 GeoJSON 底图。coordSys: 'wgs84'/'gcj02'/'bd09'(非 WGS84 转到 WGS84) |
setOption(json) |
声明式配置 {projection, choropleth:{values,ramp,min,max}, bubbles:[{lon,lat,value}]}(均可选) |
renderToFile(path) |
渲染 PNG 写文件,返回 {width,height,sizeBytes} |
renderBase64() |
渲染 PNG → base64(小图/H5;大图用 renderToFile) |
hitAt(px, py) |
屏幕点命中区域 → JSON {"kind":"area","index","name","adcode"}(无命中 null) |
toScreen(lon, lat) |
经纬度 → 屏幕像素 [x, y] |
regionCount() |
已载入区域数 |
geomapVersion() |
核心版本号(自由函数) |
示例
import { GeoMap } from '@/uni_modules/nex-geomap'
const map = new GeoMap(390, 560)
map.loadGeojson(chinaProvinceGeoJson, 'wgs84')
map.setOption('{"projection":"albers","choropleth":{"values":{"110000":80,"120000":40},"min":0,"max":100}}')
const r = map.renderToFile('_doc/map.png') // {width,height,sizeBytes}
// 手势命中(把 clientX/clientY 相对画布的坐标传进来):
const hit = map.hitAt(px, py) // '{"kind":"area","name":"北京市","adcode":"110000"}' | null
平台与验证状态
- 仅 App 端(Android / iOS);GeoJSON 底图由调用方提供(阿里 DataV / 天地图等开源省市边界)。
- v1 已达:自研核心 30 单测绿(投影权威不变式 / GeoJSON 解析 / 视口拟合 / choropleth 渲染+气泡 / 命中含内环挖洞 / 坐标转换差分核对 / 对象 API),自研,无额外系统依赖;原生绑定层 绑定生成干净。
- 后续版本(gated):原生手势视图(pan/zoom + 省→市下钻)、H5、内置省级底图、热力/迁徙线图层、真机 L6。桥接 cli
--compile/ build / 真机需宿主 HBuilderX(见docs/roadmap/HANDOFF-2026-07-16-geomap-m2-bridge-host-verify.md)。

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 1178
赞赏 0
下载 12438998
赞赏 1934
赞赏
京公网安备:11010802035340号