创建一个形状fi

2024-10-01 11:33:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用2个点创建一个shapefile(一条线)。在

我有以下脚本:

import ogr, sys, os

line=ogr.Geometry(ogr.wkbLineString)
line.AddPoint(10,10)
line.AddPoint(20,20)

driver=ogr.GetDriverByName('ESRI Shapefile')
ds=driver.CreateDataSource('C:\test.shp')
layer=ds.CreateLayer('test', geom_type=ogr.wkbLineString)
fieldDefn=ogr.FieldDefn('id', ogr.OFTInteger)
layer.CreateField(fildDefn)
featureDefn=layer.GetLayerDefn()
feature=ogr.Feature(featureDefn)
feature.SetGeometry(line)
feature.SetField('id',1)
layer.CreateFeature(feature)

我有两个错误。。在

“错误1:无法创建文件。shp文件。 错误4:无法打开形状文件“

有人知道问题出在哪里吗? 有人能帮我吗? 非常感谢


Tags: 文件testlayeriddriver错误lineds
2条回答

您需要替换\t字符;它们表示python字符串文本中的制表符字符。将斜杠加倍,或使用原始python字符串:

ds=driver.CreateDataSource('C:\\test.shp')

或者

^{pr2}$

(注意字符串开头的r)。在

你忘了通知大地测量系统。下面这条路行得通。在

import ogr, sys, os
import osgeo.osr as osr

line=ogr.Geometry(ogr.wkbLineString)
line.AddPoint(10,10)
line.AddPoint(20,20)

driver=ogr.GetDriverByName('ESRI Shapefile')
ds=driver.CreateDataSource('test.shp')

srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)

layer=ds.CreateLayer('test', srs, ogr.wkbLineString)
fieldDefn_=ogr.FieldDefn('id', ogr.OFTInteger)
layer.CreateField(fieldDefn_)
featureDefn=layer.GetLayerDefn()
feature=ogr.Feature(featureDefn)
feature.SetGeometry(line)
feature.SetField('id',1)
layer.CreateFeature(feature)

相关问题 更多 >