GeoJSON 实战:JSON 中的地图和地理空间数据

geojsonjsongismapping

GeoJSON 是使用 JSON 编码地理数据结构的标准格式。它被地图库、GIS 工具和基于位置的服务广泛使用。

GeoJSON 结构

每个 GeoJSON 对象都有 type 属性:

{

"type": "Feature",

"geometry": {

"type": "Point",

"coordinates": [116.4074, 39.9042]

},

"properties": {

"name": "天安门",

"city": "北京"

}

}

几何类型

GeoJSON 支持七种几何类型:

Point — 单个位置:

{ "type": "Point", "coordinates": [102.0, 0.5] }

LineString — 点之间的路径:

{ "type": "LineString", "coordinates": [[102.0, 0.0], [103.0, 1.0]] }

Polygon — 有边界的区域:

{

"type": "Polygon",

"coordinates": [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]]]

}

其他类型:MultiPoint、MultiLineString、MultiPolygon、GeometryCollection。

要素集合

组合多个要素:

{

"type": "FeatureCollection",

"features": [...]

}

坐标顺序

GeoJSON 使用 [经度, 纬度](x, y)顺序,而非 [纬度, 经度]。这是常见的错误来源。

热门库

  • Mapbox GL JS — 使用 GeoJSON 的交互式地图
  • Leaflet — 轻量级地图库
  • Turf.js — JavaScript 地理空间分析
  • 技巧

  • 如果不使用默认 WGS84,使用 "crs" 属性
  • 坐标精度保持 6 位小数(约 0.1m 精度)
  • 生产使用前验证 GeoJSON
  • 多个几何体使用 FeatureCollection
  • 使用我们的 JSON 验证器 验证 GeoJSON,使用 JSON 查看器 探索结构。

    相关工具