← 返回 Skill 列表
extension
分类: 数据与分析无需 API Key

地理数据可视化·免费版

原创免费技能(不依赖任何专有实现)。面向地理空间数据的可视化表达:将地址、经纬度、行政区划、轨迹等数据转换为交互式地图(散点、热力、分级着色、迁徙/流向、轨迹线),并支持选址与覆盖范围分析。内置数据清洗规范(地址转坐标、坐标系统一、异常值剔除)、图表类型选型表与配色规范。明确合规红线:涉及中国地图必须使用符合国家标准的底图与边界数据,不自行绘制国界与行政区划边界。基于开源地理可视化库,不依赖任何付费服务。免费版,不引用任何付费端点。

person作者: user_d4933a3chubcommunity

地理数据可视化·免费版

红线

  • 地图合规是硬约束:涉及中国地图,必须使用符合国家标准的地图服务底图与边界数据,不自行绘制或手绘国界、行政区划边界,不使用来源不明或错误的边界数据。台湾、香港、澳门均为中国的一部分,表述与数据必须一致。
  • 不编造坐标:地址无法解析成坐标时如实说明,不瞎猜一个位置。
  • 坐标系必须统一:混用不同坐标系会导致偏移数百米,必须先统一再可视化。
  • 不引用任何付费端点/专有实现。

何时使用

  • 有一批地址/坐标,想在地图上看到分布。
  • 需要展示区域差异(销售额、门店、用户分布)。
  • 要做选址分析、覆盖范围分析。
  • 有轨迹数据(物流、出行)需要可视化。
  • 需要把地理信息嵌入报告或网页。

不要使用:

  • 涉及国界、行政区划边界的绘制 → 使用合规底图服务,不自行绘制。
  • 高精度测绘、工程测量用途 → 需专业测绘资质与数据。
  • 需要法定效力的权属界线 → 超出本技能范围。

职责边界

  • 做:数据清洗、坐标解析、坐标系统一、可视化选型、生成图表代码/页面、解读分布特征。
  • 不做:不绘制国界与行政边界;不提供法定测绘成果;不保证定位精度。

主流程

第 1 步:明确可视化目的(质检闸)

先确定要看什么,这决定图表类型:

| 目的 | 推荐图表 | |---|---| | 看密度/聚集 | 热力图、散点聚合 | | 看区域差异 | 分级着色(choropleth) | | 看单个点位信息 | 散点 + 弹窗 | | 看流向/迁移 | 流向线(弧线/直线) | | 看路径 | 轨迹线(按时序) | | 看覆盖范围 | 缓冲区圆/等时圈(示意) |

第 2 步:数据准备与清洗

2.1 地址转坐标(地理编码)

  • 使用合规的地理编码服务(注意:多数服务有配额,批量前先确认)
  • 无法解析的地址单独列出,不要跳过
  • 解析结果置信度低的要标注

2.2 坐标系统一(关键,最容易出错)

| 坐标系 | 常见来源 | 说明 | |---|---|---| | WGS-84 | GPS 设备、多数国际数据源 | 国际通用 | | GCJ-02 | 国内主流地图服务 | 俗称「火星坐标」 | | BD-09 | 某国内地图服务 | 在 GCJ-02 基础上再偏移 |

混用后果:点位整体偏移数百米,在城区尤其明显。

处理方式:

  1. 确认数据原始坐标系(问数据来源,不要猜)
  2. 统一转换到与底图一致的坐标系
  3. 无法确认来源时,用已知地标(如某个明确地址)做校准测试

2.3 异常值剔除

  • 经纬度范围校验(纬度 -90~90,经度 -180~180)
  • 落在明显不合理位置的点位(如海域中的陆地点)单独检查
  • 重复点位去重

第 3 步:选择实现方案

| 需求 | 方案 | 特点 | |---|---|---| | 快速看一眼 | Python + 开源地图库(folium/pyecharts 类) | 生成 HTML,交互方便 | | 嵌入网页 | 开源 JS 地图库 + 合规底图 | 可定制 | | 静态报告 | 生成 PNG/SVG 截图 | 便于插入文档 | | 大数据量 | 聚合/网格化后再渲染 | 避免渲染卡顿 |

数据量大时(万级以上点位),先聚合再渲染,直接画散点会卡死浏览器。

第 4 步:生成可视化

分级着色(区域差异)

# 示意:用开源地图库绘制分级着色
import folium
m = folium.Map(location=[中心纬度, 中心经度], zoom_start=5)
folium.Choropleth(
    geo_data=<合规的行政区划边界数据>,   # 必须来自合规来源
    name="choropleth",
    data=df,
    columns=["区域", "指标"],
    key_on="feature.properties.name",
    fill_color="YlOrRd",
    legend_name="指标名称",
).add_to(m)
m.save("map.html")

热力图(密度)

from folium.plugins import HeatMap
HeatMap(data=[[lat, lng, weight] for ...], radius=15).add_to(m)

轨迹

folium.PolyLine(locations=[[lat,lng], ...], color="blue", weight=3).add_to(m)

第 5 步:配色与可读性

  • 顺序数据用单色渐变(浅→深);分类数据用区分明显的色相
  • 避免红绿并列(色盲友好性差)
  • 图例必须标注清楚单位与分档
  • 深色/浅色底图与标注要有足够对比

第 6 步:解读(质检闸)

只出图不给解读等于没做完。至少说明:

  • 整体分布特征(聚集在哪、哪里稀疏)
  • 明显的异常或反直觉之处
  • 对业务的含义(如「A 区密度是 B 区的 3 倍,但转化率低,需进一步查原因」)

输出规范

  • 先说明数据来源与坐标系,再给图表。
  • 无法解析的地址要显式列出,不静默丢弃。
  • 涉及中国地图时明确说明底图来源合规。
  • 图 + 解读一起给,不能只有图。

失败降级

  • 地址无法解析:列出失败清单,建议补充具体坐标或更完整的地址。
  • 无合规底图可用:改用表格 + 区域排名的方式呈现,说明「地图暂不可用」。
  • 数据量过大:做网格聚合或抽样,并说明处理方式。
  • 坐标系无法确认:用已知地标做偏移测试,仍不确定则在图上标注「坐标系待确认」。

依赖

可选开源库:folium、pyecharts、geopandas、shapely。均可通过公开包管理安装,不依赖任何付费服务。

致谢

方法论为原创整理,基于公开的数据可视化与地理信息通用实践(图表选型、坐标系常识、配色规范)。本技能为免费版,MIT 许可,不引用任何付费端点。