ArcObjects弄坏了我的Shapefile

本文探讨了使用shapelib处理后的Shapefile无法通过shp2sde工具正常导入SDE的问题,分析了可能的原因,并提供了修复建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 我从同事那里拿到一些Shapefile,这是他用shapelib写出来,存在环方向不对的错误,于是我写了一个程序处理了一下,程序没有任何问题。但是处理完后,这些shapefile不能用shp2sde导入sde了,但是用ArcCatalog可以导入,真是气死我也。但是文件很多一个一个选实在太麻烦,还有一个办法就是写程序。本来可以直接写一个程序从shapefile到sde也没什么,但是我想用sde的工具来导数据。一开始以为是我对shp2sde不熟悉,但是怎么看也看不出问题来,create,init,append都不行,feature class已经创建出来,但是没有数据,处于load only I/O模式。
E:Temp 15 15001 > shp2sde  - o create  - l xz,shape  - f xz  - a all  - i port: 5151   - 192 .
168.7 . 109   - u landuse  - p landuse

ArcSDE 
9.0  Oracle9i  Build  1137  Mon Jan  31   18 : 12 : 38  PST  2005
Shape to Layer Loading   Administration Utility
-----------------------------------------------------
Set X_offset   
=         36441
Set Y_offset   
=        - 42900
Set XY_scale   
=        100000
Set Grid Size0 
=           274
FATAL ERROR (VRD3)
BAD IREC
我用shpinfo查看了一下文件信息如下:
E:Temp 15 15001 > shpinfo  - o describe  - f xz
------------------------------------------------------------------------
Shape File:            E:/Temp
/15 /15001/ xz
Version:                
1000
Codepage:              EUC
Type:                  Polygon
Number of Shapes:      
146
Extent:          minX: 
36441.649238           minY:  - 42899.045622
                      maxX: 
48466.834859           maxY:  - 25411.115336
Coordinate System: PROJCS[
" Xian_1980_3_Degree_GK_CM_120E " ,GEOGCS[ " GCS_Xian_1980 "
,DATUM[
" D_Xian_1980 " ,SPHEROID[ " Xian_1980 " , 6378140.0 , 298.257 ]],PRIMEM[ " Greenwich "
,
0.0 ],UNIT[ " Degree " , 0.0174532925199433 ]],PROJECTION[ " Gauss_Kruger " ],PARAMETER[ " F
alse_Easting " ,0.0],PARAMETER[ " False_Northing " ,0.0],PARAMETER[ " Central_Meridian " ,
121.4671680 ],PARAMETER[ " Scale_Factor " , 1.0 ],PARAMETER[ " Latitude_Of_Origin " , 31.235
4465 ],UNIT[ " Meter " , 1.0 ]]

Shape Attribute Columns: 
8
Name                 Type        Width    Decimal Places
------------            ----            -----         --------------
DISTRICTID        C          
4                -
MAP_FRAME       C         
10              -
CODE                   C          
10              -
STREET_COD    C          
10              -
AREA                     N          
15              2
LAND_USE          C          
40              -
LAND_RIGHT      N           
2              -
LAND_USE_T     C          
20              -
------------------------------------------------------------------------
没有什么问题,后来我上ESRI的User Forums上去查了查,还真有人碰到和我一样的问题,他说不能用shpinfo -o stats计算shapefile的统计信息,然后也不能用shp2sde导入SDE,错误消息和我一样。我的运行结果如下:
E:Temp 15 15001 > shpinfo  - o stats  - f xz
FATAL ERROR (VRD3)
BAD IREC
在论坛里找到的唯一一点有价值的信息是:
VFILE  is  the parallel file I / O module of ArcInfo (accessing shp / shx
as  a pair). IREC  is  the row number parameter. In  this  context,
you
' ve got a truncated or otherwise corrupt file. If you ' ve
transferred the shapefile 
set  by FTP, it ' s possible you didn ' t use
BINARY mode. 
文件坏掉了!
后来我也依稀记得在处理前的确是可以导的,只是很多记录有错误不能导入而已。自家人和自家人干上了,不过ArcObjects的确容错性很强,有些数据在ArcMap中可以看,但是到了ArcPad中就会让它突然死亡,MOJava也有这样的问题,唉!

        后来我用ArcToolbox中的RepairGeometry工具修复也得到同样的结果,本来还想根据shapefile specification检查一下到底哪里出问题,最后还是放弃了,太麻烦了。但是我把shapefile导入MDB中然后导出来文件是对的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值