转坐标的方式有多种。可以用GDAL的Python绑定库。当然最方便的还是用ogr2ogr命令行的方式,效率又高。
import subprocess
cmd = 'ogr2ogr -f "ESRI Shapefile" out.shp in.shp -s_srs EPSG:4326 -t_srs EPSG:3857'
subprocess.call(cmd)
如果要查看转换的进度,可以在加上参数-progress,即如下:
import subprocess
cmd = 'ogr2ogr -progress -f "ESRI Shapefile" out.shp in.shp -s_srs EPSG:4326 -t_srs EPSG:3857'
subprocess.call(cmd)
如果在转换过程中,有字符转换的问题,可以考虑添加编码选项指定使用UTF-8。
import subprocess
cmd = 'ogr2ogr -f "ESRI Shapefile" out.shp in.shp -s_srs EPSG:4326 -t_srs EPSG:3857 -lco ENCODING=UTF-8'
subprocess.call(cmd)