今天尝试给下游产出一版geojson格式的数据。
之前没怎么接触过geojson,对它的格式不熟悉。只能照着官网的格式照猫画虎。
然而下游使用时报错,来回修改了几个版本都没有解决。
后来才知道问题的原因是,geometry字段是双嵌套格式,比如一个面要素的形点是[[x1,y1],[x2, y2],[x3,y3],[x4,y4]],那么它的结构应该是[[[x1,y1],[x2, y2],[x3,y3],[x4,y4]]],这样设计的原因我猜想是适配多个面要素的场景。
然而我是通过ogr2ogr来认识到问题原因的......
首先是通过直接将shp数据转换成geojson来看一下正确数据,命令如下
ogr2ogr -f "geojson" output.geojson.txt input.shp
通过转出的geojson数据,对比我生产的geojson数据,找到自产数据的问题并解决之。
ogr2ogr甚至可以转换geojson格式为geojson格式。
ogr2ogr -f "geojson" output.geojson.txt input.geojson.txt
有人可能问,本身已经是geojson格式了,为什么还通过ogr2ogr转换呢?
原因是用python转出的geojson是一行记录,而ogr2ogr转出的是多行记录。
ogr2ogr还可以完成几十种地理数据格式的互转,牛逼之处可见一斑。