1、コードのこの部分は、前にあるコードの実行を「ArcGISの形状ファイルを読む」、書き込み、借りる必要が前にフィールドリストおよび他の変数の前に読み取る必要があります。
図2に示すように、次のサンプルコード
インポートOGR OSGEO GDAL、から、OSR
インポートOSGEO
インポートOS
#中国のソリューションパス
osgeo.gdal.SetConfigOption( 'GDAL_FILENAME_IS_UTF8'、 'NO')
#解決SHAPEファイルの属性値
osgeo.gdal.SetConfigOption( 'SHAPE_ENCODING'、 '2312 ' )
ファイル名= "cntry98_new.shp"
ドライバー= ogr.GetDriverByName( "ESRIシェイプファイル")
ファイルがすでに存在しているとして、削除#
os.access(ファイル名、os.F_OK)のIF:
driver.DeleteDataSource(ファイル名)
#は、シェープファイルを作成
DSをdriver.CreateDataSource =(ファイル名)
#は任意のローカル未知の投影を定義
spatialRef = osr.SpatialReferenceを( 'LOCAL_CS [ "任意"]')
#spatialref = osr.SpatialReference()
spatialref.ImportFromEPSG(4326)
geomtype = OGR。wkbPolygonの
#レイヤを作成します。
層= ds.CreateLayer(ファイル名[:-4]、SRS = spatialref、geom_type = geomtype)
fd.has_keyプロパティ内のpython3#ではで使用する必要がない
フィールドのリストを書かれているレイヤ#
フィールドリスト内のFD用:
フィールド、= ogr.FieldDefn(FD [「名前」]、FD [「タイプの」])
IF FDの'幅':
field.SetWidth(FD [ '幅'])
FDの'小数' IF:
field.SetPrecision(FD [ '進'])
layer.CreateField(フィールド)
SFデータレコード#(幾何オブジェクトと層を書いて、そのプロパティ)
:I範囲内(LEN(reclist))のために
GEOM = ogr.CreateGeometryFromWkt(geomlist [I])
#SFの作成
。偉業を= ogr.Feature(layer.GetLayerDefn())
feat.SetGeometry(GEOM)
以下のためのフィールドリスト内のFD:
feat.SetField(FD [ '名前']、reclist [I] [FD [ '名前']])
#は、SF層書き込み
layer.CreateFeature(フィーチャリング)
DSを。ファイルを閉じる()#を破壊します
3、フィールドリスト、および新しい形状ファイルと属性テーブルの後に書かれたオブジェクトの幾何学的特性とは、一貫性のある元の形状ファイルを読み込みます。