BaseToolbox LogoBaseToolbox
Blog

© 2025 基础工具箱。保留所有权利。

隐私政策关于联系我们

GeoJSON 边界范围不对?先检查坐标顺序和投影

发布于 2026年7月3日

GeoJSON 图层跑到海里、覆盖半个地球,或者完全看不到时,不要第一时间怀疑地图样式。很多问题都来自数据本身:bounds 异常、坐标顺序写反、投影不对,或者某一个离群点把范围拉大。

用浏览器本地的 GeoJSON 地球查看 先预览,可以在接入生产地图前看到 feature 数量、geometry 类型、坐标数量和大致边界范围。

先看 bounds

bounds 会概括数据里的最小和最大经纬度,是最快的 sanity check。

比如一个城市配送数据,理论上只应该覆盖一个城市。如果它的 bounds 覆盖了北美、欧洲和大海,大概率有问题。哪怕只有一个坏坐标,也可能把整体范围拉得很大,让正常要素看起来像消失了。

重点看:

  • 最小经度
  • 最大经度
  • 最小纬度
  • 最大纬度
  • 是否有坐标接近 0,0
  • 是否有值超出合法经纬度范围

常见地理经度范围是 -180 到 180,纬度范围是 -90 到 90。

检查坐标顺序

GeoJSON 的位置坐标是经度在前、纬度在后。官方标准 RFC 7946 以十进制度地理坐标描述 GeoJSON。Mapbox 的 GeoJSON glossary 也明确说明,第一个元素是 longitude,第二个元素是 latitude。

也就是说,纽约的位置应该这样写:

[-73.935242, 40.73061]

而不是这样:

[40.73061, -73.935242]

如果把顺序写反,点位可能跳到另一个大陆;如果纬度位置收到了超过 -90..90 的数字,还可能直接校验失败。

检查投影假设

GeoJSON 通常预期使用 WGS84 经纬度坐标。如果你的数据来自投影坐标系、CAD、本地网格或 Web Mercator 米制坐标,数字就不一定能直接当经纬度用。

投影问题常见表现包括:

  • 坐标值远大于 180 或 90。
  • 要素离预期国家很远。
  • fit bounds 后图层消失。
  • 所有点堆在奇怪位置。
  • 路线突然跨越整个世界。

如果坐标值看起来像米,而不是十进制度数,就要先做投影转换,再把它当普通 GeoJSON 预览。

找一个坏要素

不要一看到 bounds 异常就认为整个文件都错了。很多时候只有一个点、一个 feature 或一段导出数据异常。

可以按这个顺序缩小范围:

  1. 先预览一小段样本。
  2. 把文件按区域或 feature 分组。
  3. 分别检查每组 bounds。
  4. 找到把范围异常拉大的 feature。
  5. 检查这个 feature 的坐标和 properties。

这个过程通常比反复改地图样式、换底图或调缩放级别更快。

例子:城市点位突然覆盖全世界

假设你有一个门店点位文件,理论上都在同一个城市,大多数坐标接近 [-73, 40]。但 bounds 里突然出现经度 0、纬度 0,地图缩放后把几内亚湾也包含进来了。这通常表示某个 feature 的缺失值被导出成了 0,0,或者测试占位点混进了真实数据。

另一种常见情况是顺序写反。坐标 [40, -73] 对人来说可能像“纬度,经度”,但 GeoJSON 会把它读成经度 40、纬度 -73。文件语法没错,地理位置却完全错了。

不要用样式掩盖数据问题

预览坏了以后,很多人会先改 zoom、center、颜色、透明度或底图。但如果 bounds 本身是错的,样式只能暂时让画面好看一点,不能解决后续问题。

错误 bounds 会影响自动缩放、搜索、聚合、截图、导出和下游分析。应该先修坐标,再调样式。样式是最后一步,不应该是主要排查工具。

团队交接 GeoJSON 时,最好把坐标来源一起写清楚:是 GPS 采集、后端接口、GIS 导出,还是 CAD 或其他投影数据转换而来。如果来源不清楚,接收方很难判断应该直接预览,还是先做投影转换和字段清洗。

FeatureCollection 结构也要看

合法 JSON 不等于合法 GeoJSON。最外层应该是 FeatureCollection、Feature 或 geometry 对象。如果是 FeatureCollection,features 应该是数组。如果某个 Feature 有 properties 但没有 geometry,查看器可能能统计到它,但画不出任何形状。

Polygon 还要检查 ring 的嵌套和闭合。多边形结构错误时,看起来也可能像 bounds 或渲染问题。

发布前安全流程

把 GeoJSON 接入网站、仪表盘或客户地图前,可以按这个顺序:

  1. 先本地预览,避免上传私有数据。
  2. 检查 feature 数量和 geometry 类型。
  3. 检查 bounds。
  4. 确认坐标是经度在前、纬度在后。
  5. 确认坐标是 WGS84 十进制度。
  6. 查找离群点。
  7. 最后再调样式和图层配置。

一句话总结

GeoJSON bounds 不对时,先检查经纬度顺序、合法坐标范围、投影假设和离群 feature。浏览器本地预览可以先判断问题是否在数据本身,避免把时间浪费在地图渲染器或样式配置上。

参考资料

  • RFC 7946: The GeoJSON Format
  • Mapbox GeoJSON glossary

想直接试试看?

用我们的免费在线工具,把文章里的方法马上用起来。

本地预览 GeoJSON