Answers:
请注意,许多读取SHP文件的软件不支持几何的空值。甚至旧版本的ArcView都有问题。
我在这里创建了一个示例:http : //www.routeware.dk/temp/shp_null_sample.zip 它有3条记录,第二条没有几何图形。
我认为您的意思是geometry / shape列为null,因为shapefile不支持除几何和日期字段以外的任何字段类型的null。
下面的代码创建1个shapefile,其中1个记录/要素具有空多边形几何形状。
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()
我运行它并得到我所期望的
警告000442:c:\ temp \ outfc.shp中0处的空几何
如果您使用ESRI软件,至少我可以说ArcGIS 9.3,那么shapefile不支持null。几周前,我遇到了这个问题,花了一天的时间进行调查。我发现此链接特别说明了 http://forums.esri.com/Thread.asp?c=93&f=993&t=125464。似乎在ESRI shapefile中支持null的唯一方法是使用地理数据库(然后shapefile成为要素类。我使用的文件是地理数据库)。为了支持null,我最终制作了一个地理数据库,并在文件地理数据库(这将支持null)中创建要素类(否则称为shapefile),而不是创建shapefile然后将其导入到地理数据库(这将不支持null)。 。如果我没记错的话,还必须在字段属性中明确声明要支持null的属性。这是可能有用的链接。如何使用Python在ArcGIS 9.3的文件地理数据库中创建要素类?