起始位置
|
名称
|
数值
|
类型
|
位序
|
0
|
File Code
|
9994
|
Integer
|
big
|
4
|
Unused
|
0
|
Integer
|
big
|
8
|
Unused
|
0
|
Integer
|
big
|
12
|
Unused
|
0
|
Integer
|
big
|
16
|
Unused
|
0
|
Integer
|
big
|
20
|
Unused
|
0
|
Integer
|
big
|
24
|
文件长度
|
文件的实际长度
|
Integer
|
big
|
28
|
版本号
|
1000
|
Integer
|
Little
|
32
|
几何类型
|
表示这个Shapefile文件所记录的空间数据的几何类型
|
Integer
|
Little
|
36
|
Xmin
|
空间数据所占空间范围的X方向最小值
|
Double
|
Little
|
44
|
Ymin
|
空间数据所占空间范围的Y方向最小值
|
Double
|
Little
|
52
|
Xmax
|
空间数据所占空间范围的X方向最大值
|
Double
|
Little
|
60
|
Ymax
|
空间数据所占空间范围的Y方向最大值
|
Double
|
Little
|
68*
|
Zmin
|
空间数据所占空间范围的Z方向最小值
|
Double
|
Little
|
76*
|
Zmax
|
空间数据所占空间范围的Z方向最大值
|
Double
|
Little
|
84*
|
Mmin
|
最小Measure值
|
Double
|
Little
|
92*
|
Mmax
|
最大Measure值
|
Double
|
Little
|
记录项
|
数值
|
数据类型
|
长度
|
个数
|
位序
|
几何类型(ShapeType)
|
1(表示点状目标)
|
int型
|
4
|
1
|
Little
|
X方向坐标
|
X方向坐标值
|
double型
|
8
|
1
|
Little
|
Y方向坐标
|
Y方向坐标值
|
double型
|
8
|
1
|
Little
|
记录项
|
数值
|
数据类型
|
长度
|
个数
|
位序
|
几何类型(ShapeType)
|
3(表示线状目标)
|
int型
|
4
|
1
|
Little
|
坐标范围(Box)
|
表示当前线目标的坐标范围
|
double型
|
32
|
4
|
Little
|
子线段个数(NumParts)
|
表示构成当前线目标的子线段的个数
|
int型
|
4
|
1
|
Little
|
坐标点数(NumPoints)
|
表示构成当前线目标所包含的坐标点个数
|
int型
|
4
|
1
|
Little
|
Parts数组
|
记录了每个子线段的坐标在Points数组中的起始位置
|
int型
|
4×NumParts
|
NumParts
|
Little
|
Points数组
|
记录了所有的坐标信息
|
Point型
|
根据点个数来确定
|
NumPoints
|
Little
|
import shapefile
sf = shapefile.Reader("E:\\1.2\\cs\\DX_CSL.shp")
shapes = sf.shapes()
print shapes[1].parts
print len(shapes) #79条记录
#print len(list(sf.iterShapes())) #79条记录
#for name in dir(shapes[3]): #不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表
# if not name.startswith('__'):
# print name
print sf.numRecords
recds = sf.records()
for i in range(sf.numRecords):
rcd = sf.record(i)
#sp = rcd.shape 没有shape属性
#print sp.points
#recds.shape
#读取记录
print sf.shapeRecord(1).shape.shapeType
print sf.shapeRecord(1).record
print sf.fields
print ''
for shp in range(len(shapes)):
shap = shapes[shp]
print shap.points
print shap.shapeType
print len(shap.points)
for i in range(len(shap.points)):
print shap.points[i]
for x in range(len(shap.points[i])):
print shap.points[i][x]