• SHP文件转GeoJson


    # -*- coding: utf-8 -*-
    from osgeo import ogr
    import gdal
    import sys
    import os
    
    def ChangeToJson(vector, output):
        print("Starting........")
        #打开矢量图层
        gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES")
        gdal.SetConfigOption("SHAPE_ENCODING", "GBK")
        shp_ds = ogr.Open(vector)
        shp_lyr = shp_ds.GetLayer(0)
    
        # 创建结果Geojson
        baseName = os.path.basename(output)
        out_driver = ogr.GetDriverByName('GeoJSON')
        out_ds = out_driver.CreateDataSource(output)
        if out_ds.GetLayer(baseName):
            out_ds.DeleteLayer(baseName)
        out_lyr = out_ds.CreateLayer(baseName, shp_lyr.GetSpatialRef())
        out_lyr.CreateFields(shp_lyr.schema)
        out_feat = ogr.Feature(out_lyr.GetLayerDefn())
    
        #生成结果文件
        for feature in shp_lyr:
            out_feat.SetGeometry(feature.geometry())
            for j in range(feature.GetFieldCount()):
                out_feat.SetField(j, feature.GetField(j))
            out_lyr.CreateFeature(out_feat)
    
        del out_ds
        del shp_ds
        print("Success........")
    
    if __name__ == '__main__':
        shapefile = 'D:/daat.shp'
        out = 'D:/daat/123.json'
        ChangeToJson(shapefile, out)
  • 相关阅读:
    java
    java
    java
    js
    java
    异常之异常处理
    面向对象之元类
    面向对象之内置方法
    面向对象之反射
    面向对象之类方法与静态方法
  • 原文地址:https://www.cnblogs.com/raorao1994/p/13323424.html
Copyright © 2020-2023  润新知