郭红操,陈 川,马 煜,陈柄任,陈柏行,袁勇军
(1.成都市规划编制研究和应用技术中心,四川成都 610041;2.四川省第一测绘工程院,四川成都 610100)
测绘质量是测绘产业发展的生命线,不仅关系到国民经济持续快速健康发展,而且关系到国家主权、国防安全和民族利益,直接影响着广大人民群众的切身利益,提高测绘质量水平是促进经济社会科学发展的必然要求。目前测绘产品的质检方式包括内业和外业2 种,传统的外业质检通常是由检验人员室内将抽取的样本数据打印成纸质文件,带到实地进行巡视检验,在巡视过程中将检查信息记录在纸质图表上,这种方式不仅数据携带不方便,并且受纸张大小限制,携带数据量有限,在外业记录过程中存在涂改困难、不易保存等诸多缺陷。因此,需要一种效率和准确率更高的数据采集方式来支持测绘产品的外业巡检工作。
随着ArcGIS 移动端技术不断发展,ArcGIS Runtime SDK for Android 版本已经从10.X 系列更新至100.X 系列,目前100.X 版本可以直接对Shapefile 文件进行可视化和编辑。利用ArcGIS 移动端开发技术,可将测绘产品样本数据转成Shapefile 格式,从电脑端拷贝到移动端设备,由检验人员带到实地进行外业巡视检验,通过外业巡检软件浏览数据并将检查信息记录在移动端设备里。
本文的测绘产品外业巡检系统的设计与实现,将基于ArcGIS Runtime SDK for Android 100.4 和ArcObjects SDK10.2.2 二次开发技术,采用C/S 架构设计方式,实现外业巡检及检查记录自动化输出。
测绘产品巡检系统是指将已预处理好的样本数据携带至现场对测绘成果进行检验,并通过外业检查将其属性信息和空间信息记录在巡检系统中,这里的测绘成果是通过测量采集、计算、绘制编辑等手段形成的图形、表格等资料,常见数据格式包括矢量数据、栅格数据等。
测绘产品巡检是指基于已有的测绘成果,在成果现场对测绘成果进行比对检查,检查成果图形及相关属性信息是否和现场情况一致,对测绘成果有错漏的地方进行标注,并记录其空间信息和属性信息。随着测绘的应用越来越广泛,这里的测绘成果数据不仅包括传统的地形图、影像图等,还包括行业应用成果,如,城市道路部件调查成果、河湖划定成果等。如上所述,测绘产品巡检系统可分为以下4 个模块:
1)实现文件地理数据库和栅格影像的分幅裁剪、外业调绘底图制作、检查记录表的输出、样本质量的评价,包括数据裁剪、制作tpk、输出检查意见记录表等功能。
2)实现对已有测绘产品的浏览,系统兼容并支持多种测绘产品格式,包括栅格数据、矢量数据、视频、图片等,具体表现为可以在移动端上对成果实现移动、缩放、属性标注、图层控制、测量、符号化等功能。
3)实现检查信息的记录和标注,实现矢量数据的选择、绘制、保存、删除等编辑功能,支持点、线、面3 种数据类型,可以记录检查信息的属性和空间信息。
4)实现空间位置实时定位,可以实现离线GPS定位和网络定位2 种方式,同时显示图形北方向。
此次测绘产品外业巡检系统硬件配置为华为M5 平板电脑,处理器4×A73,处理频率2.1 GHz,运行内存4GB,开发工具采用Android Studio,开发语言采用Java,结合成都市数字城管基础数据普查更新检验项目的需求,系统设计结构如图1 所示。
图1 系统结构图
2.2.1 数据浏览
数据加载:此系统采用离线方式加载、访问测绘成果数据,其中支持包括shp、tif、mp4、jpg 等格式的数据,工作背景底图主要采用卫星影像和道路数据,将这2 种数据叠加,在ArcMap 中进行切片处理,制作成tpk 的文件,以便在实地查找位置。
MapView mMapView = findViewById(R. id.map);
ShapefileFeatureTable shapeTable=new ShapefileFeatureTable(path2);
FeatureLayer Layer_sanbao = new FeatureLayer(shapeTable);
mMapView.getMap().getOperationalLayers().add(Layer_sanbao);
属性标注:采用单一属性和多种属性标注的方法,多种属性标注样式采用分子式,要素属性标注位于要素正上方,检查记录的标注位于要素正下方,使用不同的颜色区别,如图2 所示。
图2 编辑视图
LabelDefinition labelsanbao=LabelDefinition.fromJson(otherLabelsJsonsanbao);
Layer_sanbao.getLabelDefinitions().add(labelsanbao);
hapefileLayer_sanbao.setLabelsEnabled(true);
图层管理:采用批量和单选2 种方式控制视图中各个图层的开关显示,支持控制矢量图层、栅格图层等。
数据视图:在视图中可以用手直接触摸屏幕,满足移动、放大、缩小、旋转等需求,并实时显示当前视图比例尺和正北方向,同时实现多种要素的符号化显示。
LocationDisplay locationDisplay=mMapView.getLocationDisplay();
Envelope envel=Layer_sanbao.getFullExtent();
mMapView.setViewpointAsync(new Viewpoint(penvel));
CheckBox checkboxsb=contentView.findViewById(R.id.cb_sanbao);
checkboxsb.setChecked(true);
2.2.2 数据编辑
实现点、线、面3 种要素的绘制、删除、选择、保存等操作,此系统直接编辑Shapefile 矢量数据,减少了数据转换的工作,并可采集当前要素实地照片,作为检查记录的辅助资料。
SketchEditor mainSketchEditor mainSketchEditor=new SketchEditor();
ListenableFuture<FeatureQueryResult>selectR=
Layer_sanbao.getSelectedFeaturesAsync();
FeatureQueryResult result=selectR.get();
Iterator<Feature>iterator=result.iterator();
while(iterator.hasNext()){
Feature feature=iterator.next();
feature.getAttributes().put("ErrorType",et_cuowuleix.getText().toString());
feature.getAttributes().put("ErrorDescribe",et_miaoshuleix.getText().toString());
final ListenableFuture<Void>addFeatureFuture=
Layer_sanbao.getFeatureTable().updateFeatureAsync(feature);
mainSketchEditor.stop();}
2.2.3 空间定位
定位方式:此系统采用离线定位和网络定位2种方式获取当前实时位置。离线定位是根据平板电脑GPS 模块获取卫星信号而计算获取位置的方式,网络定位是平板电脑在连接互联网的状态下,根据互联网信号计算获取位置的方式。
locationDisplay.setAutoPanMode(LocationDisplay.AutoPanMode.RECENTER);
ActivityCompat.requestPermissions(MainActi.this,reqPermissions,requestCode);
mMapView.setViewpointCenterAsync(locationDisplay.getMapLocation(),200);
测量工具:此系统可以实现测量距离、测量面2种测量功能,测量结果实时显示在界面上,根据距离可以判断视图上的要素的相对位置。
Geometry geometry=mainSketchEditor.getGeometry();
Polyline ply=(Polyline)GeometryEngine.project(geometry,SpatialReference.
create(3857));
String tv="Lengh:"+Math.round(GeometryEngine.length(ply))+"m";
Polygon polygon=(Polygon)GeometryEngine.project(polygonGeometry,
SpatialReference.create(3857));
LinearUnit linearUnit=(LinearUnit)
SpatialReference.create(3857).getUnit();
AreaUnit unit=newAreaUnit(linearUnit);
String tv="Area:"+Math.round(Math.abs(GeometryEngine.area(polygon)))+"m2";
本次系统已经在成都市数字城管基础数据普查更新检验项目中应用,该项目的检验数据包括gdb 矢量数据、jpg 照片等,其中gdb 矢量数据中涉及城管部件点、城管部件线、单元网格、门前三包、兴趣点、社区界线等若干图层,要素类型涉及点、线、面3 种。本次为了辅助检验人员检验判断实地位置,同时收集了数字正射影像、道路数据。检验人员使用测绘产品外业巡检系统时,可离线访问工作目录中存储的tpk 和已经处理后的Shapefile 样本数据,并在平板电脑中绘制检查点、检查线、检查面等图形,同时记录相关检查属性,包括要素错误类型、错误描述等信息,并存储在工作目录中,有效提高测绘产品的外业检验效率。
2.3.1 数据准备
tpk 是ArcGIS10.1 推出的一种新的数据文件类型,主要是用于将切片文件打包形成离线地图包,可以用于在移动设备中使用离线切片。切片是由多个256× 256 像素的图片组成,tpk 具体来说属于zip 格式压缩文件的一种,它是切片图片按一定规则组织后对其进行压缩并修改文件扩展名制作而成,本次tpk 数据的制作平台采用ArcGIS10.2.2 软件。该数据具备体积小、加载速度快的优点,同时由于移动端设备硬件配置性能限制,本次把影像数据切片打包到本地,即从移动端本地加载地图,检验人员可以在外业质检系统中很流畅地对tpk 数据进行加载、浏览、放大、缩小等操作。
通过数据裁剪、制作tpk 等功能,可以将总的gdb 数据库、数字正射影像,根据分幅结合图或者行政界线进行裁剪,形成每个样本数据组织目录,样本目录包含裁剪后的shp 文件夹和调绘底图数据(tpk)。本次制作tpk 数据的数据源是数字正射影像和道路矢量数据,将道路名称进行标注,检验人员可以根据底图上的道路名称迅速判断当前所在位置,其中tpk 命名格式为样本名称+“.tpk”,其中shp 文件夹内包含城管部件点、城管部件线、兴趣点、界线4 个图层。
2.3.2 加载编辑
使用软件的加载数据功能,数据加载成功后,软件顶部会显示样本名称,地图视图中包含1 个影像图层、4 个矢量(城管部件点、城管部件线、兴趣点、界线)图层,其中属性默认标注为名称+材质+状态,标注位置在点正上方,颜色为红色。
不同的部件对应不同的符号,其中社区界线为红色、工地面为蓝色。视图右上角有指北针,软件右上方显示当前比例尺,“标注属性”功能为实现不同字段的属性标注,分别有3 种标注样式。
“采集照片”功能实现采集要素相对应的实景照片,需选中一个要素,点击该按钮,则弹出拍照界面,可以调用平板电脑的拍摄功能,采集的照片名称和选中的要素是多对一的关系。拍照结束,照片保存在样本数据中的photo 文件夹内,若目录内无photo 文件夹则会自动新建,照片名称为标识码+拍照时间。
“兴趣点照片”功能实现在选中兴趣点之后,点击该按钮则打开该兴趣点对应的实景照片。
“开关天地图”功能是在连接无线网的状态下,加载数据时底图数据可以调用天地图在线服务,若关闭天地图,则调用的底图数据为离线tpk 文件。
“全图显示”功能实现视图范围缩放至全图,全图范围以城管部件点的外接矩形为准。
“图层管理”功能实现控制城管部件点、城管部件线、兴趣点、门前三包4 个矢量图层显示和关闭,包括全选、全不选、单选3 种方式。
“测量”功能实现测量长度和测量面积2 种方式,测量结果在软件的右上方比例尺位置显示量测结果,长度单位是m,面积单位是m2。
界面右侧为编辑属性栏,可以分别对部件点、部件线、兴趣点、门前三包图层单独编辑,例如点击部件点,则锁定其他图层,部件点则处于可编辑状态,编辑的方式包括绘制、选中、保存、删除4 种。
右侧要素属性显示框中的“标识码”为设置不可编辑,其中“错误类型”和“错误描述”两栏属性支持可选列表和自由录入2 种方式,以保证检验描述的规范性,其中“错误描述”可选列表与选择的“错误类型”对应,例如选择的“错误类型”为“部件材质错误”,则“错误描述”的可选列表为部件材质的选项,若错误描述被选择并进行要素保存后,则该选项自动排序第一位,以便于检验人员下一次选择。
为避免检验人员对外业数据进行误删,删除功能仅限对错误记录进行操作,以提高数据的安全性。
若在视图中进行新增绘制要素,软件会根据uuid 的规则自动生成一个32 位唯一文本字符串作为更改要素的标识码。在视图中点击相应位置,选择“错误类型”“错误描述”,选择保存,即可将新增要素保存在对应的shp 图层中,并显示到视图中。
选择按钮,实现在图上进行点选,以点击位置为中心,周围5 个像素以内的要素自动被选中,若要素位置很近或者重叠,会有多个要素被选中,则会弹出被选中要素列表提示选择其中一个进行编辑,选中该要素后进行高亮显示,并将该要素属性显示到右侧属性框中,继而进行检查信息编辑,错误标识结束,点击保存,可将“错误类型”“错误描述”等检查记录保存在该要素属性中。
视图左方有圆形按钮为定位功能,支持网络定位和卫星定位2 种方式,使用之前首先将平板的“位置信息”打开,在定位信息稳定之后,点击定位按钮则视图会自动缩放到当前位置。
2.3.3 内业数据处理
内业数据处理软件主要包括外业质检前的数据准备工作,包括数据裁剪、制作tpk 等,前面已经有介绍。内业处理还包括对外业检查记录的处理工作,即检查意见记录表的输出和整理。
本次检验项目的评价标准是参照GB/T 24356《测绘成果质量检查与验收》,软件根据外业矢量检查记录进行自动化输出符合CMA 体系的检查意见记录表,同时在表中会对每项检查记录进行扣分计算,如表1 所示。错漏分类包括A 类、B 类、C 类、D类4 种,每类对应分数分别是42 分、12 分、4 分、1分。软件自动计算可有效避免人工计算的误差,提高资料整理的准确性和效率。
表1 检查意见记录表
鉴于本次系统的设计、实现、应用,在测绘产品的外业检验中采用ArcGIS 移动端开发技术可以明显提高工作效率,同时ArcGIS Runtime SDK for Android 100.4 版本能够实现对本地Shapefile 文件的编辑。相比之前的开发工具,Android Studio、UI编辑器,具备速度更快、UI 更漂亮、更加智能等多种优点,因此ArcGIS for Android 开发工作更为便捷。随着平板电脑硬件配置不断提高,本次采用的华为M5 处理器已经达到八核,移动端设备的硬件性能已经不再是限制移动端软件开发的瓶颈,因此在测绘产品外业巡检中采用ArcGIS 移动技术的方式是未来发展的主要趋势。