有关项目上潜在需要的移动端GIS系统源码整理,待后续更新
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
- 小小程序员一枚,专注移动开发。关注领域智能交通,移动通讯,物联网等。
参考文章
Fanfq, GPS Tools For Android, 2012.
有关项目上潜在需要的移动端GIS系统源码整理,待后续更新的更多相关文章
- ArrayDeque(JDK双端队列)源码深度剖析
ArrayDeque(JDK双端队列)源码深度剖析 前言 在本篇文章当中主要跟大家介绍JDK给我们提供的一种用数组实现的双端队列,在之前的文章LinkedList源码剖析当中我们已经介绍了一种双端队列 ...
- netty服务端启动--ServerBootstrap源码解析
netty服务端启动--ServerBootstrap源码解析 前面的第一篇文章中,我以spark中的netty客户端的创建为切入点,分析了netty的客户端引导类Bootstrap的参数设置以及启动 ...
- 基于tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)
基于tensorflow的‘端到端’的字符型验证码识别 1 Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展 ...
- 基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)
基于python语言的tensorflow的‘端到端’的字符型验证码识别 1 Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的 ...
- 上传本地代码到github&&从github下载源码
最近在玩github,下面简单介绍下githup的使用 将本地代码同步到github. 使用Git GUI同步 1,先下载git,然后安装.右键如图所示. 2,在github里新建一个 reposi ...
- java crm 进销存 springmvc SSM 项目 系统 源码
系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM ...
- iOS项目开发实战——iOS网络编程获取网页Html源码
现在我们身处互联网的时代.不论什么一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比較low,这里我们将会開始使用Swift开发iOS应用,而且主要来 ...
- ZooKeeper单机服务端的启动源码阅读
程序的入口QuorumPeerMain public static void main(String[] args) { // QuorumPeerMain main = new QuorumPeer ...
- Netty服务端的启动源码分析
ServerBootstrap的构造: public class ServerBootstrap extends AbstractBootstrap<ServerBootstrap, Serve ...
随机推荐
- JAVA 十六进制与字符串的转换
public static String toHexString(int i)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式.如果参数为负,那么无符号整数值为参数加上 232:否则等于该参 ...
- Supercell only provide the best games for players
Supercell only provide the best games for players Supercell start to change all, Supercell's first t ...
- android动画的Interpolator
1.Interpolator插值,控制一个动画变化过程中是线性匀速变化,还是加速变化,还是按照某种函数关系变化. 2.android提供的几种插值. 3.对上边提供的各个效果进行测试 (1)Accel ...
- iOS开发UI篇—多控制器和导航控制器简单介绍
iOS开发UI篇—多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...
- PHP 面向对象编程(2)
一些内建方法: class Person { public $isAlive = true; function __construct($name) { //这里我们创建了一个name的属性 $thi ...
- js里function的apply vs. bind vs. call
js里除了直接调用obj.func()之外,还提供了另外3种调用方式:apply.bind.call,都在function的原型里.这3种方法的异同在stackoverflow的这个答案里说的最清楚, ...
- IT公司100题-32-交换元素,使数组差最小
问题描述: 有两个整数序列a, b,大小都为n, 序列元素的值任意整数,无序. 要求:通过交换a, b 中的元素,使得sum(a)-sum(b),差最小. 例如: var a=[80, 40, 60, ...
- php匿名函数和闭包
一,匿名函数 一个没有名字的函数,使用function定义 <?php $fun = function($a,$b) { return $a+$b; }; echo $fun(1,2);//输出 ...
- UML学习笔记2
4.协作图 它跟顺序图区别:前者强调时间,后者强调空间.两者可以转换 5.状态图 主要用于时间建模 6.活动图 7.构件图
- 修改LR自带的示例程序端口号
问题:LoadRunner的HP Web Tours 应用程序服务启动不了,提示1080端口被占用的问题 解决方法: 查看占用1080端口的进程 Cmd 窗口输入netstat –ano 找到占用该 ...