关于go-shp创建shp文件问题

初试使用go代码实现将csv数据转换为shp文件,发现一个问题,可能是刚接触gis开发的事,对这方面不熟悉,把过程记录下来,以备以后可查。

我使用github.com/shangqingfeng/go-shp 批量将csv数据转换为shp文件,程序生成的只有dbf、shp和shx三种类型的文件,但是使用QGIS加载shp文件图层,发现只能显示一个点,并且这个点的位置始终不变就在地图的中央位置,无论数据怎样变化都只是一个点,开始认为是代码写错了,于是使用代码读取创建的shp文件看里面数据也都写入的正常,换了github.com/jonas-p/go-shp这个库,也还是出现同样问题。于是我就使用QGIS正常加载CSV数据将图层导出为shp文件,发现导出的文件类型不止3个,还有prj、cpg和qmd类型的文件,我尝试只保留dbf、shp和shx数据,将刚才导出的图层重新以shp文件形式加载到QGIS中,发现和之前用代码创建的显示效果一样,这才忽然明白:go-shp库创建shp文件时是不会自动生成prj文件的,这个文件是记录数据采用的坐标系信息,需要手工编写。于是我就拷贝使用QGIS导出的图层生成的prj文件到刚才代码生成的shp文件目录,将prj文件的文件名和shp文件文件名修改一致,然后再使用QGIS重新添加shp文件图层就可以正常显示了。

使用记事本打开,查看剩余的cpg文件是记录的编码格式GBK或UTF8什么的;qmd文件是QGIS创建的自身的一个信息记录文件,尝试了一下,这两个文件都可以直接删除,对shp文件图层加载没什么影响。

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值