APP下载

基于Android平台的规模化养殖管理用户定位系统的设计与开发

2016-09-24刘波平施炜利

安徽农业科学 2016年18期
关键词:规模化轨迹管理人员

刘波平,施炜利,裘 锋,胡 敏,付 康

(1.江西省计算技术研究所,江西南昌 330003;2.江西省软件工程技术研究中心,江西南昌 330003)



基于Android平台的规模化养殖管理用户定位系统的设计与开发

刘波平1,2,施炜利1,2,裘 锋1,2,胡 敏1,2,付 康1,2

(1.江西省计算技术研究所,江西南昌 330003;2.江西省软件工程技术研究中心,江西南昌 330003)

[目的]针对当前规模化养殖人员的有效管理。[方法]设计基于Android平台的定位系统,获取人员定位的位置数据。[结果]对单人轨迹和多人轨迹实现可视化查看,并进行实时监控。[结论]定位系统运行稳定,能够较好地达到实时定位的目的。

Android;用户定位;GPS;规模化养殖

随着3G无线网络通信技术的不断提升和移动智能设备的大量研发生产,智能手机作为一种便捷、美观、实用的通讯设备正被越来越多的人接受,已经成为人们日常生活中获取主要信息的重要工具之一,如自动控制[1-2]、医疗仪器[3-5]、消费电子[2,6-9]等领域取得了许多成功的应用案例。因此,在手机端安装更多应用并推广其服务更大程度上满足了用户需求,移动设备的Web地图服务就是其重要的一部分,尤其是地图服务中的一项基于位置信息的服务(Location Based Service,LBS),倍受喜爱和关注。通过利用移动终端的定位技术,设备与服务器之间互联通信,为用户提供了各种与位置有关的信息服务。

随着江西省畜禽养殖业的迅猛发展,传统的畜禽养殖开始由粗放式的管理向集约化的管理方式转变,规模化畜禽养殖因管理落后而出现的问题也越来越多,尤其在人员管理中存在的问题显得尤为突出。针对此问题,通过研究多种形式的用户定位方法如GPS、WIFI或者基站等,笔者设计了一套基于Android平台的用户定位系统,并在规模化养殖管理人员中推广试用,取得了较明显的效果。

1 Android系统

Android系统[10-12]架构从下层到上层有Linux内核层、系统运行库层、应用程序框架层、应用层四层结构。

1.1Linux内核层位于Android系统架构最底层,Android的核心系统服务主要有安全性、内存管理、进程管理、网络协议栈和驱动模型等,这些服务都依赖于Android系统基于Linux2.6内核。Linux内核同时也作为硬件和软件栈之间的抽象层,它可隐藏具体硬件细节而为上层提供统一的服务。

1.2系统运行库层是Android系统架构中的第三层,这一层主要包含了手机系统平台必须的C/C++核心库、Dalvik虚拟机运行环境和HAL子层。

1.3应用程序框架层是一个应用程序的核心,一个项目中所有参与开发的程序员都应使用和遵守的该框架层中的相关约定,进而使程序达到清晰的目的,在满足不同需求的同时又不互相影响。

1.4应用层是用Java语言编写的运行在虚拟机上的程序,开发人员也可以根据需要替换掉系统默认的应用程序,与其他的把软件固化在系统内部的手机操作系统不同,更具灵个性和灵活性。

2 定位技术

目前常用的定位方式有GPS定位、WIFI、基站定位、IP定位、RFID/二维码等标签识别定位、场景识别定位等[13,14]。简单的介绍如下三种定位技术:

2.1GPS定位GPS全球定位系统,是一个卫星导航定位系统,该系统由美国建立。使用GPS在全球无论任何地方用户不仅能实时、连续、全天候实现测速和三维导航定位的目的,而且还能够高精度地定位和时间传递。GPS系统由三大部分组成:用户部分、空间部分、地面控制部分。

2.2WIFI定位WIFI定位是利用现有的无线网络,配合WIFI标签和相关的移动终端设备(如WIFI手机、PDA、笔记本电脑等),再结合相应的定位算法,来确定相关人员和物品位置的一种技术。

2.3基站定位基站定位一般应用于手机用户,手机基站定位服务又叫做移动位置服务(LBS-Location Based Service),它是通过电信移动运营商的网络(如GSM网)获取移动终端用户的位置信息(经纬度坐标),在电子地图平台的支持下,为用户提供相应服务的一种增值业务,例如目前中国移动动感地带提供的动感位置查询服务等。

3 系统总体设计

3.1系统整体框架分析详细阐述了用户定位管理系统的总计设计和实现方式,系统的整体框架如图1所示:

图1 系统整体框架Fig.1 System general frame

3.2系统功能模块分析系统主要为规模化养殖场的管理人员及相关外出工作人员设计,进一步提高人员管理水平。养殖场管理人员通过系统可查看工作人员的位置信息、实时关注工作情况,经跟踪、统计分析,可以很好地做出相应的决策。工作人员通过本系统可以总结自己的工作情况,以便调整自身,提高工作效率。本系统对不同角色、不同岗位的用户采用灵活的方式提供相应的功能和服务。总体上分为管理员和普通工作人员,管理人员又可以分级别,管理人员只能管理自己级别以下的用户。系统的总体功能模块如图2所示。

图2 系统功能图Fig.2 System function diagram

从图2的系统功能图可以得知,系统主要有四大模块,用户登录和鉴权控制主要是为用户指定角色,分配不同级别的权限。按照系统的设计思路来分析,管理人员可以分为不同的等级,例如一级主管、二级主管等,这些级别的主管分管其下属的工作人员,而不能够跨越权限。普通工作人员可以被他所属的所有上级管理,而本身没有任何的管理权限,只能使用系统中的个人信息模块的功能。在此模块中,普通工作人员可以通过地图查看自己以往的历史活动轨迹,并在每次登陆后上报个人当前位置信息供上级主管查看,还可以使用Android系统内置的google地图服务,以便获取路线、查找周边设施等场所。

用户管理模块为管理人员所用,管理人员可以对下属工作人员进行查看信息、添加人员、删除人员的操作,同时管理人员可以查看工作人员的位置、追踪活动轨迹,通过google地图直观地显示位置信息。管理人员不仅能够查看不同时刻单一人员的位置信息,而且还能查看同一时刻全部人员的位置信息。

角色与功能模块的关系如图3所示:

图3 角色与功能模块的关系图Fig.3 Relationship between role and function module

3.3单人活动轨迹模块的设计与实现布局关键代码(single_info.xml):

android:="@+id/pcrsoncl_mapView"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:apiKey="0pVhBR--AKIFd9bZVEKlfuDcjPbYGN-neueopkw"

dandroid:clickable=""true"

android:enabled="true"/>

功能核心代码(PersonelInfo.java)一:查询人员全部位置信息

dao = new PersonDao();

Cursor cursor = dao.query(this,"select * from information where person_id=" + personId);

while(cursor.moveToNext()){

mark(cursor);

}

//关闭游标

cursor.close();

功能核心代码(PersonelInfo.java)二:画点,标出位置信息(日期、地点)

public void draw(Canvas canvas, Mapview mapv,boolean shadow){

super.draw(canvas,mapv,shadow);

projection.toPixcls(gcoPoint,point);

Bitmap bmp=BitmapFactory.decodeResource(getresources()

R.drawable.mark);

}

功能核心代码(PersonelInfo.java)三:画线

public void draw(Canvas canvas,MapView mapv,boolean shadow){

super.draw(canvas,mapv,shadow);

Paint paint=New Paint();

paint.setStrokeWidth(2);

paint.setStyle(Paint.Style.FILL_AND_STROKE)...

}

整个界面是一个LinearLayout,仅包含一个地图视图MapView。难点是把人员的每次位置显示在地图上,主要通过编程实现。图4所示为单人活动轨迹:

图4 单人活动轨迹Fig.4 Single people activity trajectory

3.4查看全部人员活动轨迹模块设计与实现使用一个MapView进行表示人员的位置信息,可以通过前进、后退按钮查看每一天的人员位置信息;全部人员当天的位置都显示在地图上,在地图上点击每个标记会弹出窗口用于显示该人员的详细位置信息。如图5所示:

布局关键代码(all_info.xml):

android:id="@+id/pre_datebutton"

android:layout_width="80dip"

android:layout_height="40dip"

android:background="@android:color/transparent"

android:scaleType="fitXY"

android:src="@drawable/prebtn_bg" />

android:="@+id/allpersonel_mapView"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:apiKey="0pVhBR--AKIFd9bZVEKIfuDcjPbYGN-neueopkw"

android:clickablc="true"

android:enabled="true"/>

功能核心代码(AllPersonelInfo.java)一:请求数据,更新地图

private void updateMap(String date){

// 获取要更新的信息

Cursor tempc = tempdao.query(this,"select name,latitude,longitude,position,time from person inner join information on person.id=information.person_id where date(time)='"+ date + "'")...

str = str.append(name).append(" 位置:").append(position).append(" 时间:"+time);

geoPoint = new GeoPoint(latitude.intValue(),

longitude.intValue());

if(tempc.getPosition()== 0){

mapController.animateTo(geoPoint);

}

OverlayItem overlayitem = new OverlayItem(geoPoint,"人员位置信息",

str.toString());

overlay.addOverlayItem(overlayitem);

功能核心代码(AllPersonelInfo.java)二:获取弹出窗口布局,用于显示位置信息

// 初始化弹出窗口,显示人员的信息

private void initPopview(){

// 这里没有给GeoPoint,在onFocusChangeListener中设置

popView = getLayoutInflater().inflate(R.layout.overlay_pop,null);

// 由于气泡的尾巴是在下边居中的,因此要设置成

MapView.LayoutParams.BOTTOM_CENTER

图5 多人活动轨迹图Fig.5 Many people activities trajectory

4 结束语

随着网络的高速发展,信息技术的不断提升,基于位置服务的应用越来越得到广泛的需求,成为人们生活重要的一部分。本文运用Android平台实现系统的设计,主要包括用户管理、权限管理、活动轨迹查询、用户登录、个人信息展示、Google地图服务调用、地图位置标识等功能,使信息可视化,提高了规模化养殖场人员管理的信息化水平,能够游侠管理利用各种数据信息、减轻工作量并提高工作效率,具有较强的使用价值。

[1] 肖梁军.基于Android智能终端的远程控制电脑系统设计与实现[D].昆明:云南大学,2012.

[2] 高荣.基于S3C2440的智能家居控制中心设计[D].苏州:苏州大学,2012.

[3] 高宇.基于ARM和Android平台的智能医疗监控系统的研究[D].太原:太原理工大学,2012.

[4] 杨博菲,吕卫,褚晶辉,等.基于Android平台的医学图像显示软件[J].中国医学物理学杂志,2012,29(3):3375-3379.

[5] 包巍.基于安卓的动物疫病远程诊断系统设计与开发[J].农业网络信息,2012(7):29-31.

[6] 程磊,胡景春,孙国峰.基于Android和WISMO228的远程控制系统[J].计算机技术与发展,2012,22(10):233-236,241.

[7] 王朝华,陈德艳,黄国宏,等.基于Android的智能家居系统的研究与实现[J].计算机技术与发展,2012,22(6):225-228,233.

[8] 高峰,毕经平,郭景峰,等.汽车状态感知系统的Android客户端[J].清华大学学报(自然科学版),2011,51(S1):1393-1396.

[9] 杨雪春,胡江天,董懿琼.基于Android的电动汽车车载信息显示终端[J].南昌大学学报:工科版,2011,33(3):273-276.

[10] 康德尔.Android移动应用开发从入门到精通[M].北京:人民邮电出版社,2010.

[11] 百度文库:android软件开发揭秘[EB/OL].(2011-01-05)[2016-04-01].http://wenku.baidu.com/view/5fd2941655270722192ef7dc?fr=hittag&album=doc&tag_type=1.

[12] 百度文库:Android手机开发入门简介[EB/OL].(2011-11-02)[2016-04-01].http://wenku.baidu.com/view/eb10f846336c1eb91a 375d62.html.

[13] 代敏.基于Android平台下手机定位程序的设计及实现[J].计算机与数字工程,2012,40(4):143-145.

[14] 郭蕊.基于Android平台的GPS定位系统的设计与实现[J].北京职业技术学院学报,2012,2(11):54-57,58.

Design and Development of User Positioning System for Intensive Culture Management Based on Android Platform

LIU Bo-ping1,2, SHI Wei-li1,2, QIU Feng1,2et al

(1. Jiangxi Institute of Computing Technology, Nanchang, Jiangxi 330003; 2. Software Engineering and Technical Research Center of Jiangxi Province, Nanchang, Jiangxi 330003)

[Objective] The aim was to study the effective management of intensive culture personnel. [Method] A positioning system based on Android platform was designed to obtain the location data of personnel. [Result] The positioning system, which is real-time monitoring, realized to check visually for single trajectory or more people trajectory. [Conclusion] The positioning system runs stably and can achieve the goal of real-time positioning.

Android; User positioning system; GPS; Intensive culture

国家科技支撑计划项目“特色区域农村信息化集成技术与应用”(2014BAD10B00),课题“中部经济区农村信息化技术集成应用”(2014BAD10B05)。

刘波平(1963- ),男,江西吉安人,教授级工程师,博士研究生,从事信息管理与检测分析。

2016-05-18

S 818

A

0517-6611(2016)18-260-03

猜你喜欢

规模化轨迹管理人员
益林中草药 初现规模化
轨迹
轨迹
规模化育肥羊场免疫程序的探讨
轨迹
规模化猪场暴发PED后的快速稳定策略
进化的轨迹(一)——进化,无尽的适应
隧道LED照明规模化应用研究
高校教学管理人员专业化探讨
5年前的选择决定今天