Làm cách nào để thay đổi giá trị trường của Shapefile bằng GDAL / OGR?


18

Tôi đang cố gắng thay đổi giá trị trường của một shapefile. Tuy nhiên, nó không thay đổi giá trị. Có gì sai với mã của tôi?

import ogr

driver = ogr.GetDriverByName('ESRI Shapefile')
fn = 'dist.shp'
dataSource = driver.Open(fn, 0)

layer = dataSource.GetLayer()
feature = layer.GetNextFeature()

dist = 233

while feature:
    feature.SetField("dist", dist)
    layer.SetFeature(feature)
    feature = layer.GetNextFeature()

dataSource.Destroy()

Câu trả lời:


23

Đối số thứ hai trong Open chỉ định nếu dữ liệu có thể được cập nhật (ghi vào). Thử:

dataSource = driver.Open (fn, 1)


Giải pháp này đã làm việc! được xác nhận từ API GDAL-PYTHON . Tùy chọn mặc định là 0 tức là FALSE, nếu không thì 1 để cập nhật TRUE trong trường hợp bắt buộc
Erick
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.