在android添加数据采集,一种基于Android系统的地理信息数据采集方法与流程

c26f3a4b3c1fedf7469155143c23bc9b.gif

本方法属于采集地理信息数据的发明,是一种基于android操作系统和gis地理信息系统进行户外地理信息数据采集的方法。

背景技术:

众所周知地理信息数据采集在很多行业中都有应用,比如说农业中的土地普查、城市管理中的地下管线普查、工业中的地质勘探等都需要去采集地理信息数据。

对于传统的采集模式,外业探测成果需要由草图记录采集点、采集线、采集面的基本地理坐标信息、其它属性信息和备注信息等,非常不便,而针对复杂的采集情况,外业还需要携带纸质资料图以辅助判断,外业效率很低;之后做内业时需要重新整理草图成果,一般外业测量8个小时的成果,内业基本需要4-6小时时间对成果数据进行整合处理,内外业重复工作太多,导致负责行业一线的测量人员工作量大,浪费时间。

技术实现要素:

为了解决传统采集模式效率低下的问题,本发明提出一种基于android系统的地理信息数据采集方法。

为了实现上述目的,本发明采用的具体方案为:一种基于android系统的地理信息数据采集方法,包括以下步骤:

s1.构建自定义地图;将准备好的地图切片导入到arcgisforandroid的地图框架中加载显示;

s2.配置采集信息数据库;使用sqlite轻量级数据库,自定义搭建采集信息的数据库,内嵌于android系统中;

s3.外业数据采集;使用android设备终端到现场测量采集信息,通过在屏幕上选点、连线以及插入点的操作,记录采集点信息,形成采集信息数据库;

s4.内业数据整理;对s3步骤的采集信息数据库进行输出。

有益效果:本发明可以很方便的进行地理信息数据采集,省去了不必要的步骤,节省了人工和时间;并且数据成果在采集时就生成了电子文件,方便携带、保存、分享等。

附图说明

图1为本发明的流程图。

图2为插入点的原理示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

所述的一种基于android系统的地理信息数据采集方法,包括以下步骤:

1.构建自定义地图;地图的底图可以是空白区域也可以从天地图官网下载各省市县行政区域地图,将准备好的地图切片导入到arcgisforandroid的地图框架中加载显示。

2.配置采集信息数据库;使用sqlite轻量级数据库,搭建自定义采集信息的数据库,内嵌于android系统中,预设采集点属性名称;当使用者在android设备上新增采集点时,采集点的地理位置坐标和id系统已默认生成,只需要输入其他属性信息;例如:在土地普查中,需要输入土地类别、作物类型、土地权属人、土地面积等信息,采集点的坐标和id已经默认生成。

3.外业数据采集;使用android设备终端到现场测量采集信息,采集点的坐标信息可以通过android设备的gps获取,也可以通过专业坐标仪器测量后手动录入。通过选点、连线等操作,记录采集点信息,在采集录入的过程中采集信息会自动复显上次输入的内容,只需稍作修改就可以将信息录入sqlite数据库中。

其中,在地图上二次开发手势操作功能,包括选点、连线、插入点的功能,原理如下:

选点时,点击新增点开关按钮,然后点击屏幕任意处可新建测量点,输入测量信息,同时获取该点在地图上的坐标信息、生成点编号,测量信息根据之前自定义的采集数据库进行录入,点编号生成逻辑为每次作业从0000开始计算,每增加一个点,序号加1。

连线时,点击连线开关按钮,然后,点击地图上已存在的两个点,生成一条线段将该两个点连接起来。,其中选择连线点的逻辑如下:

假设手指点击屏幕获取点a0(x0,y0),最大点击范围dmax,此时地图缩放比例为k,计算出在此缩放下的最大点击范围为在此范围内有若干点,分别计算点a0与范围内若干点之间的距离,选出与点a0距离最小的点a1,此时选中测量点a1,同理选出测量点a2,然后连接a1、a2点画出连接线l同时生成连接线l的基本属性包括长度、走向等,根据数据库填写连接线l的属性信息。

插入点时,点击插入点开关按钮,然后,点击地图上的线段,插入所要添加的点,其中插入逻辑如下:

设手指点击屏幕获取点a0(x0,y0),线段的两个端点为b1(x1,y1),c2(x2,y2)则如下图2所示:在线段b1c2上找出与点击点a0距离最近的点p,显然当a0p垂直于b1c2时p点为距离最近的点,则p点就是插入点,自动储存p点的坐标信息,将p点存入采集信息数据库中。

4.内业数据整理;采集作业完成之后,会根据作业名称生成每次作业的数据库db文件,将db文件导入到电脑上使用office的access工具进行打开查看修改异常数据,根据不同需求转换数据格式,也可以导入到cad软件中形成图纸成果,该步骤与以往传统的内业相比省去了将稿纸上的数据往电脑上一一录入的繁琐过程。

需要明确的是:本文所述的屏幕指的是:使用android系统的便携设备的屏幕,具有人机交互能力,如手机等。新增点开关按钮、连线开关按钮、插入点开关按钮是通过软件生成在上述便携设备的屏幕,便于人机交互。

需要明确的是:本文中所述的选点指:用户使用手指或其他设备(如电容笔)点触上述便携设备的屏幕上的地图中的一点,在点触的位置对应地图上的点的过程。

本文中的连线是指:用于用户使用手指或其他设备(如电容笔)点触上述便携设备的屏幕上的地图中的两点,在点触的位置对应地图上的两个点,并将上述连个点连接起来而形成的连线的过程。

本文中的插入点是指:用户发现输入的点有遗漏的场景下,用户使用手指或其他设备(如电容笔)点触上述便携设备的屏幕上的地图中的连线,并将该点插入上述连线的过程。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易变化或替换,都属于本发明的保护范围之内。因此本发明的保护范围所述以权利要求的保护范围为准。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五、MySQL联合查询学习笔记 + 查询总结(详解)

9、 联合查询 union 联合 合并:将多条查询语句的结果合并成一个结果 语法: 查询语句1 UNION 查询语句2 UNION … 应用场景:要查询的结果来自多个表,且多个表之间没有直接的连接关系,但查询的信息相同 特点&#xff…

LeetCode 2124. 检查是否所有 A 都在 B 之前

文章目录1. 题目2. 解题1. 题目 给你一个 仅 由字符 a 和 b 组成的字符串 s 。 如果字符串中 每个 ‘a’ 都出现在 每个 ‘b’ 之前,返回 true ;否则,返回 false 。 示例 1: 输入:s "aaabbb" 输出&#x…

设计模式—桥接模式

前言 这里以电视遥控器为例子引出桥接模式,首先每个牌子的电视都有一个遥控器,可以设计吧遥控器作为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视品牌的遥控器都继承这个抽象类 这样的实现使得每个不同型号的电视都有自…

Android8.1怎么装谷歌,谷歌PixelXL安卓9.0/8.1/8.0/7.X安装面具ROOT方案

免费预览:注意1:请提前备份资料,解锁BL会清空所有数据!注意2:请提前移除谷歌账户(设置—账户—你的谷歌账户—移除)全套资料在教程末尾1. 解锁BL在手机开机状态下,启用开发者选项并勾选「允许USB调试」和「…

六、MySQL DML数据操纵语言学习笔记(插入、修改、删除详解 + 强化复习)

DML语言 数据操作语言: 插入:insert修改:update删除:delete 一、插入语句 (1)方式一:经典的插入方式 语法: insert into 表名(列名,…)values…

LeetCode 2125. 银行中的激光束数量

文章目录1. 题目2. 解题1. 题目 银行内部的防盗安全装置已经激活。 给你一个下标从 0 开始的二进制字符串数组 bank ,表示银行的平面图,这是一个大小为 m x n 的二维矩阵。 bank[i] 表示第 i 行的设备分布,由若干 ‘0’ 和若干 ‘1’ 组成。…

2-Second Scrum Meeting-20151202

任务安排 闫昊: 今日完成:设计学习进度的管理。 明日任务:请假。(编译计组,压力有点大) 金哉仁: 今日完成:继续商讨APP相关界面与设计,安装AndroidStudio。 明日任务&…

android查询所有照片,Android查询外部存储中所有照片

最近写了个自定义相册模块,其中比较核心的算是查询照片了,直接上代码吧val contentUri MediaStore.Files.getContentUri("external")val sortOrder MediaStore.Files.FileColumns.DATE_MODIFIED " DESC"val selection "(${M…

七、MySQL DDL数据定义语言 学习笔记(库和表的创建、修改、删除详解 + 强化复习)

DDL语言 数据定义语言 库和表的管理: 一、库的管理: 创建、修改、删除 二、表的管理: 创建、修改、删除 创建: create 修改: alter 删除: drop 一、库的管理 1、库的创建: 语法: create database [if not exists…

LeetCode 2126. 摧毁小行星(贪心)

文章目录1. 题目2. 解题1. 题目 给你一个整数 mass ,它表示一颗行星的初始质量。 再给你一个整数数组 asteroids ,其中 asteroids[i] 是第 i 颗小行星的质量。 你可以按 任意顺序 重新安排小行星的顺序,然后让行星跟它们发生碰撞。如果行星…

bzoj:2018 [Usaco2009 Nov]农场技艺大赛

Description Input 第1行:10个空格分开的整数: N, a, b, c, d, e, f, g, h, M Output 第1行:满足总重量最轻,且用度之和最大的N头奶牛的总体重模M后的余数。 Sample Input 2 0 1 5 55555555 0 1 0 55555555 55555555Sample Output 51HINT 样例…

android操作系统+流量,为什么我的安卓操作系统走这么多流量?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这是用流量管理软件拦截安卓os偷跑流量的记录!国内的软件没个是能拦截系统联网的! AppID :-1 应用程序名称:Kernel 总数据包阻塞:170 ff02:0000:0000:0000:0000:0000:0000:0016(1) 163.177.66.11(3) 58.250.…

八、一篇文章快速搞懂MySQL 常见的数据类型(整型、小数、字符型、日期型详解)

常见的数据类型 1、数值型: 整型 小数: 定点数 浮点数 2、字符型: 较短的文本:char、varchar 较长的文本:text、blob(较长的二进制数据) 3、日期型: 一、整型 1)分类…

LeetCode 2129. 将标题首字母大写

文章目录1. 题目2. 解题1. 题目 给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 : 如果单词的长度为 1 或者 2 ,所有字母变成小写。否则&#xf…

九、MySQL常见约束相关知识总结 学习笔记 + 强化复习(六大约束)

常见约束: 一、含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性 二、分类:六大约束 1、NOT NULL:非空,用于保证该字段的值不能为空 比如姓名、学号等 2、DEFAULT:默认&…

html 获取鼠标在canvas上的坐标,html5-canvas 检测鼠标在画布上的位置

示例本示例将说明如何获取鼠标相对于画布的位置,例如(0,0)HTML5 Canvas的左上角。的e.clientX和e.clientY将获得相对于文档的顶部位置的鼠标,来改变这种是基于画布的顶部,我们减去left,并right从客户端X和Y的画布位置var canvas …

LeetCode 2130. 链表最大孪生和(链表快慢指针+反转链表+双指针)

文章目录1. 题目2. 解题1. 题目 在一个大小为 n 且 n 为 偶数 的链表中&#xff0c;对于 0 < i < (n / 2) - 1 的 i &#xff0c;第 i 个节点&#xff08;下标从 0 开始&#xff09;的孪生节点为第 (n-1-i) 个节点 。 比方说&#xff0c;n 4 那么节点 0 是节点 3 的孪…

Splay初步【bzoj1503】

做了一道水题&#xff0c;把bzoj1503用Splay重新写了一下。 1 #include <bits/stdc.h>2 #define rep(i, a, b) for (int i a; i < b; i)3 #define REP(i, a, b) for (int i a; i < b; i)4 #define drep(i, a, b) for (int i a; i > b; i--)5 #define mp make…

原生html5时间组件,JFinal遇到了原生Html5时间组件格式转换问题怎么处理?

今天JBolt种子用户群里有人提问&#xff0c;JFinal针对原生Html5的日期时间选择组件的格式转换支持有问题&#xff0c;报错。于是我在JBolt的Demo中加入了这些去测试一下&#xff0c;这里使用的都是原生Html组件。Input type“text”默认就是一个简单的单行文本输入框。如果修改…

LeetCode 2131. 连接两字母单词得到的最长回文串

文章目录1. 题目2. 解题1. 题目 给你一个字符串数组 words 。words 中每个元素都是一个包含 两个 小写英文字母的单词。 请你从 words 中选择一些元素并按 任意顺序 连接它们&#xff0c;并得到一个 尽可能长的回文串 。每个元素 至多 只能使用一次。 请你返回你能得到的最长…