Có ai biết nơi tôi có thể tìm thấy một shapefile mẫu có các mục null trong đó (tốt nhất là một shapefile đa giác) không?
Tôi không chắc chắn làm thế nào để tạo một cái có null.
Có ai biết nơi tôi có thể tìm thấy một shapefile mẫu có các mục null trong đó (tốt nhất là một shapefile đa giác) không?
Tôi không chắc chắn làm thế nào để tạo một cái có null.
Câu trả lời:
Được cảnh báo rằng rất nhiều phần mềm đọc tệp SHP không hỗ trợ giá trị null cho hình học. Ngay cả các phiên bản cũ hơn của ArcView cũng có vấn đề.
Tôi đã tạo một mẫu ở đây: http://www.routcare.dk/temp/shp_null_sample.zip Nó có 3 bản ghi, thứ 2 không có hình học.
Tôi giả sử bạn có nghĩa là null cho cột hình học / hình dạng, bởi vì shapefiles không hỗ trợ null cho bất kỳ loại trường nào ngoại trừ hình học và (tôi nghe) cho các trường ngày.
Mã dưới đây tạo 1 shapefile với 1 bản ghi / tính năng có dạng hình học null.
import arcpy
import os
outfc = r'c:\temp\outfc.shp'
arcpy.env.workspace = os.path.dirname(outfc)
arcpy.CreateFeatureclass_management(arcpy.env.workspace,os.path.basename(outfc), 'polygon')
cur = arcpy.InsertCursor(outfc)
row = cur.newRow()
cur.insertRow(row)
del(row)
del(cur)
r = arcpy.CheckGeometry_management(outfc,'in_memory\\outtable')
print r.getMessages()
Tôi chạy nó và nhận được điều này là những gì tôi mong đợi
CẢNH BÁO 000442: hình học null ở 0 trong c: \ temp \ outfc.shp
Nếu bạn đang làm việc trên phần mềm ESRI, ít nhất tôi có thể nói cho ArcGIS 9.3, thì shapefiles không hỗ trợ null. Tôi gặp vấn đề này vài tuần trước và dành một ngày để điều tra. Tôi tìm thấy liên kết này đặc biệt chiếu sáng http://forums.esri.com/Thread.asp?c=93&f=993&t=125464. Dường như cách duy nhất để hỗ trợ null trong các shapefiles ESRI là sử dụng cơ sở dữ liệu địa lý (sau đó các shapefiles trở thành featureclass. Tôi đã sử dụng tệp cơ sở dữ liệu địa lý). Để hỗ trợ null, cuối cùng tôi đã tạo ra một cơ sở dữ liệu địa lý và tạo ra featureclass (còn được gọi là shapefiles) bên trong tệp geodatabase (điều này sẽ hỗ trợ null) thay vì tạo một shapefile và sau đó nhập nó vào cơ sở dữ liệu địa lý (điều này sẽ không hỗ trợ null) . Nếu tôi nhớ chính xác, bạn cũng phải nêu rõ các thuộc tính trường mà bạn muốn null được hỗ trợ. Đây là liên kết có thể giúp Làm thế nào để tạo một lớp đối tượng trong cơ sở dữ liệu địa lý tệp trong ArcGIS 9.3 với Python?