Skip to content

ch-0014 Chapter 13: Transform Your Map Data

  • 原书章节: Chapter 13 Transform Your Map Data(pp. 357–392)
  • 输入来源: 本地 pdf(HandsOnDataViz.pdf)

摘要

做定制地图离不开地理空间数据。本章深入 GeoJSON 等格式,并介绍一套免费网页工具链, 在很多场景替代昂贵的 ArcGIS / 开源的 QGIS 桌面 GIS。

  • 地理空间数据基础:raster(栅格,如卫星影像)vs vector(矢量,点/线/面); GeoJSON 是本书主推的开放标准矢量格式(基于 JSON),坐标顺序是 longitude, latitude (经度在前!)——这是最常见的坑
  • 其他格式:GPX(GPS 轨迹)、KML(Google Earth/2000 年代流行)、MapInfo TAB、 Shapefile 等,都可能需要转成 GeoJSON
  • 找边界数据:从 OpenStreetMap(众包平台)下载 GeoJSON 边界文件(如城市、区域边界)
  • 转换与绘制:geojson.io——导入 KML/GPX/TopoJSON 转成 GeoJSON、绘制新要素并加属性 (name 等)
  • 编辑与连接:Mapshaper——无绘图工具,但能按属性连接(join)表格数据到图层、 简化几何、导出
  • 地理配准(georeference):Map Warper——把历史静态地图图像配准到现代坐标,产出 可叠加的瓦片层
  • 批量地理编码:US Census Geocoder 可免费批量处理美国地址;把逐点数据透视(pivot) 成按区域(州/县/邮编)统计的多边形,用于 choropleth

要点归纳

  • GeoJSON 是"地图数据的开放标准",全章围绕它组织:找 → 转 → 画 → 连 → 配准 → 批量编码
  • 坐标顺序经度在前(lon, lat),与直觉相反,出错率极高
  • 矢量 vs 栅格决定数据能否缩放与编辑;本书聚焦矢量
  • 工具分工:geojson.io(转换+绘制)→ Mapshaper(连接表格+简化)→ Map Warper (历史图配准)→ US Census(批量编码)→ 透视表 pivot 成多边形
  • 这批免费网页工具明显降低了 GIS 门槛

术语 / 概念

  • GeoJSON — 基于 JSON 的开放标准矢量地理格式(Point / LineString / Polygon 等)
  • raster / vector(栅格 / 矢量) — 像素图像 vs 可编辑的几何对象
  • GPX / KML / Shapefile / MapInfo TAB — 其他常见地理格式(GPS 轨迹 / Google 系 / Esri 系 / MapInfo 专有)
  • OpenStreetMap(OSM) — 众包地图平台,可导出边界等矢量数据
  • geojson.io — 在线查看/转换/绘制 GeoJSON 的免费工具
  • Mapshaper — 在线简化几何、按属性连接表格到图层的工具
  • Map Warper — 把静态历史地图 georeference 成可叠加瓦片
  • georeference(地理配准) — 给图像指定地理坐标使其可叠加到现代地图
  • pivot(透视) — 把点级数据按区域聚合,供 choropleth 使用

原句摘录

In GeoJSON format, coordinates are ordered in longitude-latitude [order].

All of these free, web-based geodata tools are easy to learn, and in many cases they replace the need for more costly or complex geographic information systems, such as the proprietary ArcGIS and the open-source QGIS desktop applications.

疑问 / 待查

  • 投影(projection)概念在 ch-0015 的 spatial bias 中还会出现(投影偏差)
  • 中国区域地图数据(天地图等)与本书 OSM 工作流的差异,属本地化待查项
Backlinks (1)
flowchart LR
  n0["ch-0001 Introduction(为什么做数据可视化)"]
  n1["ch-0002 选工具讲你的数据故事(Ch 1)"]
  n2["ch-0003 强化电子表格技能(Ch 2)"]
  n3["ch-0004 找到并质询你的数据(Ch 3)"]
  n4["ch-0005 清洗脏数据(Ch 4)"]
  n5["ch-0006 做有意义的比较(Ch 5)"]
  n6["ch-0007 图表化你的数据(Ch 6)"]
  n7["ch-0008 地图化你的数据(Ch 7)"]
  n8["ch-0009 表格化你的数据(Ch 8)"]
  n9["ch-0010 嵌入网页(Ch 9)"]
  n10["ch-0011 用 GitHub 编辑与托管代码(Ch 10)"]
  n11["ch-0012 Chart.js 与 Highcharts 模板(Ch 11)"]
  n12["ch-0013 Leaflet 地图模板(Ch 12)"]
  n13["ch-0014 转换你的地图数据(Ch 13)"]
  n14["ch-0015 识别谎言、减少偏差(Ch 14)"]
  n15["ch-0016 讲述并展示你的数据故事(Ch 15)"]
  n16["ch-0017 附录 A 排查常见问题"]
  n17["Hands-On Data Visualization(整理完成)"]
  n18["Hands-On Data Visualization 笔记"]
  n19["Reading"]
  n17 --> n0
  n17 --> n1
  n17 --> n2
  n17 --> n3
  n17 --> n4
  n17 --> n5
  n17 --> n6
  n17 --> n7
  n17 --> n8
  n17 --> n9
  n17 --> n10
  n17 --> n11
  n17 --> n12
  n17 --> n13
  n17 --> n14
  n17 --> n15
  n17 --> n16
  n17 --> n18
  n19 --> n17
  click n0 "../ch-0001/" "ch-0001 Introduction(为什么做数据可视化)"
  click n1 "../ch-0002/" "ch-0002 选工具讲你的数据故事(Ch 1)"
  click n2 "../ch-0003/" "ch-0003 强化电子表格技能(Ch 2)"
  click n3 "../ch-0004/" "ch-0004 找到并质询你的数据(Ch 3)"
  click n4 "../ch-0005/" "ch-0005 清洗脏数据(Ch 4)"
  click n5 "../ch-0006/" "ch-0006 做有意义的比较(Ch 5)"
  click n6 "../ch-0007/" "ch-0007 图表化你的数据(Ch 6)"
  click n7 "../ch-0008/" "ch-0008 地图化你的数据(Ch 7)"
  click n8 "../ch-0009/" "ch-0009 表格化你的数据(Ch 8)"
  click n9 "../ch-0010/" "ch-0010 嵌入网页(Ch 9)"
  click n10 "../ch-0011/" "ch-0011 用 GitHub 编辑与托管代码(Ch 10)"
  click n11 "../ch-0012/" "ch-0012 Chart.js 与 Highcharts 模板(Ch 11)"
  click n12 "../ch-0013/" "ch-0013 Leaflet 地图模板(Ch 12)"
  click n13 "./" "ch-0014 转换你的地图数据(Ch 13)"
  click n14 "../ch-0015/" "ch-0015 识别谎言、减少偏差(Ch 14)"
  click n15 "../ch-0016/" "ch-0016 讲述并展示你的数据故事(Ch 15)"
  click n16 "../ch-0017/" "ch-0017 附录 A 排查常见问题"
  click n17 "../" "Hands-On Data Visualization(整理完成)"
  click n18 "../notes/" "Hands-On Data Visualization 笔记"
  click n19 "../../" "Reading"