组件/Maps 地图

Maps 地图

GeoJSON 地图:气泡图与分级填色图,Mercator 默认投影,缩放平移。

Verified自 0.1.0

Maps 地图

基础用法

两个地图组件都吃一份 FeatureCollection GeoJSON(包不内置地理数据,调用方自带),默认投影是纬度钳制在 ±85.05° 的 Mercator,显示窗裁掉两极空白让陆地铺满容器。容器高度默认按投影窗口的宽高比自适应,传 height 可固定像素高。数据用 accessor 模式取值:key 或 (row) => value 都行。

气泡图

BubbleMap + roam

气泡面积正比于值;开了 roam 可滚轮缩放、拖拽平移。

示例加载中...

分级填色图

ChoroplethMap + 图例

连续色阶按值插值;无数据地区保持陆地底色。

示例加载中...

投影与缩放

projection 接 d3-geo 投影实例(如 geoNaturalEarth1()),null 退化为裸经纬度(equirectangular)。实例会被原地 fitExtent,务必传稳定引用。zoom(默认 1.25)是自适应缩放的倍率;roam 开启滚轮缩放 + 拖拽平移,缩放范围被限制在 [min(1, zoom), zoom × 8],气泡与描边在缩放下保持恒定像素尺寸。

分级色阶

分级填色是连续插值:值归一化后落在 --tx-chart-map-scale-1..5 相邻两档之间,用 CSS color-mix(in oklab, …) 混合——明暗主题切换时色阶自动翻转,JS 不做任何颜色解析。colorRange 可换整套色阶,min/max 可固定标尺范围。

API

共同 Props(两个组件)

属性名类型默认值说明
geoJsonMapGeoJsonFeatureCollection,调用方提供。
center[lng, lat]自适应地图中心。
zoomnumber1.25自适应缩放倍率。
roambooleanfalse滚轮缩放 + 拖拽平移。
projectionGeoProjection | null钳制 Mercatord3-geo 投影;null 为裸经纬度。
showTooltipbooleantrue悬停提示框。
valueFormat(v: number) => stringtoLocaleString默认 tooltip 的数值格式。
aspectRationumber | string投影窗口比容器宽高比。
heightnumber固定像素高,优先于 aspectRatio
widthnumber容器实测显式宽度(SSR/测试用)。

BubbleMap 专有

属性名类型默认值说明
data / lng / lat / value / name?accessor数据行与取值器。
minRadius / maxRadiusnumber6 / 26气泡半径区间(面积正比于值,sqrt 缩放)。
bubbleSize(v: number) => number显式半径,覆盖 min/max 缩放。
bubbleColorMapStyle<T, string>图表蓝常量或 (row) => color
bubbleBorderColor / bubbleBorderWidthMapStyle'transparent' / 0描边。

BubbleMap 事件:bubble-hover(row \| undefined)bubble-click(row);插槽 tooltip(作用域 { row })。

ChoroplethMap 专有

属性名类型默认值说明
data / name / valueaccessor数据行;name 与 feature 的 nameProperty 连接。
namePropertystring'name'连接用的 feature 属性;真实数据常用 ISO 码更稳。
colorRangestring[]主题色阶低→高的连续色阶。
min / maxnumber数据极值标尺范围。
noDataColorstring陆地底色无匹配数据的地区填充。
showLegendbooleanfalse渐变图例条。

ChoroplethMap 事件:region-hover(row \| undefined)region-click(row)(都只对有数据的地区触发);插槽 tooltip(作用域 { row, regionName, value })。

与 kumo 的差异

  • projection 直接接 d3-geo 实例(kumo 是 { project, unproject } 包装给 echarts 用);null 实现为 equirectangular。
  • 缩放实现为 SVG transform,气泡/描边按缩放系数反缩,视觉尺寸恒定。
  • tooltipFormatter(HTML 字符串)→ tooltip 插槽。