`

基于Android的带地图功能的公交路线查询系统

 
阅读更多

 

 在我大学毕业之前,我的大学毕业设计是基于Android的公交路线查询系统。该系统提供了公交线路、站点和换乘的查询。本项目采用的是sqllite的离线本地数据库的查询这样不受手机网络的影响手机在没有无线网络的环境下也可以查询公交信息。具体完成的功能如下

1、线路查询

系统提供线路模糊查询功能通过输入线路关键字,系统自动匹配得到存在的线路列表用户再选择某一条线路查询其详细的信息;

2站点查询

系统提站点名称模糊查询功能通过输入站点名称关键字,系统自动匹配得到存在的站点列表用户再选择某一个站点查询该站点的详细细的信息包括经过该站点的所有公交线路;

3地图模块

采用的是百度的免费地图模块,可以在地图中显示一条线路的行车轨迹以及该线路经过的所有站点点击某一站点可以查看该站点的详细信息还可根据用户位置自动定位,并显示附近的所有公交站点

4换乘查询

   可以查询一个站点到另外一个站点的直达或换乘方案;整个系统的整体功能框架。

 

       下面我将具体关键代码细节跟大家做一个分享,希望大家对移动端的开发,特别是基于地图功能的路线查询功能有所帮助。

 

 

(1)百度定位功能代码:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

db = new BusDatabaseHelper(BusBaiduMapActivity.this);

app = (com.miebo.android.bus.activity.CommonApplication) this.getApplication();

if (app.mBMapManager == null) {

app.mBMapManager = new BMapManager(this);

app.mBMapManager.init(com.miebo.android.bus.activity.CommonApplication.strKeyBaiduMap, null);

}

// 由于MapView在setContentView()中初始化,所以它需要在BMapManager初始化之后

setContentView(R.layout.bus_baidu_map);

toastUtil = new ToastUtil(this);

mMapView = (MapView) findViewById(R.id.bmapView);

mMapView.setBackgroundColor(getResources().getColor(R.color.transparent));

mMapController = mMapView.getController();

mMapController.enableClick(true);

mMapController.setZoom(curZoom);

mMapView.setBuiltInZoomControls(true);

this.intent = getIntent();

this.findview();

if ("line".equals(getIntent().getStringExtra("from"))) {

// 来着绘制线路请求

busw = getIntent().getStringExtra("busw");

xid = getIntent().getStringExtra("xid");

tvMyLocation.setText(busw + "线路图");

MKsearchBus();

} else {

// 定位并显示附近站点

dialog = ProgressDialog.show(this, "定位中...", "");

markerCenter = getResources().getDrawable(R.drawable.icon_marka);

setLocationOption();

 

}

}

 

 

(2)根据我当前的位置,开始处理定位结果

private void dealLocation(BDLocation location) {

mLon1 = location.getLongitude();

mLat1 = location.getLatitude();

accuracy = location.getRadius();

address = location.getAddrStr();

tvMyLocation.setText("我的位置:" + address);

curPt = new GeoPoint((int) (mLat1 * 1E6), (int) (mLon1 * 1E6));

mMapController.setCenter(curPt);

myLocationOverlay = new MyLocationOverlay(mMapView);

// 开启磁场感应传感器

myLocationOverlay.enableCompass();

LocationData locData = new LocationData();

locData.latitude = mLat1;

locData.longitude = mLon1;

locData.accuracy = accuracy;

myLocationOverlay.setData(locData);

mMapView.getOverlays().add(myLocationOverlay);

mMapView.refresh();

 

new loadPointAsyncTask().execute();

 

}

 

(3)地图中心位置的绘制:

protected String doInBackground(String... params) {

GeoPoint geoCenter = mMapView.getMapCenter();// 地图中心点

BaseUtil.LogII("geoCenter.getLatitudeE6() " + geoCenter.getLatitudeE6());

goLeftTop = new GeoPoint(geoCenter.getLatitudeE6() + 10000, geoCenter.getLongitudeE6() - 10000);

goLeftBottom = new GeoPoint(geoCenter.getLatitudeE6() - 10000, geoCenter.getLongitudeE6() - 10000);

goRightTop = new GeoPoint(geoCenter.getLatitudeE6() + 10000, geoCenter.getLongitudeE6() + 10000);

goRightBottom = new GeoPoint(geoCenter.getLatitudeE6() - 10000, geoCenter.getLongitudeE6() + 10000);

 

stationList = db.getAllStationByGeoPoint(goLeftTop.getLongitudeE6(), goRightTop.getLongitudeE6(),

goLeftTop.getLatitudeE6(), goLeftBottom.getLatitudeE6());

GeoList = new ArrayList<OverlayItem>();

list = new ArrayList<BusBaiduMapActivity.CityObject>();

if (stationList.size() > 0) {

for (int i = 0; i < stationList.size(); i++) {

double geoX = Double.valueOf(stationList.get(i).getXzhanbd());

double geoY = Double.valueOf(stationList.get(i).getYzhanbd());

int geoXX = (int) (geoX * 1E6);

int geoYY = (int) (geoY * 1E6);

GeoPoint geoPoint = new GeoPoint(geoYY, geoXX);

OverlayItem item = new OverlayItem(geoPoint, "", "");

item.setMarker(markerCenter);

GeoList.add(item);

 

BusBaiduMapActivity.CityObject cityObject = new BusBaiduMapActivity.CityObject();

cityObject.setLat(geoY);

cityObject.setLng(geoX);

cityObject.setName(stationList.get(i).getZhan());

list.add(cityObject);

}

 

}

return null;

}

 

(4)在地图上绘制公交点位:

// 绘制附近车站

private void drawNearOverlay() {

OverlayTest itemOverlay = new OverlayTest(markerCenter, mMapView);

for (int i = 0; i < list.size(); i++) {

BaseUtil.LogII((int) (list.get(i).getLat() * 1E6));

GeoPoint geo = new GeoPoint((int) (list.get(i).getLat() * 1E6), (int) (list.get(i).getLng() * 1E6));

OverlayItem item2 = new OverlayItem(geo, list.get(i).getName(), list.get(i).getName());

item2.setMarker(markerCenter);

item2.setTitle(list.get(i).getName());

itemOverlay.addItem(item2);

 

}

// 清除旧的 Overlay

mMapView.getOverlays().clear();

// 刷新地图

mMapView.getOverlays().add(myLocationOverlay);

if (list.size() > 0) {

mMapView.getOverlays().add(itemOverlay);

mMapView.refresh();

mMapController.setZoom(curZoom);

toastUtil.show("在附近查到 " + list.size() + "个站点");

}

}

 

系统的界面效果如下图:




 

 

 

 

 

 

 
 

  • 大小: 22.7 KB
  • 大小: 44.6 KB
  • 大小: 49.3 KB
  • 大小: 48 KB
  • 大小: 56.8 KB
  • 大小: 38.2 KB
  • 大小: 44.4 KB
  • 大小: 27.3 KB
分享到:
评论

相关推荐

    基于Android的移动公交查询系统的设计与实现毕业设计

    本设计旨在探讨并实现这样一个系统,通过集成GPS定位、公交线路数据和地图服务,为用户提供实时公交线路查询、站点导航以及最优路线规划等功能。 首先,系统设计的核心是数据处理。公交查询系统需要包含全面、准确...

    基于Android的城市公交查询系统(离线)

    这个名为“基于Android的城市公交查询系统(离线)”的应用程序专为苏州市设计,旨在提供无网络环境下的公交线路查询服务。以下是对该系统及其相关技术的详细解读。 首先,Android平台是Google开发的开源操作系统,...

    基于Android的公交查询系统

    【基于Android的公交查询系统】是一个专为移动设备设计的应用程序,主要目标是提供便捷的公共交通路线查询服务。在Android平台上开发这样的系统,涉及到多个关键的技术领域和知识点,包括Android应用开发基础、网络...

    基于android的手机公交线路查询系统.doc

    总之,这个基于Android的手机公交线路查询系统充分利用了Java和B/S-C/S结构的优势,实现了便捷的公交信息查询和管理。它不仅提高了公众出行的效率,也为城市公共交通信息化建设提供了有力的技术支持。通过不断的优化...

    基于Android系统的公交信息查询系统

    总的来说,"基于Android系统的公交信息查询系统"是一个结合了Android开发技术、Java编程、UI设计等多个领域的综合性项目,旨在通过高效的程序设计和友好的用户体验,为公众提供便捷的公交出行信息查询服务。

    基于Android的公交查询系统的设计与实现.zip

    基于Android的公交查询系统是一款方便、快捷的公交信息查询应用程序,它可以帮助用户轻松地查询公交线路、站点、车辆到站时间等信息,让用户更方便地规划出行路线。 该应用程序具有以下主要功能: 公交线路查询:...

    基于Android的移动公交查询系统设计与实现

    总结,基于Android的移动公交查询系统设计与实现是一个集成了数据库、网络通信、地图服务和用户交互等多个技术领域的项目。通过合理的设计和实现,可以为用户提供便捷、准确的公交查询服务,大大提升了城市出行的...

    Android-基于百度地图的交通查询系统(源码+文档).zip

    开发基于Android平台采用Java语言和安卓自带的XML (Extensible Markup Language)布局编写的广州交通线路手机查询的应用,完成了公交、地铁价格、地图的查询及定位的功能。本文将对百度地图API的基本类进行分析,提出...

    基于Android系统的厦门公交查询系统设计.pdf

    《基于Android系统的厦门公交查询系统设计》探讨了在Android平台上构建城市公交查询系统的方法。该系统结合SQLite数据库和百度地图API,利用GPS技术实现实时定位,为用户提供公交线路查询、公交站点查询和公交换乘...

    基于Android的移动公交查询系统的设计与实现

    同时,系统还支持实时公交位置查询,通过GPS定位技术,用户可以了解公交车的实时位置,预测到站时间,提高出行效率。 此外,换乘规划功能也是系统的一大亮点。它综合考虑了公交线路的频次、换乘次数和总耗时等因素...

    基于Android系统的智能公交查询系统的设计与实现.pdf

    "基于Android系统的智能公交查询系统的设计与实现" 本文主要介绍了基于 Android 系统的智能公交查询系统的设计与实现。该系统采用 JS 与原生交互的混合式开发技术,引入了百度地图 API 技术框架和 SSM 框架,使用 ...

    基于Android的移动公交查询系统设计与实现样本.doc

    基于 Android 的移动公交查询系统设计与实现样本是基于 Android 平台开发的一种移动公交查询系统,该系统旨在提供给用户一个便捷、高效的公交信息查询服务。系统的设计主要分为三个部分:用户界面、逻辑处理和数据...

    本科毕业论文-—基于android的手机公交线路查询系统.doc

    "基于Android的手机公交线路查询系统" 本文概述了一种基于Android的手机公交线路查询系统,旨在为用户提供便捷的公交线路查询服务。该系统由服务器端和客户端组成,采用B/S-C/S结构,使用Java语言开发。服务器端...

    基于安卓Android的公交线路查询系统源码.zip

    本系统就是针对这一需求,提供了一个基于Android的公交线路查询系统,旨在帮助用户快速、准确地获取公交路线信息。 一、系统架构与设计 1. 用户界面:系统采用Material Design设计语言,提供清晰直观的操作界面。...

    毕业论文-范本-基于android系统的公交信息查询系统.doc

    本文设计并实现了基于 Android 平台的公交信息查询系统,旨在提供一个方便、快捷、实时的公交信息服务平台,帮助乘客更好地规划出行路线,提高公交服务水平。系统使用 Java 语言编写,数据库采用 SQLITE,地图部分...

    基于android的手机公交线路查询系统设计论文.doc

    本文档主要探讨的是一个基于Android平台的手机公交线路查询系统的详细设计,其中包括系统架构、功能模块、数据库设计以及实现技术等方面。 1. 引言 随着智能手机的普及,移动应用已经成为日常生活的重要组成部分。...

    基于android平台的实时公交查询系统.doc

    城市公交查询系统是现代城市生活中的重要组成部分,尤其是在基于Android平台的实时公交查询系统中,技术的应用极大地提升了公共交通服务的效率和用户体验。本系统旨在解决因公交线路复杂、信息获取不便而引起的乘客...

    参考文档-基于Android的移动公交查询系统设计与实现.zip

    本文档主要探讨了一种基于Android平台的移动公交查询系统的开发,它旨在为用户提供方便快捷的公交线路查询、站点查询以及行程规划等功能。 一、Android平台基础 Android是由Google主导开发的开源移动操作系统,广泛...

    毕业设计 - 基于Android平台的西安市公交路线查询系统的设计与实现.zip

    【标题】基于Android平台的西安市公交路线查询系统的设计与实现 本毕业设计旨在构建一个针对西安市的公交路线查询系统,该系统充分利用Android平台的优势,为用户提供便捷、实时的公交线路查询服务。用户能够通过该...

Global site tag (gtag.js) - Google Analytics