基于Android平台的实时定位与问询系统

2016-10-21 15:32虎啸
电子技术与软件工程 2016年9期

虎啸

【关键词】Android 百度地图 附近的人 问询

1 系统开发所需的理论和技术支持

1.1 电子地图

电子地图是以计算机系统为硬件支撑,基于可视化数字地图,结合多种媒体向用户展示各城市、地区的地理位置信息,是传统地图与现代信息技术结合的产物,具有表达、分析和服务的功能。Android平台为开发者提供了灵活便捷的地图展示和控制功能,开发者通过调用电子地图的接口既可以实现地图的显示、缩放、搜索等功能,也可以进行个性化的技术创新。

1.2 定位技术

定位技术就是基于位置的服务,通过该技术获取用户当前位置信息。手机应用程序要获取定位信息一般是通过借助第三方服务,如百度地图、高德地图等,并按照第三方开发要求,对电子地图相关接口进行调用,来设计实现定位功能。

1.3 经纬度的距离计算

经纬度的距离计算就是地球上任意两点的经纬度经过转化后,利用球体图形来求解球面上两点之间的弧长,以确定两点的空间距离。将所要了解的位置坐标上传至服务器或数据处理中心,筛选出符合“附近的人”定义的数据信息。

2 系统功能模块设计

2.1 登录及问询模块

用户通过客户端进行注册和登录,服务器端负责监听客户端的动作,并将客户端上传到服务器,将数据存储到数据库中。服务器端开启Socket服务,调用ServerSocket类中accept()方法,等待客户端的连接请求。服务器根据客户端请求类型交给客户端处理类ClientActionVerify来检查新用户注册、用户验证登录以及新注册账户名是否已经存在。用户通过地图位置的搜索和确认后向附近的人进行问询,当附近的用户在线时发送即时消息,当附近的用户离线时,则发送离线消息到服务器,服务器将离线消息保存到数据库中,当附近离线的用户再次上线时,服务器将离线消息从数据库中取出发送给该用户,同时更新消息列表。在问询过程中,均不显示用户的详细信息,只显示问题及其回复信息,以保证用户之间的信息隐私。

2.2 定位模块设计

当用户需要搜索当前位置附近的人时,就需要通过定位模块确定用户当前位置信息。在手机硬件支持GPS功能的条件下,借助百度地图,并按照其开发要求对电子地图相关接口进行调用来实现定位功能。本文通过百度地图定位SDK来设计实现对用户当前定位信息的显示和记录。当定位按钮被点击后,向定位SDK发起定位请求时,根据GPS、基站、WiFi信号定位SDK的实际情况来进行定位,此时将坐标设置为经纬度球面坐标,以确保以最好的精度返回定位信息。

该模块中要使用一些用于定位、显示、控制信息的功能类。通过BDLocation类获取位置坐标,反编地理码等信息。使用LocationClientOption类来设定位方式,同时通过该类来实现对GPS是否打开、是否需要定位信息以及定位操作扫描次数等参数进行设置。屏幕中的像素点和地球表面的经纬度坐标之间的对应转化由Projection接口类来完成。地图控制器MapController类来达到地图的缩放、以及多角度显示等效果。通过ItemizedOverlay向地图添加一个自定义覆盖物以标记用户当前的位置。

2.3 位置搜索模块设计

该模块是通过位置搜索界面获得用户搜索的地址信息。可以通过移动、缩放地图的方式对用户所需地址进行搜索,也可以由用戶在地图输入界面查询地址信息,通过相关方法将用户输入的信息转换为经纬度坐标,并在电子地图上标注出来。初始化地图之后,并通过一个可以调用GeoCode("详细地址","具体城市")方法的线程来实现地址到地图位置的转化。在地图单击监听事件OnMapClickListener()中写入要显示到地图上的覆盖物作为地标和详细地址信息,以便用户确认位置搜索结果。当用户通过拖动地图上表示所需位置的覆盖物进行位置搜索时,在setOnMapTouchListener(touchListener)触摸监听事件中通过getMapStatus()获取覆盖物在屏幕上的物理坐标,由getPeojection()将物理坐标转化为地理坐标,再通过反地理编码获取周边信息,并由列表显示以便用户进一步确认位置搜索结果。

2.4 获取附近用户的位置信息模块

获取所需地址附近用户的位置信息模块就需要一个服务器获取所有用户的经纬度,然后将用户当前位置的经纬度或用户位置搜索的经纬度数据送至服务器进行计算,筛选出500米范围内的用户。通过设置定位操作的扫描次数来记录当前在线用户的最新位置信息,当查看所需位置附近的人时,首先向服务器发送请求,服务器根据所需位置处最新位置信息返回附近的人的经纬度,再通过ItemizedOverlay类批量添加覆盖物显示在地图上。

3 结束语

在信息技术和数据分析技术高速发展的今天,人们获取信息的渠道也更加丰富,基于Android平台的实时定位与问询系统在用户、所需地理位置附近的用户之间建立起信息交流的桥梁,有助于用户对相关的信息进一步了解,为用户的出行、计划、决策提供了可参考信息。

参考文献

[1]龙毅,蒋成环,张亮.电子地图的基础理论与框架体系[J].现代测绘,2005(03):7-11.

[2]崔和宏.移动定位技术概述[J].科技信息,2008(20):402-402.

[3]尚金金.Android平台下移动终端与PC机的通信系统设计[D].天津:河北工业大学,2013:18-20.

[4]马获蕾,汤海凤.Android系统中SQLite数据库的研究[J].电脑知识与技术,2013,23(7).