查字典论文网 >> 基于造林绿化工程的林业信息平台构建

基于造林绿化工程的林业信息平台构建

小编:

1 开发环境

本系统以Eclipse为开发平台,安装了JDK、ADT、Android SDK等等工具包,以ArcGIS Runtime SDK for Android 10.2为二次开发工具,集成一系列功能模块。

1.1 Eclipse

Eclipse是一个开放源代码的、基于Java的、可扩展的开发平台,是框架与服务的集合, 基于扩展点的插件体系结构。 支持多重平台特性,多种语言,是系统开发领域中应用最为广泛的平台之一。

Eclipse的特点:一实现了真正的可拓展、可配置 ,二支持多重平台特性,多种语言 ,三文档生成器javadoc(从源码注释中提取文档)。

1.2 JDK工具包

Java Development Kit是太阳微系统针对Java开发人员发布的免费软件开发工具包。

JDK的组成: 编译器javac(由将源程序转成字节码)、打包工具jar(将相关的类文件打包成一个文件)、 文档生成器javadoc(从源码注释中提取文档)、 查错工具jdb 、 系统调试组件、 检测工具Jconsole等。

1.3 Android SDK

Android software development kit 是 Android专属的软件开发工具包。

1.4 ADT工具包

Android Development Tools,在Eclipse编译IDE环境中为 Android开发提供开发工具的升级或者变更。

1.5 ArcGIS Runtime SDK for Android工具包

该工具包为Esri公司为二次系统开发者提供的移动应用开发包,支持iOS、Android、Windows Phone三大主流移动操作系统。 最主要的控件MapView提供了基本的在线离线切片数据的显示功能,可以直接加载ArcGIS制作的离线切片数据,切片数据中含有基本的投影、空间参考、地理坐标等地理信息,在此基础上可以实现显示和导航地图、查找地址和位置、识别定位GIS特征、测量线和区域、ArcGIS在线、搜寻并共享地图资源、采集GIS数据等功能。

2 数据库简介

2.1 SQLite

SQLite是一款基于文本的轻型关系型数据库,占用资源非常低,但是存储容量足够大,支持数据库大小达到2T,处理速度快,支持跨平台,输入存储读入简单,能够使用C、 PHP、Java、C#、Python等很多语言,支持的SQL语句不逊色于其他开源数据库,最重要的是Android手机中内置SQLite数据库,为开发提供了很大便利。

2.2 字段介绍

(1)小班区域 (_id INTEGER PRIMARY KEY AUTOINCREMENT, Geometry WKT TEXT,QYMC TEXT, OtherInfo TEXT, Area TEXT)

(2)树木点 (_id INTEGER PRIMARY KEY AUTOINCREMENT, GeometryWKTTEXT, TreeTypeTEXT, TreeHEightText, TreeDBH, OtherInfo TEXT)

(3)摄影点(_id INTEGER PRIMARY KEY AUTOINCREMENT, dataBLOB, longitude TEXT, latitude TEXT, altitudeTEXT, otherinfo TEXT)

(4)用户(_id INTEGER PRIMARY KEY AUTOINCREMENT, NameTEXT, Password TEXT)。

3 系统功能实现

3.1 界面实现

考虑用户在不同阶段的操作,尽量将所有所需控件展现在界面上的原则进行界面设计,主要分以下三个步骤: 利用Linear Layout对整个手机屏幕进行分割 ;TobHost对所有控件按功能模块划分;Fragment按照不同的操作模式显示结果或显示控制按钮 。运用规范的图片Button搭建起最终整体的界面框架 。

3.2 功能实现

3.2.1 图层控制

在图层控制Fragment中通过getActivity获取父界面,再通过findViewById方法获取mapview控件,由mapview的getLayer方法得到对应的切片数据图层与Graphiclayer图层,通过图层的setVisible方法即可实现图层能见控制功能。

3.2.2 GPS相关功能

(1)定位

通过getSystemService方法可以得到LocationManager,通过LocationManager的requestLocationUpdates方法可以设相应位置变化监听的最小时间间隔和最小距离间隔。在onLocationChanged函数中可获得当前位置的GPS经纬度信息。

(2)GPS开关控制

通过Locationmanager的removeUpdates方法停止位置变化监听。

3.2.3 采集图像

(1)拍照

通过getCameraInstance方法得到Camera,通过Camera的autoFocus和takePicture方法可得到自动对焦的影像数据。

通过LocationListener的onLocationChanged方法可得到摄影瞬间的经纬度信息及高程信息。综合利用平板电脑中各类硬件设备与传感器即可实现影像及附属信息的采集。

(2)入库

通过SQLiteDatabase的getWritableDatabase方法得到可写数据库,将相片存成BLOB格式,最终摄影空间位置信息、影像数据以及其他备注信息全部封装在ContentValues中,调用WriteableDatabase的insert方法即可完成入库操作。

(3)列表查看

通过SQLiteDatabase的getReadableDatabase方法得到只读数据库,通过只读数据库的query方法可所有摄影数据的Cursor对象,读出其中所有的经纬度信息,通过坐标系转换得到摄影点在mapview中的位置,给予摄影点位PictureMarkerSymbol后生成Graphic,通过GraphicLayer的addGraphic方法即可完成摄影点位的地图显示。

(4)还原展示

通过SQLiteDatabase的getReadableDatabase方法得到只读数据库,通过摄影点数据记录的id得到对应数据记录,将属性与图像绑定到对应控件完成显示。通过SQLiteDatabase的getWritableDatabase方法得到可写数据库,通过关键字id找到对应数据记录通过delete语句可完成数据删除。

3.2.4 切换底图

运用startActivityForResult方法打开选择底图窗体,窗体加载时读取默认文件下的底图,将每一个底图名称生成一个RadioButton,选择对应地图名称,信息通过setArguments方法传到地图窗口生成localTiledLayer并且添加到MapView,完成底图的切换。

3.2.5 小班区域与树木点绘制

GraphicLayer是ArcGIS Runtime SDK for Android中提供给用户编绘图形的专用图层,Graphiclayer中可以绘制任何几何类型,要想绘制几何图形就必须先新建Graphiclayer并加载到MapView中。

(1)绘制

为mapview绑定onSingleTap单击监听器,单击屏幕时,记录点击点屏幕坐标,通过MapView的tomappoint方法将屏幕坐标转换为与底图坐标系投影均相同的地理坐标点结合针对不同的绘制类型生成不同的Simplesymbol生成Graphic并通过addGraphic方法将新生成的Graphic加载到MapView的Graphiclayer完成绘制。

(2)撤销操作

撤销一步就删除Multipoint中最后一个点,然后使用GraphicLayer的UpdataGraphic方法,用编辑后的Multipoint重新生成的图形更新GraphicLayer中最后一个Graphic就可完成撤销操作。

(3)完善属性并入库

通过startActivityForResult方法打开属性补充窗口,完善属性信息后回传到主窗体,通过SQLiteDatabase的getWritableDatabase获得事前生成的可写数据库,通过Graphic的getAttributeValue方法獲得对应字段的属性值,然后将Graphic的getGeometry方法得到对应Geometry,再通过自己编写的GeometryToWKT方法将几何信息转化为WKT字符串存储,最后将WKT以及对应的属性信息封装到ContentValues中通过getWritableDatabase的insert方法将所有信息存入SQLite数据库,最后将可写数据库关闭就可完成数据的入库操作。

(4)屏幕选取

通过GraphicLayer的getGraphicIDs方法获取当前点击位置所有在一定容差内的Graphic对象。

(5)属性编辑

通过通过Fragment的setArguments方法传到对应点编辑Fragment,Fragment内可以完成编辑删除操作。

(6)数据浏览

利用ListFragment布局用于数据显示,通过getReadableDatabase方法获得只读数据库,通过只读数据库的query方法获取数据集合Cursor,利用SimpleCursorAdapter生成适配器,将适配器利用setListAdapter方法即可实现数据显示。

4 系统优点

4.1 所有数据均实时存储到数据库,即使程序出现BUG数据不会丢失

4.2 绘制保存标记操作简便,将尽量多的操作从按钮中解放到手势操作

4.3 自动分类信息统计,自动读取当前数据库中数据,分类并进行数据统计

热点推荐

上一篇:GIS在林业管理系统中的应用探讨

下一篇:如何对幼儿进行德育教育论文 幼儿园关于德育教育之类的论文

校舍安全排查整治工作方案 最新违法解除劳动合同案例(优秀13篇)