最近接了个外包,客户发来的GeoJSON乱成一锅粥,坐标堆在一起,看都看不清。
我心想这要是没法加备注,后期维护简直是灾难。
其实很多人以为GeoJSON就是个坐标列表,没啥花头。
大错特错。
GeoJSON本质是JSON格式,注释这事,它天生就不支持。
对,你没看错,标准里压根没有//或#这种注释符。
那咋办?
我一开始也纠结,差点把数据扔进Excel转一转。
后来发现,有个野路子,能用,但有风险。
我试了三次,才总结出一套相对稳的办法。
第一步,别直接改源文件。
先备份,这点至关重要。
我上次手滑,丢了半天数据,心都在滴血。
第二步,利用feature属性。
GeoJSON里每个feature都有properties字段。
你可以在这里加个_descr_字段,把注释写进去。
比如写个"备注:2023年勘界修正点"。
这样数据结构没变,软件识别也没问题。
但问题来了。
如果地图渲染层读了这个字段,会不会出bug?
我测过几个主流开源库,大多没事。
但商业软件里,有的会报错。
这点要自己试,别信网上乱吹。
还有一种办法,更土,但更安全。
就是分文件存。
坐标归坐标,备注归备注。
建个txt或者csv,对应feature的id写备注。
虽然麻烦点,但绝对不出错。
我现在的流程基本固定了。
第一步,导入原始数据到QGIS或Mapbox。
第二步,在Attribute Table里新建备注列。
第三步,导出时确保properties包含该列。
第四步,用jsonlint在线验证语法。
别小看第四步。
手动改的时候,少个逗号,整个文件就废了。
我吃过亏,半夜改数据,逗号没闭合,崩溃了一小时。
还有个细节,很多人忽略。
UTF-8编码。
中文备注如果不存成UTF-8,打开全是问号。
Windows记事本默认是ANSI,改文件时千万注意。
我用VS Code,右下角直接切编码。
简单,但容易忘。
最后说句掏心窝的话。
geo文件的注释 这事,其实是个权衡。
要么加在属性里,方便但有风险。
要么外挂文件,安全但麻烦。
看你的项目周期长短。
短期项目,外挂文件省心。
长期维护,建议属性里加标准字段名。
比如用meta_note这种,别乱起。
团队协作时,别人一看就知道是备注。
别用zzz_temp这种,到时候自己都忘了。
我也不是专家,就是踩坑踩多了。
大家如果有更优雅的方案,欢迎在底下留言。
毕竟数据治理这事,没有完美,只有更合适。
希望这篇 能帮到你,少走点弯路。
本文关键词:geo文件的注释】