GDAL OGR创建shp文件

from sys import winver
from osgeo import ogr
import osgeo
from osgeo.osr import SpatialReference as SR
driver=ogr.GetDriverByName('ESRI Shapefile')
ds=ogr.Driver.CreateDataSource(driver,'Supermarket.shp')
sr=SR('GEOGCS["WGS 84",\
    DATUM["WGS_1984",\
        SPHEROID["WGS 84",6378137,298.257223563,\
            AUTHORITY["EPSG","7030"]],\
        AUTHORITY["EPSG","6326"]],\
    PRIMEM["Greenwich",0,\
        AUTHORITY["EPSG","8901"]],\
    UNIT["degree",0.0174532925199433,\
        AUTHORITY["EPSG","9122"]],\
    AXIS["Latitude",NORTH],\
    AXIS["Longitude",EAST],\
    AUTHORITY["EPSG","4326"]]')
lay=ogr.DataSource.CreateLayer(ds,'Supermarket',sr,ogr.wkbPoint,['ENCODING=UTF-8'])
name=ogr.FieldDefn('name',ogr.OFTString)
ogr.FieldDefn.SetWidth(name,10)
address=ogr.FieldDefn('address',ogr.OFTString)
ogr.FieldDefn.SetWidth(address,20)
uid=ogr.FieldDefn('uid',ogr.OFTString)
ogr.FieldDefn.SetWidth(uid,30)
lat=ogr.FieldDefn('lat',ogr.OFTReal)
ogr.FieldDefn.SetPrecision(lat,6)
lng=ogr.FieldDefn('lng',ogr.OFTReal)
ogr.FieldDefn.SetPrecision(lng,6)
ogr.Layer.CreateFields(lay,[name,address,uid,lat,lng])
with open('supermarket.txt',mode='r',encoding='utf-8') as f:
    row=f.readline().split('\t')
    supermarket=ogr.Feature(ogr.Layer.GetLayerDefn(lay))
    ogr.Feature.SetField(supermarket,'lat',row[1])
    ogr.Feature.SetField(supermarket,'name',row[0])
    ogr.Feature.SetField(supermarket,'lng',row[2])
    ogr.Feature.SetField(supermarket,'address',row[3])
    ogr.Feature.SetField(supermarket,'uid',row[4])
    ogr.Feature.SetGeometry(supermarket,ogr.CreateGeometryFromWkt('POINT({} {})'.format(row[2],row[1])))
    ogr.Layer.CreateFeature(lay,supermarket)
print('finished!')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值