背景
当你的路网数据和瓦片地图有偏差时候,怎么办呢?我们肯定能想到:把坐标转化到同一个坐标系里面就好啦。没错,原理是这样的。
但是,我们应该怎么把Shp文件里面的坐标点提取出来,然后转化呢?
这就需要用到Python的shapefile库了。
示例文件:链接:https://pan.baidu.com/s/1hbxomqLjdy3X_Kx4WsnHxQ
提取码:8z5a
PyShp官方文档:https://pypi.org/project/pyshp/
下面,我用一个有偏差的Shp文件,把文件的经纬度全部提取出来,然后经过转化后重新生成一个Shp文件。
代码实现
主代码:
import shapefile
# import untitled.ConvertLag_Lat as CVLL
import ConvertLag_Lat as CVLL
# 读取文件的路径
readPath = r"示例文件路径\城市快速路.shp"
# 要写入新的文件存放路径
writeFilePath = r"你想输出的路径\纠偏后_城市快速路.shp"
'''读取文件的操作'''
def ShpReadFile(filePath):
sf = shapefile.Reader(filePath,encoding="gbk")
# sf = shapefile.Reader(filePath)
# 以ShapeRecords格式读入(既可以访问shape几何对象