做地图标注的兄弟,是不是经常遇到上传失败、数据报错,或者改个坐标死活不显示的崩溃瞬间?这篇干货直接给你把 GeoJSON 上传和修改的底层逻辑扒开,照着做,以后这类问题不再求人。
咱干这行十年了,见过太多新手拿着 Excel 表直接扔给后端,或者在编辑器里瞎改代码,结果就是数据乱码、点位飘移。其实 GeoJSON 这东西,看着挺高大上,本质就是个 JSON 格式的数据文件,专门用来存地理空间信息的。只要搞懂它的结构,上传和修改根本不是事儿。
先说上传。很多客户拿着自己用 ArcGIS 或 QGIS 导出的文件,直接往网页上传,结果提示“格式错误”。为啥?因为很多工具导出的 GeoJSON 里带了很多冗余字段,或者坐标系不对。国内大部分地图服务(比如高德、百度)用的是 GCJ-02 或 BD-09 坐标系,如果你直接上传 WGS-84 坐标系的 GeoJSON,点位能偏出几百米,甚至直接飘到海里去。
第一步,检查坐标系。在上传前,务必确认你的 GeoJSON 里的坐标是 WGS-84 还是其他。如果是 WGS-84,得先转成目标地图服务商要求的坐标系。这一步千万别偷懒,网上有些在线转换工具不靠谱,最好用专业的 GIS 软件转一下,或者写个简单的 Python 脚本调用 Proj4 库转换。
第二步,校验数据结构。GeoJSON 有严格的规范,根对象必须包含 "type": "FeatureCollection",里面包含 "features" 数组。每个 Feature 必须有 "type": "Feature","geometry",和 "properties"。geometry 里必须有 "type"(比如 Point, LineString, Polygon)和 "coordinates"。很多报错就是因为少写了个逗号,或者括号不匹配。你可以用 GeoJSON.io 这个在线工具,把文件拖进去,它会自动帮你校验格式,还能可视化查看点位对不对。这比肉眼查代码快多了。
再说修改。有时候客户说“把那个店的坐标挪一下”,你打开文件一看,几千条数据,手动改得改到明年。这时候千万别用记事本去改,容易出错。推荐用 QGIS 或者在线的 GeoJSON Editor。
第一步,加载数据。把 GeoJSON 文件拖进 QGIS 里,它能自动识别坐标系并显示在地图上。这样你就能直观看到哪个点位错了,而不是对着代码发呆。
第二步,编辑属性。在 QGIS 里,你可以打开属性表,直接修改字段的值。比如把某个点的名称从“旧店名”改成“新店名”,或者更新营业时间。改完保存,导出为新的 GeoJSON。注意,导出时要勾选“仅导出选中要素”,这样只修改你需要的部分,避免全量覆盖。
第三步,坐标微调。如果点位不准,直接在 QGIS 里拖动点,或者输入精确坐标。QGIS 会自动更新 coordinates 字段。改完后,再次用 GeoJSON.io 校验一下,确保没有语法错误。
这里分享个真实案例。去年有个做连锁餐饮的客户,全国几百家店的 GeoJSON 文件,因为早期数据录入错误,大概有 5% 的点位偏移严重。他们之前找了个外包,按条收费,贵得离谱。我让他们先用 QGIS 批量检查,把偏移超过 100 米的点位筛选出来,然后统一用脚本批量修正坐标系,最后手动微调那几个关键店。半天搞定,费用几乎为零。
记住,GeoJSON 上传修改的核心就是:格式对、坐标准、工具顺。别总想着用复杂的技术去解决简单的问题,有时候一把瑞士军刀比高科技设备更好用。
本文关键词:geo文件 上传 修改