__init__.py 1.9 KB
# coding=utf-8
#author:        4N
#createtime:    2022/4/12
#email:         nheweijun@sina.com


from osgeo.ogr import *
from osgeo import ogr
import time
import shutil
import sys
import os

def shp2mvt(data_path,out_path):
    t1 = time.time()

    if os.path.exists(out_path):
        shutil.rmtree(out_path, True)
    try:
        data_path = sys.argv[1]
        out_path = sys.argv[2]
    except:
        pass

    driver: Driver = ogr.GetDriverByName("ESRI Shapefile")
    ds: DataSource = driver.Open(data_path, 0)

    lay:Layer = ds.GetLayer(0)


    mvt_driver:Driver = ogr.GetDriverByName("MVT")

    mvt_driver.CopyDataSource(ds,out_path)

    print(time.time()-t1)


def shp2geojson(data_path,out_path,format="pbf"):
    t1 = time.time()

    try:
        data_path = sys.argv[1]
        out_path = sys.argv[2]
    except:
        pass


    driver: Driver = ogr.GetDriverByName("ESRI Shapefile")
    ds: DataSource = driver.Open(data_path, 0)

    mvt_driver:Driver = ogr.GetDriverByName("GeoJSON")

    mvt_driver.CopyDataSource(ds,out_path)

    print(time.time()-t1)

def geojson2mvt(data_path,out_path):
    t1 = time.time()

    if os.path.exists(out_path):
        shutil.rmtree(out_path, True)


    geosjon_driver: Driver = ogr.GetDriverByName("GeoJSON")
    ds: DataSource = geosjon_driver.Open(data_path, 0)

    mvt_driver:Driver = ogr.GetDriverByName("MVT")

    mvt_driver.CopyDataSource(ds,out_path)

    print(time.time()-t1)

if __name__ == '__main__':


    # shp2geojson(r"J:\Data\矢量数据\广州\gzpoi\gzpoisub3.shp",r"J:\Data\矢量数据\广州\gzpoi\gzpoisub3.geojson")

    # geojson2mvt(r"J:\Data\矢量数据\广州\gzpoi\gzpoisub2.geojson",r"J:\Data\矢量数据\广州\gzpoi\gzpoisub3.mvt")
    shp2mvt(r"J:\Data\矢量数据\广州\gzpoi\gzpoisub3.shp",r"J:\Data\矢量数据\广州\gzpoi\gzpoisub3.mvt")