コマンドラインレコード - レコードには、ArcGISの形状ファイルを書き込みます

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、フィールドリスト、および新しい形状ファイルと属性テーブルの後に書かれたオブジェクトの幾何学的特性とは、一貫性のある元の形状ファイルを読み込みます。

 

 

おすすめ

転載: www.cnblogs.com/vividautumn/p/11610827.html