GPS Tools For Android

前言:

  • GPS数据在做GIS开发时的一份宝贵的数据,在不侵犯他人隐私的情况下通过互联网的模式收集GPS是成本最为低廉的一种模式。

背景:

  • 现在公司在做一个项目,接触到一些有关导航,地图等。而其中比较重要的是GPS数据,公司在GPS数据采购上平均每年都会花费数百万。
  • 如果说有些数据花钱能够买到的话那么到还好至少是一条获取数据的途径,然而一些试验局的项目数据只能通过自己去采集,你需要开着专业测绘车以及其他设备到每个指定的地点进行数据的采集工作。
  • 通常试验局的规模不大数据量也不会很大,数据的要求也不会太高在这种情况下我就自主研发了一款工具软件来解决我实际工作中所遇到的问题。

需求:

  • 实现每10秒或者每移动10米存储一份GPS数据,每天的数据量为1440条,那么每年的数据量为525600条。
  • 实现手动的定位GPS数据存储功能,手动数据要求可以编辑,可以添加数据的描述信息。
  • 以上是工作过程当中是遇到需求,其实还包含了一些隐性的需求没被提及但是在我的第一个版本中就包含了很多隐性的需求。如:采集数据的显示,导出等等。

目的:

  • 编写此demo的目的是实地测量当地城市公交站点的GPS数据。

解决方案:

  • 原本打算使用高德地图的geocoder功能获取GPS数据的考虑的他有AGPS定位的功能但是同时没法保证其的定位数据的原始性,担心其数据是做过处理的所以果断的抉择了原始的GPS定位数据,虽然原始功能不带AGPS定位功能。
  • 由于我们的测量工作都是户外基于这种场景完全可以使用原始的GPS定位功能。

  • 基于需求的两种模式,可以分别存储两张表一张用于存储动态的GPS数据,另外一张用于存储手动的定位数据。

  • 数据表结构唯一的区别在于后者多一个描述信息的字段,用于存储其的描述信息添加一个编辑的功能。

用户体验:

  • 尽量少的页面跳转,按最少的按键。原本打算加广告的,不过觉得没什么意思,觉得会用这个软件的人相当的小众。广告在没有用户量的前提下根本就毫无意义,所以从多方面考虑断然的放弃了广告。

发布日志:

  • 本应用为免费开源项目源码均在 sourceforge.net 上进行托管,在条件允许的情况下作者会不断的进行更新与发布。
  • gpstools v0.1 for test (版本说明,小版本号为奇数的均为免费开源无广告版本,为偶数的均为商业或者有广告并且不开放源码。)
  • GPS数据自动采集,手动采集两种数据采集方式,其中手动采集支持添加描述信息。自动采集数据时位置未发生偏移不采集重复数据。
  • GPS数据采集数据的展示功能,提供分页显示。
  • GPS数据的导出,支持XML,CSV两种格式。
  • 系统设置功能,可以有选择的删选导出格式,分页数,以及清空历史数据。
  • 用户手册功能,让用户熟知此软件的背景,方便其进一步的了解此软件。
  • 提供用户反馈的功能,方便作者收集反馈信息在下个版本中再予以跟新。(这个功能我不知道有多少用户愿意用,出发点还是希望有用户提供宝贵意见)

关于作者:

    • 热爱手指在键盘上跳舞的感觉,朋友们都叫我键盘动物。
    • 新浪微博:键盘动物
    • MSN/邮箱:fangqing.fan#hotmail.com
    • 小小程序员一枚,专注移动开发。关注领域智能交通,移动通讯,物联网等。

参考文章

FanfqGPS Tools For Android, 2012.

有关项目上潜在需要的移动端GIS系统源码整理,待后续更新的更多相关文章

  1. ArrayDeque(JDK双端队列)源码深度剖析

    ArrayDeque(JDK双端队列)源码深度剖析 前言 在本篇文章当中主要跟大家介绍JDK给我们提供的一种用数组实现的双端队列,在之前的文章LinkedList源码剖析当中我们已经介绍了一种双端队列 ...

  2. netty服务端启动--ServerBootstrap源码解析

    netty服务端启动--ServerBootstrap源码解析 前面的第一篇文章中,我以spark中的netty客户端的创建为切入点,分析了netty的客户端引导类Bootstrap的参数设置以及启动 ...

  3. 基于tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)

    基于tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展 ...

  4. 基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)

    基于python语言的tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的 ...

  5. 上传本地代码到github&&从github下载源码

    最近在玩github,下面简单介绍下githup的使用 将本地代码同步到github. 使用Git GUI同步  1,先下载git,然后安装.右键如图所示. 2,在github里新建一个 reposi ...

  6. java crm 进销存 springmvc SSM 项目 系统 源码

    系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3  SSM ...

  7. iOS项目开发实战——iOS网络编程获取网页Html源码

    现在我们身处互联网的时代.不论什么一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比較low,这里我们将会開始使用Swift开发iOS应用,而且主要来 ...

  8. ZooKeeper单机服务端的启动源码阅读

    程序的入口QuorumPeerMain public static void main(String[] args) { // QuorumPeerMain main = new QuorumPeer ...

  9. Netty服务端的启动源码分析

    ServerBootstrap的构造: public class ServerBootstrap extends AbstractBootstrap<ServerBootstrap, Serve ...

随机推荐

  1. github 使用教程初级版

    github 是一个基于 git 的代码托管平台,付费用户可以建私人仓库,免费用户只能使用公共仓库.对于一般人来说公共仓库就已经足够了,而且也没多少代码来管理.下面简单介绍如何使用 github,供初 ...

  2. iis 301重定向

    把www.a.com重定向到www.b.com 只需在www.a.com上面右键属性---主目录,重定向到url,下面填上www.b.com,再把资源永久重定向勾选上即可. 注意,如果你需要把域名后面 ...

  3. MYSQL57密码策略修改

    1.查看当前的密码测试 show variables like 'validate_password%';

  4. CodeForces #369 div2 D Directed Roads DFS

    题目链接:D Directed Roads 题意:给出n个点和n条边,n条边一定都是从1~n点出发的有向边.这个图被认为是有环的,现在问你有多少个边的set,满足对这个set里的所有边恰好反转一次(方 ...

  5. iOS开发UI篇—简单介绍静态单元格的使用

    iOS开发UI篇—简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...

  6. PHP批量过滤MYSQL数据库内站外链接和图片

    因发现站内很多引用站外文章的链接失效,产生大量的死链接,对于搜索引擎来说是极不友好的,很不利于网站优化,所以站内添加了站外链接过滤功能,对于新加的文章,在添加入库时就自动增加rel="nof ...

  7. scrapy数据存入mongodb

    存入mongodb的pipelines文件是这样子写的 from openpyxl import Workbook from scrapy.conf import settings import py ...

  8. hdu 4642 Fliping game

    http://acm.hdu.edu.cn/showproblem.php?pid=4642 对于给定的矩阵 操作步数的奇偶性是确定的 奇数步Alice赢 否则Bob赢 从左上角向右下角遍历遇到1就进 ...

  9. wordpress的创建

    1.将mysql的安装文件放入虚拟机 2.搭建yum库 3.依次安装mysql的5个文件 最后一个server需要的依赖太多,所以用yum进行安装. 或者直接全部用yum进行安装 6.进行mysql的 ...

  10. android基础(四)service

    Service的两种启动方式:startService()与bindService()   statService:生命周期:[onCreate()-  >onStartCommand()-&g ...