:为界面设置布局,其中layoutResID是布局文件。
②setBuiltInZoomControls(Boolean bool)功能:参数设置为true时,地图可以控制,即可以进行拖动、放大、缩小。
(2)具体实现
Android系统集成了Googlemap功能,要在自己的系统中使用谷歌地图首先要申请apikey,获得apikey以后在清单文件Androidmanifest。xml里添加“
”,另外,还需要添加3个权限ACCESS_FINE_LOCATION,ACCESS_COARSE_LOCATION和INTERNET并且要在使用Googlemap的layout中手动添加控件,最后就是继承mapactivity,而不是单纯的activity。
(3)源文件说明
用到地图显示的模块有三个:
①map_browse.java: 实现地图浏览功能
②gpsl_location.java: 实现GPS定位的类
③searchLocation.java: 在地图中查找指定的位置的类
④showCurrentCity.java: 显示当前城市的类
5.1.2 GPS定位模块
(1)模块描述
主要功能:
利用GPS服务定位用户的当前位置
主要变量:
①private LocationManager mLocationManager01:获取系统中位置服务的变量
②private MapView mMapView01:地图视图对象
③private GeoPoint currentGeoPoint:当前位置的GeoPoint,由经纬度构成。
主要方法:
①private GeoPoint getGeoByLocation(Location location):传入参数Location,将这个location转换成GeoPoint。
②public void refreshMapViewByGeoPoint(GeoPoint gp,MapView mv,int zoomLevel.Boolean bIfSatellite):更新地图mv到gp点,将地图移至以gp为中心的位置,zoomLevel是地图的放大级别,最后一个变量表示是否显示卫星图。
③private void processLocationUpdate(Location location):当手机收到位置更改,将location传入GeoPoint及MapView,同时更新地图到新的位置。
(2)具体实现
主要实现方法有:通过getSystemService(Context.LOCATION-SERVICE)开启系统的GPS服务,通过getLocationProvider(LocationManager Im)获取到符合条件的位置,之后将获取到的location转化成经纬度格式的GeoPoint ,然后调用refreshMapViewByGeoPoint(GeoPoint gp , MapView mv , int zoomLevel , Boolean bIfSatellite)更新地图到这个gp点。
(3)文件说明
gpsLocation.java:实现GPS定位的类。
(4)流程逻辑
如图5-1 所示:
图5-1 GPS定位模块流程逻辑
5.1.3查找定位模块
(1)模块描述
主要功能以及方法如下:
主要变量:
①private MapView mMap View01:地图视图对象
②MapController mMapController01:控制地图大小以及是否可以拖动的变量
主要方法:
①setOnClickListener(new Button.OnClickListener()):对查询按钮单击时间的监听,当用户单击查询时进行响应。
②private GeoPoint getGeoByAddress(String strSearchAddress):以要查询的地址为参数,通过地址名在地图中的查找这个地址的GeoPoint.
(2) 具体实现
系统界面中用了三个控件:EditText,Button , MapView . 用户在EditText中输入要查询的地点名称,单击查询按钮以后调用getGeoByAddress(String strSearchAddress)函数进行查询,将获得的结果传递给refreshMapViewByGeoPoint(GeoPoint gp,MapView mv,int zoomLevel,Boolean bIfSatellite),对显示的地图进行更新,更新至查询地点,并用红色圆圈标注要查询的地点。
(3)文件说明
searchLocation.java:查询定位的java源文件。
(4)输入项
所要地点名称。
(5)输出项
将查询的结果在地图中标注出来。
(6)处理流程如图5-2所示:
图5-2 查找定位模块处理流程
5.2 公交查询功能模块
5.2.1 车次查询模块
(1)模块描述
该模块的主要功能是:查询某一路车的信息,包括公交车名,通车起始时间以及通车路线。
模块功能实现类:ForBusInfo类。
接口中用到的变量:Private String busline:保存获得的公交的通车路线。
ForBusInfo类主要变量和方法如下:
主要变量:
①private databsehHelper events:数据库的辅助类对象,用来对数据库进行操作
②SQLiteDatabase db:数据类的对象
③Cursor mCursor:从数据库中查询到的结果进行读取、写入的接口,存储查询结果列表
主要方法:
Public viod ok():单击确定后响应的函数,在数据库中查询EditText中的车次查询,将查询到的信息显示在busdetailedinfo布局界面中。
(2)具体实现
点击确定按钮后判断EditText是否为空,若为空给出提示,否则在数据库中进行查询,关键代码:
SQLiteDatabase db=events.getReadableDatabase();
Cursor mCursor=db.query(true,TABLE_NAME,new String[] {BUSNUM,TIME,
BUSLINE},”BUSNUM=?”,new String[]{edit1.getText().toString()},null,null,null,null);
查询结果为空弹出对话框进行提示,若结果不为空九江查询结果显示在busdetailedinfo布局界面中,对于这个界面中的“在地图中显示”按钮进行监听,单击时则将所查到结果中的busline存入Bundle中,以Intent的方式启动drawLine这个java类,将通车路线在地图上画出来。
(3)文件说明
ForBusInfo.java:查询某一路公交车的信息的类源文件。
(4)输入项
要查询的的公交车名。
(5)输出项
该路公交车的详细信息,如起始时间、通车路线等。
(6)流程逻辑
该流程逻辑如图5-3所示:
图5-
上一篇:
基于Android操作系统的足球小将手机游戏_毕业论文
下一篇:
试论APP广告在手机中的应用