一、背景
今天需要批量导入xy点数据,做成shp导入数据库,发成服务,结果在发服务的过程中老报错。提示字段shapezid错误,如下
仔细对比了能正常发服务的shp数据的字段,发现2个区别
正常发服务的数据的shape字段
出错的数据的shape字段
二、shape属性出现点zm是什么意思呢?
查阅了资料,确定了 点ZM的意思是这个属性包含点的Z和M值
在ArcGIS中,我们常用的几何类型有点、线、面、体(体,在涉及三维的情况下使用),但在这之外,可能会遇到带ZM的类型,如图所示,点ZM,它与点类似,但比点多两个字段 ,Z值是用来存储高程属性信息的,M值是用来存储其他属性信息的,如温度、浓度等。这里的数据是txt文件转过来的,我在导入过程中选了Z的属性列,所有有高程值,但没有M值
WKT格式几何点可能的类型有Point、PointZ、PointM、PointZM四种格式,Polyline、Polygon也是类似的
这样就明白了,我需要的发服务的数据不需要Z的值
三、怎么样去除ZM值呢
1.我的错误的解决方法
在导入xy时候不选z的属性值就可以生成事件,在导出生成shp即可(只是一个小细节问题)
2.常规去除ZM的方法
打开ArcToolbox,选择转换工具--转为shape---要素类转shape (Conversion Tools->To Shapefile->Feature Class To Shapefile(multiple))工具。
在打开对话框中Input Features一栏下拉选择已加载的shp图层,通过Output Folder右侧的文件夹图标选择导出文件夹。(点击右侧的+可以添加多个shp矢量图层一并删除ZM值)
点击对话框中右下角的Environments...按钮,弹出Environment Setting对话框设置环境。
将M Values中Output has M Values输入框下拉选择Disable;
将Z Values中Output has Z Values输入框下拉选择Disable。
点击ok按钮返回至Feature Class To Shapefile(multiple)对话框。
点击Feature Class To Shapefile(multiple)对话框中的ok按钮开始处理,会弹出处理进度进度条,处理完成以后对话框会自动关闭。
在ArcMap中打开导出文件夹中已处理过的shp文件,可查看shape字段属性变为点,表示已去掉ZM值。