GIS工具箱
在线查看

GeoJSON 格式详解与在线可视化指南

GeoJSON 数据结构、几何类型、属性表,以及如何在线查看与验证。

GeoJSON可视化属性表

GeoJSON 格式简介

GeoJSON 是一种基于 JSON 的地理空间数据交换格式,于 2016 年正式成为 RFC 7946 标准。它以纯文本方式描述地理要素的几何形状与属性信息,具有结构清晰、易于解析、跨平台兼容的特点,已成为 Web 地图领域最主流的数据格式之一。

无论是点状的兴趣点、线状的道路网络,还是面状的行政区划,GeoJSON 都能用统一的 JSON 结构来表达,非常适合在前后端之间传递地理数据。

核心结构

GeoJSON 的顶层结构通常是 FeatureCollection,它包含一个 Feature 数组。每个 Feature 代表一个地理要素,由 geometry(几何)和 properties(属性)两部分组成:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [116.404, 39.915]
      },
      "properties": {
        "name": "天安门",
        "city": "北京"
      }
    }
  ]
}

这种嵌套结构清晰地分离了几何信息与业务属性,便于程序解析与处理。

几何类型

GeoJSON 支持以下七种几何类型,覆盖了常见的地理要素表达需求:

  1. Point(点):单个坐标位置,如兴趣点、标注点
  2. MultiPoint(多点):多个点坐标的集合
  3. LineString(线):由两个或更多点组成的线段
  4. MultiLineString(多线):多条线段的集合,如公交线路网
  5. Polygon(面):封闭的多边形区域,首尾坐标必须一致
  6. MultiPolygon(多面):多个多边形的集合,如群岛或飞地
  7. GeometryCollection(几何集合):混合多种几何类型的组合

其中,Polygon 和 MultiPolygon 支持洞(hole)的定义:外环表示边界,内环表示挖空区域,常用于表示带内部空隙的地块。

坐标格式

GeoJSON 中的坐标统一采用数组形式表示:

  • 二维坐标:[经度, 纬度]
  • 三维坐标:[经度, 纬度, 高程]
注意,GeoJSON 规范明确规定坐标顺序为**经度在前、纬度在后**。这与部分传统 GIS 软件(如 Shapefile)的纬度在前习惯不同,在数据转换时需特别留意。

不同几何类型的坐标嵌套层级如下:

Point:              [lng, lat]
LineString:         [[lng, lat], [lng, lat], ...]
Polygon:            [[[lng, lat], [lng, lat], ...]]
MultiPolygon:       [[[[lng, lat], [lng, lat], ...]]]

层数组嵌套的深度反映了几何类型的复杂度,这是 GeoJSON 解析时需要正确处理的关键点。

properties 属性

每个 Feature 的 properties 字段是一个 JSON 对象,用于存储与该要素关联的自定义属性数据。属性值可以是字符串、数字、布尔值甚至嵌套对象,完全由数据生产者定义:

"properties": {
  "name": "北京市",
  "population": 21710000,
  "area_code": "010",
  "is_capital": true
}

properties 的灵活性使 GeoJSON 既能承载几何信息,又能携带丰富的业务数据,这也是它广受欢迎的重要原因之一。

在线可视化原理

GeoJSON 在线查看器的可视化流程通常包含以下几个步骤:

  1. 解析 GeoJSON:校验 JSON 格式合法性,解析出 FeatureCollection 结构
  2. 提取几何:遍历每个 Feature,根据 geometry.type 获取对应的坐标数据
  3. 地图渲染:将几何要素绘制到地图底图上,不同类型采用不同样式
  4. 生成属性表:汇总所有 Feature 的 properties,以表格形式展示

渲染时,Point 通常以圆点或图标表示,LineString 以线条绘制,Polygon 以半透明填充加边界线呈现。通过不同颜色和样式区分各类要素,使数据直观可读。

常见问题

使用 GeoJSON 时,以下几类问题较为常见:

  • 坐标系偏移:GeoJSON 默认使用 WGS84 坐标系,若数据实际为 GCJ02 或 BD09,直接叠加到 WGS84 底图上会出现偏移。解决方案是先进行坐标转换再渲染
  • 几何无效:多边形未闭合(首尾坐标不一致)、坐标数组嵌套层级错误等,会导致渲染异常或解析失败
  • JSON 格式错误:多余的逗号、缺少引号、中文标点混入等,都会使 JSON 解析器报错。建议使用 JSON 校验工具预先检查
在国内使用 GeoJSON 时,坐标系偏移是最容易被忽视的问题。务必明确数据的坐标基准,必要时进行 WGS84 与 GCJ02 的转换。

如需在线查看和验证 GeoJSON 数据,可以使用 GeoJSON 在线查看器,支持几何渲染与属性表展示,帮助您快速检查数据质量。

本文涉及的工具

打开工具 →

相关文章