当前位置:首页 > 工业控制 > 《机电信息》
[导读]摘 要:针对人们日常生活中的出行信息管理问题 ,对个人出行的位置信息、时间信息以及行程中所记录的照片和文字信息的管 理方式进行了个性化研究与设计 , 以Android Sstdio为开发平台 , 以开源openSsreesMap作为网络电子地图平台 , 以APP的形式为用户提 供相应服务 ,主要实现了实时定位功能、地点搜索功能、路径规划功能、行程管理功能及相册功能 。个人出行信息管理系统已基本涵盖 电子地图所具有的基础功能 ,另外还包含与个人出行相关的行程信息的存储与展示功能 ,可以记录位置信息、图片和文字信息等。作为 一个日常使用的APP ,系统界面简洁、功能明确 ,为用户的行程管理提供了有效的途径。

引言

在电子地图领域除了做导航方面的公司以外 ,还有许多公司在做综合旅游服务 , 比如去哪儿旅行、携程旅行、同程旅游和途牛旅游等 ,这些产品针对的是旅游业中人们的需求。以前的旅游基本是人们亲自去挑选旅行社和导游 ,而现在人们则可以很方便地通过自己手中的智能手机打开这些APP来进行自己的旅游规划 , 这就为本文的设计提供了思路 , 既要避其锋芒 ,又要曲径通幽 ,使用电子地图来为人们提供不一样的服务。

正是发现了人们在日常出行信息管理方面的需求 ,我们决定将研究方向瞄准这些方面 。其实这种用于人们日常生活中的看似可有可无的移动应用有些时候往往能很好地填补人们的空闲时间 ,可以为人们的日常出行添姿加彩 ,从某种角度看本系统很好地满足了许多用户的隐性需求。

1 个人出行信息管理系统技术原理

1. 1 开源地图openStreetMap

openSsreesMap(OSM)被称作电子地图中的维基百科 , 是一个网络电子地图的合作计划 , 目的是想建立一个内容广泛而且可以让所有人进行编辑的世界范围的地图。

OSM在Android系统中的应用被集成在了OSMDroid 中 ,开发者将相关的包导入到自己的项目中即可在代码中调用其相关方法 。鉴于OSM资源的完全免费 ,开发者在使用OSMDroid 时不需要像使用其他大公司地图时一样申请相关的APIkey,只要在导入相关包之后开发者便可实现许多基本的地图服务 , 比如定位、搜索、标记、路径规划、离线地图等功能。

1.2 关键Java类及函数

本文中一些功能是需要获取网络数据的 ,这样就会有一定的延时 ,所以不可以在主线程中直接调用 , 需要子线程或采用异步的方式。Android中有一种特有的异步类可以解决本文中遇到的绝大多数网络延时问题 , 即AsyncTask 。简单说来就是在UI主线程运行时 ,通过异步方式完成一些操作 ,AsyncTask 允许后台执行一个异步任务 ,可以将比较耗时的操作放在异步任务当中来执行 ,并随时将任务执行的结果返回给UI线程来更新UI控件 。所以 ,AsyncTask往往可以轻松解决多线程之间的通信问题。

另外 ,在实现相册功能的时候要解决图片显示时文件内容过大以及文件数目过多而产生的otsofMemory(ooM)异常的问题 ,本文是使用外部类ImageLoader以及异步处理的方式来进行解决的 。ImageLoader的工作原理大致是:在显示图片的时候 ,它会先在内存中进行查找 , 内存中找不到就会去本地查找 ,如果依然没有找到就建立一个新的线程来下载这张图片 ,然后会把下载成功的图片同时缓存到内存和本地 。另外 ,因为ImageLoader对图片采用的是软引用的形式 ,所以内存中的图片会在内存不足的时候被系统回收(内存足够的时候不会对其进行垃圾回收) 。

1.3 功能模块设计概述

本文研究的产品主要实现以下几个功能模块:定位功能模块、地点搜索功能模块、路径规划功能模块、拍照功能模块、行程管理功能模块、时间轴功能模块、相册功能模块(图1) 。

(1)行程管理功能模块:本研究的主题便是对用户的出行信息进行管理 ,用户可自行设定行程主题及时间 , 点击开始行程后即可通过拍照记录行程状态以及位置信息 ,所拍照片会自动存储到所对应行程主题文件夹下 ,并在相册中对应显示相关信息。用户也可以在未创建行程的情况下使用拍照功能 ,此时会将照片默认存储于以当天日期为名创建的文件夹下 ,同时也会自动记录位置信息 ,相册中显示的照片信息即为无主题。

(2)时间轴功能模块:用户在点击时间轴按钮后会在地图界面标注出用户在近1一天内到过的所有位置 ,记录下用户这些天的足迹。用户在拍照时应用会自动记录用户的位置信息 ,然后把近1一天的位置信息挑选出来标注在地图上。

(3)相册功能模块:本模块将用户所拍照片进行集中展示 ,界面设计类似于相册 ,用户可以浏览自己拍过的照片 ,这些照片会自动对应显示主题和时间信息 ,用户也可在照片下方为照片添加文字介绍。

2 个人出行信息管理系统的具体实现

2. 1 相册功能模块的实现与测试

本文的相册功能主要是由用户所拍照片经应用分类存储后进行展示 ,本模块的实现流程图如图2所示。

2. 1. 1 照片存储功能的实现

为了实现照片的存储功能 ,本文设定在每次打开应用时都会执行一个功能函数 , 即创建一个以当前日期为名的文件夹 ,这样就可以让不在行程中的用户所拍照片找到存储的路径。

getPhotoFileName()这个函数的功能就是给所拍照片命名 ,从代码中可以了解到本文是使用当前时间为照片命名的 ,时间要精确到秒 ,这样才可以保证照片文件不同名。

getsDPath()函数的作用是将照片分两种情况进行存储 ,如果用户正在行程中便会存储到以当前行程名称命名的文件夹中去 ,如果用户未在行程中则会将照片存储到以当前日期命名的文件夹中去 。这里用到了sharedPreferences来存储行程 的状态以及行程的名称 ,这样就可以在不同的Activity之间共同使用这些数据 ,而且关闭应用再打开后数据不会重置。

行程的状态即是否处于行程中 , 以及行程主题名称相关的数据信息要存储在sharedPreferences中 ,这样在每次打开程序时都可以从文件中读取相关数据。

2. 1.2 处理照片文件以防ooM现象

在行程管理的UI界面本文设计了一个在屏幕上半部分轮播显示每次行程中的一 张照片的功能 ,如果直接读取原文件显示到屏幕上很可能导致ooM情况。本文最先做的工作便是处理照片原文件 ,对其进行压缩处理使之能够以合适的文件大小显示到屏幕上而不会造成ooM现象。这里主要使用到了decodeBitmapFromFile和calculatesamplesize两个函数:在decode一BitmapFromFile函数中用到了BitmapFactory.options ,首先要将options .inJustDecodeBounds设置为true , 这个时候从所给路径中获取图片时只是获取图片的属性信息而不会真正地耗费内存去加载图片 ,然后使用options.insamplesize=calculatesample一 size(options,400,200)这句代码对所选图片进行压缩处理 , 其中calculatesamplesize(options,400,200)的参数可以 自行设定 。接着将options.inJustDecodeBounds设置为false ,这样程序就会去加载已经经过处理的照片了。

2.1.3 自定义照片简介功能的实现

要将接收到的主题和时间数据显示到对应的文本框中是由目前的position来确定的 , 上面的代码通过取余的操作使 position得以循环 ,对应的数据信息也成功地显示在了正确位置。相册的最后一个功能是自定义照片简介 ,其实前述代码中已经透露了这个功能的实现方式 ,不像显示主题和时间一样可以使用List数组作为容器 ,这里需要使用HashMap来存储照片的简介信息 。 因为简介不一 定每张照片都会有 , 所以其 position是不连续的 ,使用for循环无法实现照片与简介的对应显示 ,而HashMap可以很好地解决这一 问题。

点击保存按钮时将当前照片position对应的简介信息存储到对应的HashMap中 ,这个HashMap的key是整型的 ,用于存储 position:value是string类型的 ,用于存储文字简介信息。

2.2 行程管理功能模块的实现与测试

本模块主要功能为对用户行程信息的管理 ,模块流程图如图3所示。

sharedPreferences是Android平台上一个轻量级的存储类 ,可以存储一些配置信息或者一些简单的数据信息 。本文使用sharedPreferences来存储行程状态等数据信息。

点击出发按钮首先会判断用户当前是否处于行程中 ,若已处于行程之中会在屏幕下方弹出Toast语句提醒用户已在行程中 ,如果未处于行程中则会进入创建行程语句。若要开始行程需要输入行程的主题以及时间 , 否则会提示用户要先将信息输入完整 ,一切准备就绪之后便会开始创建行程。这里需要创建此次行程对应的文件夹以及将此次行程的主题和时间分别存储到sharedPreferences中并进行编号 ,编号是为了可以在实现轮播显示每次行程的一张照片的功能时可以获取到每次行程的文件夹名称 。最后还需要将行程状态设置为在行程中, 实现逻辑上的完整 ,然后要在屏幕下方弹出Toast语句提醒用户行程已开始。

时间轴功能用于在地图上显示用户近l4天内的出行坐标点 ,这个功能涉及Activity之间的数据传输问题 ,在点击地图界 面 的 按 钮 跳 转 到 行 程 管 理 界 面 时 使 用 了 startActivity一 ForResult()的函数 ,就可以在点击时间轴按钮时实现其功能 。在点时间轴按钮后会跳转到地图界面 , 同时地图界面的onActivityResult函数负责接收信息 。

3 成果展示

图4、图5展示了相册功能。

行程管理和时间轴功能成果图如图6、图7所示 。

4 结语

本研究从最基础的实时定位功能、地点搜索功能、路径规划功能做起 ,给用户提供电子地图类应用的基础服务:然后在此基础上实现对行程的管理 ,包括开始行程、设置行程主题和 时间、结束行程等功能 ,还可以提供时间轴的功能来显示用户 最近一段时间的足迹:最后还实现了相册的功能 ,可以存储并 显示用户在行程中所拍摄的照片 。本系统在相关应用的一些功能实现方面提供了解决方法 ,并且提出了在行程管理领域的一种手机服务模式 ,具有一定的应用和发展前景。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭