百度地图开发第五天(649公交线路查询)
来源:互联网 发布:苏州淘宝店出租 编辑:程序博客网 时间:2024/04/29 12:10
代码:
package com.android.mybaidu;
import android.os.Bundle;
import android.widget.Toast;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MKAddrInfo;
import com.baidu.mapapi.MKBusLineResult;
import com.baidu.mapapi.MKDrivingRouteResult;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.MKPoiInfo;
import com.baidu.mapapi.MKPoiResult;
import com.baidu.mapapi.MKSearch;
import com.baidu.mapapi.MKSearchListener;
import com.baidu.mapapi.MKSuggestionResult;
import com.baidu.mapapi.MKTransitRouteResult;
import com.baidu.mapapi.MKWalkingRouteResult;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.RouteOverlay;
public class Main extends MapActivity {
/** Called when the activity is first created. */
// 添加百度地图的相关控件
private MapView mapView;
private BMapManager bMapManager;// 加载地图的引擎
// 百度地图的key
private String keyString = "A270F85CD72A01E8519A9677A75FB4016ED9A5A3" ;
private MKSearch mkSearch;//用于检索的类
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) this.findViewById(R.id.bmapView);
bMapManager = new BMapManager(Main.this);
// 必须要加载key
bMapManager.init(keyString, new MKGeneralListener() {
@Override
public void onGetPermissionState(int arg0) {
// TODO Auto-generated method stub
if (arg0 == 300) {
Toast.makeText(Main.this, "输入的Key有错!请核实!!", 1).show();
}
}
@Override
public void onGetNetworkState(int arg0) {
// TODO Auto-generated method stub
}
});
/*initMapActivity(arg0)是MapActivity的一个方法,
* MapActivity管理显示MapView中Activity 处理逻辑的基础类,
* initMapActivity初始化这个类
*/
this.initMapActivity(bMapManager);
mkSearch=new MKSearch();
mapView.getController().setCenter(new GeoPoint((int) (39.244 * 1E6),
(int) (117.052 * 1E6)));
mkSearch.init(bMapManager, new MySearchListener());
mkSearch.poiSearchInCity("天津","649");//查询的城市的名称和公交线路
}
public class MySearchListener implements MKSearchListener{
@Override
public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
// 得到公交线路图的详情
if(arg0==null ||arg1 !=0){
Toast.makeText(Main.this, "对不起未找到结果", 1).show();
return;
}
RouteOverlay routeOverlay=new RouteOverlay(Main.this, mapView);
routeOverlay.setData(arg0.getBusRoute());//获得公交线路
mapView.getOverlays().clear();//清除公交站点的标志
mapView.getOverlays().add(routeOverlay);
mapView.invalidate();
//采用动画形式描述公交站点
mapView.getController().animateTo(arg0.getBusRoute().getStart());
}
@Override
public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
}
@Override
public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
// 获得公交线路图的uid,也就是这条公交线路图的唯一的标示,并且根据此uid来发起公交线路详情的检索。
if(arg0==null ||arg2 !=0){
Toast.makeText(Main.this, "对不起未找到结果", 1).show();
return;
}
//定义一个公交线路图的描述累
MKPoiInfo mkPoiInfo = null;//MKPoiInfo可以当前点的地址信息等
int tota=arg0.getNumPois();//获得本地公交线路的棕垫
for(int i=0;i<tota;i++){
mkPoiInfo=arg0.getPoi(i);
/*
*
ePoiType:
poi类型,0:普通点,1:公交站,2:公交线路,3:地铁站,4:地铁线路,
*/
if(mkPoiInfo.ePoiType==2){
break;
}
}
mkSearch.busLineSearch("天津", mkPoiInfo.uid);//得到uid
}
@Override
public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
}
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
if (bMapManager != null) {
bMapManager.destroy();
bMapManager = null;
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (bMapManager != null) {
bMapManager.start();
}
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if (bMapManager != null) {
bMapManager.stop();
}
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}
主要知识点:
(1)查询的城市的名称和公交线路:
mkSearch.poiSearchInCity("天津","649");
(2)方法:public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) 得到公交线路图的详情
没有找到结果:
if(arg0==null ||arg1 !=0){
Toast.makeText(Main.this, "对不起未找到结果", 1).show();
return;
}
RouteOverlay routeOverlay=new RouteOverlay(Main.this, mapView);
获得公交路线:
routeOverlay.setData(arg0.getBusRoute());
清除公交标志:
mapView.getOverlays().clear();
mapView.getOverlays().add(routeOverlay);
mapView.invalidate();
采用动画形式描述公交站点:
mapView.getController().animateTo(arg0.getBusRoute().getStart());
(3)方法public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) 获得公交线路图的uid,也就是这条公交线路图的唯一的标示,并且根据此uid来发起公交线路详情的检索。
没有找到结果:
if(arg0==null ||arg2 !=0){
Toast.makeText(Main.this, "对不起未找到结果", 1).show();
return;
}
MKPoiInfo表示当前点的地址信息等:
MKPoiInfo mkPoiInfo = null;
获得本地公交线路的综述:
int tota=arg0.getNumPois();
找到公家线路:
for(int i=0;i<tota;i++){
mkPoiInfo=arg0.getPoi(i);
ePoiType: poi类型,0:普通点,1:公交站,2:公交线路,3:地铁站,4:地铁线路,
if(mkPoiInfo.ePoiType==2){
break;
}
mkPoilnfo.uid得到天津的uid:
mkSearch.busLineSearch("天津", mkPoiInfo.uid);
- 百度地图开发第五天(649公交线路查询)
- 百度地图 公交线路查询
- BaiduMap---百度地图官方Demo之公交线路查询功能(介绍查询公交线路功能)
- 使用百度API实现实时公交线路查询及地图显示
- 地图API公交线路查询
- 百度地图索引和公交线路
- 百度地图开发第三天(起始点和终点的路线查询)
- 使用百度地图查询经过某一公交站的所有公交线路
- 百度地图之公交线路详情搜索
- 基于百度地图公交线路算法实现
- 安卓高德地图开发(3)——公交线路的显示
- 厦门电子地图,厦门市地图,厦门地图查询,公交线路查询地图
- Android百度地图——路径规划(驾车、步行和公交线路搜索)
- Android百度地图 - 路径规划(驾车、步行和公交线路搜索)
- 百度地图开发第四天(公交路线查询)
- 公交线路查询
- 公交线路查询
- 公交线路查询
- [Python]python学习笔记(二)——常见问题
- c#的事件
- 布隆过滤器 (Bloom Filter) 详解
- 英特尔I217-V网卡驱动安装失败解决方法
- Mixpanel分析数据:哪种应用用户粘度最高
- 百度地图开发第五天(649公交线路查询)
- 2.3. About Pods
- 深入浅出Mybatis-分页
- 【数据结构】二叉树的层次遍历2
- Eclipse 3.7如何安装egit
- gtk.gdk.Window
- (转)创业干货分享:初创公司移动应用开发工具库(集合)
- C++11 的Lambda
- in和exists区别