1)、地图定位功能:是采用GPS、WIFI、基站、IP混合定位模式,并使用Android定位SDK获取定位信息,再使用地图SDK定位图层进行位置展示的。
首先初始化地图Activity并添加定位图层,代码如下:
BMapApiDemoAppapp = (BMapApiDemoApp)this.getApplication();
if (app.mBMapMan == null) {
app.mBMapMan = newBMapManager(getApplication());
app.mBMapMan.init(app.mStrKey, new BMapApiDemoApp.MyGeneralListener());
}
app.mBMapMan.start();
super.initMapActivity(app.mBMapMan);
mMapView =(MapView)findViewById(R.id.bmapView);
mMapView.setBuiltInZoomControls(true);
mMapView.setDrawOverlayWhenZooming(true);
mLocationOverlay = newMyLocationOverlay(this, mMapView);
mMapView.getOverlays().add(mLocationOverlay);
然后注册定位事件,代码如下:
mLocationListener = new LocationListener(){
public voidonLocationChanged(Location location) {
if(location != null){
String strLog= String.format("您当前的位置:\r\n" + "纬度:%f\r\n" + "经度:%f", location.getLongitude(),location.getLatitude());
TextViewmainText = (TextView)findViewById(R.id.textview);
mainText.setText(strLog);
}
}
};
注册定位事件,定位后将地图移动到定位点,并打开指南针,代码如下
app.mBMapMan.getLocationManager().requestLocationUpdates(mLocationListener);
mLocationOverlay.enableMyLocation();
mLocationOverlay.enableCompass();
app.mBMapMan.start();
这样通过百度地图API的地图定位就完成了。
2)、公交线路查询功能:是提供公交线路类型,并包含多种方案(不含地铁、时间优先、最少换乘、最少步行)的线路规划。
首先初始化地图Activity并添加定位图层,其次注册搜索监听事件,由于代码类似,这里不再粘贴。
然后处理搜索按钮响应,代码如下:
EditText editSt =(EditText)findViewById(R.id.start);
EditText editEn = (EditText)findViewById(R.id.end);
对起点终点的name进行赋值,也可以直接对坐标赋值,赋值坐标则将根据坐标进行搜索
MKPlanNode stNode = new MKPlanNode();
stNode.name = editSt.getText().toString();
MKPlanNode enNode = new MKPlanNode();
enNode.name = editEn.getText().toString();
实际使用中请对起点终点城市进行正确的设定
if (mBtnTransit.equals(v)) {
mSearch.transitSearch("北京", stNode, enNode);
}
最后搜索监听成功,就会通过如下方法返回数据,代码如下:
public voidonGetTransitRouteResult(MKTransitRouteResult res,
interror) {
TransitOverlay routeOverlay = new TransitOverlay (RoutePlan.this,mMapView);
routeOverlay.setData(res.getPlan(0));
mMapView.getOverlays().clear();
mMapView.getOverlays().add(routeOverlay);
mMapView.invalidate();
mMapView.getController().animateTo(res.getStart().pt);
}
这样通过百度地图API的公交线路查询功能就完成了。
3)、自驾线路查询功能:是提供驾车线路类型,并以最近距离为参照的线路规划。
这里自驾线路查询功能与公交线路查询功能类似,不再赘述。
4)、步行线路查询功能:是提供步行路线类型,并以最近距离为参照的线路规划。
这里步行线路查询功能与公交线路查询功能类似,不再赘述。
其次,额外新增的三个功能。
1)、搜索公交车功能:是根据提供的公交车号进行检索并使用MapView进行线路展示的。
2)、搜索位置点功能:是提供地址信息与坐标之间的相互转换,并使用地图SDK定位图层进行位置展示的。
3)、搜索建议功能:是根据提供的关键字进行范围检索、城市检索和周边检索,且支持LBS云检索用户自有数据。再使用ListView列表进行展示的。