李凤祥
(辽宁轨道交通职业学院,辽宁 沈阳 110023)
本应用旨在帮助学生更好地熟悉校园环境,解决生活中遇到的问题。其主要功能为:通过对服务器发出请求,经网络连接在手机中加载出校园地图,并显示出当前使用者的实时位置。通过对校园周边热点信息数据的处理存入本地数据库中,之后通过本地数据库提取需要的数据,整理再显示到界面中。本应用的具体功能如下:
(1)在应用中加载地图。高德是中国领先的数字地图内容、导航和位置服务解决方案提供商。高德地图是国内一流的免费地图导航产品,也是基于位置的生活服务功能最全面、信息最丰富的手机地图,由国内最大的电子地图、导航和LBS服务解决方案提供商高德软件提供。高德地图Android SDK是一套地图开发调用接口,为开发者提供免费的地图解决方案,供开发者在自己的Android应用中加入地图相关的功能。
(2)实现使用者在地图中实时位置。通过高德LBS开放平台提供的地图相关功能,调用“我的位置”这一功能,从而实现在地图上显示用户位置,也可以自定义定位图标。
(3)将校园热点加载到地图中。将校园热点存放在数据库中,通过查询ID调用数据库信息,从而加载校园热点。
本系统功能设计目标如下:
(1)加载地图:通过点击手机桌面“校园热点”图标,运行本系统,通过网络连接,加载出辽宁轨道交通职业学院校园地图。
(2)定位:通过GPS技术,确定用户自身的校园位置,并进行实时监测。
(3)加载校园周边热点[1]:根据用户的不同需要,可分类加载出不同的校园热点。如:宿舍楼、综合楼、教务处、行政办公楼、食堂等。
(4)加载校园热点信息:通过点击热点图标,加载出对应信息供用户参考。
(1)安装Java jdk,最新版本,下载成功后,安装。
(2)安装Eclipse。Eclipse是一款开源的集成开发环境,它能够极大的提高开发应用效率,最重要的是,它提供了丰富的Android相关插件。
(3)安装ADT插件。
高德地图[2]Android SDK是一套地图开发调用接口,供开发者在自己的Android应用中加入地图相关的功能。开发者可以轻松地开发出地图显示与操作、兴趣点搜索、地理编码、离线地图等功能。
创建页面如图1所示。
图1 创建页面
本应用是使用高德地图来实现地图的加载。在高德LBS平台,为开发者提供免费的地图解决方案。包括:地图显示、定位、关键字搜索等功能。首先,在平台申请账号,下载地图支持文件并安装到系统中。然后,在Android Manifest文件中注册开发者账号,之后在布局文件中划定地图位置并引用外部类,最后在Main Activity中指定辽宁轨道交通职业学院为地图中心,完成对地图的初始化。
首先设置定位图标的样式,在地图中加入定位图层,并开启定位[3]。
private void setUpMap(){
MyLocationStyle myLocationStyle = new MyLocationStyle();
myLocationStyle.myLocationIcon(BitmapDescriptorFactory
.fromResource(R.drawable.location_marker));
myLocationStyle.strokeColor(Color.TRANSPARENT);
myLocationStyle.radiusFillColor(Color.argb(0, 0, 0, 0)); myLocationStyle.strokeWidth(0.0f);
amap.setMyLocationStyle(myLocationStyle);
amap.setLocationSource(this);
amap.getUiSettings().setMyLocationButtonEnabled(true); amap.setMyLocationEnabled(true);
}
首先定义热点坐标常量,以便使用,之后自定义热点图标,构建模型。然后,在主程序中将调查的热点详情写入SQLite数据库。
用户通过热点分类,选择想加载的热点,系统首先通过判断“choice”的值,然后在数据库中调用相应的图标信息,加载到地图中。
public void onClick(View v){
switch(v.getId()){
case R.id.tv_choice1:
amap.clear();
amap.addMarker(new MarkerOptions().anchor(0.5f, 0.5f)
.position(Constants.F1).title(“1号楼”).icon(marker_1)
.draggable(true));
amap.addMarker(new MarkerOptions().anchor(0.5f, 0.5f)
.position(Constants.F2).title(“2号楼”).icon(marker_2)
.draggable(true));
......}
在Android系统中,用户所看到的和能够操作的界面都是一个个独立的Activity。在本校园热点手机应用中,用户通过点击热点详情,就能通过查询热点的id,从数据库中调用数据,从而跳转到热点信息界面中。
public void onInfoWindowClick(Marker marker){
Intent.intent=new.Intent(GroundOverlayActivity.this,CampusDetail.class);
String str=marker.getTitle();
if(str.equals(“食堂”)){
Bundle bundle=new Bundle();
bundle.putString(“choice”, “食堂”);
intent.putExtras(bundle);
startActivity(intent);
}else if(str.equals(“综合楼”)){
Bundle bundle=new Bundle();
bundle.putString(“choice”, “综合楼”);
intent.putExtras(bundle);
startActivity(intent);
......}
本系统是基于Android平台的校园热点手机应用,设计此应用的目的是为了服务于辽宁轨道交通职业学院的学生,尤其是新同学,使他们能够更快地熟悉校园,更好地适应大学生活。