1. 如何初始化百度地圖
[java]
BMapManager mapManager = new BMapManager(getApplication());
//mStrKey為百度應用key
mapManager.init(mStrKey, null);
// 如果使用地圖SDK,需要初始化地圖Activity
super.initMapActivity(mapManager);
//開啟百度地圖API
mapManager.start();
//mapView為百度地圖控件MapView
mapView.setBuiltInZoomControls(false);
mapView.setClickable(true);
mapView.setEnabled(true);
// 得到MapController實例,該實例可以對百度地圖進行相關功能的設置,如設置百度地圖的放大級別、定位等
mapController = mapView.getController();
//設置顯示百度地圖的縮放級別
mapController.setZoom(15);// 最大18級,(15)
2. 開啟百度地圖的定位導航,共有兩個方法
1)利用百度地圖提供的MyLocationOverlay
[java]
// 添加定位圖層
MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mapView);
// 注冊GPS位置更新的事件,讓地圖能實時顯示當前位置
myLocationOverlay.enableMyLocation();
// 開啟磁場感應傳感器
myLocationOverlay.enableCompass();
mapView.getOverlays().add(myLocationOverlay);
2)利用百度地圖提供的LocationListener進行監聽我的位置的變化
[java]
MKLocationManager locationManager = mapManager.getLocationManager();
locationManager.requestLocationUpdates(new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
if (location != null) {
updateMyLoading(location.getLatitude(), location.getLongitude());
}
}
});
private void updateMyLoading(double latitude, double longitude){
List<overlay> o = mapView.getOverlays();
final GeoPoint pt = new GeoPoint((int) (location.getLatitude() * 1e6), (int) (location.getLongitude() * 1e6));
if (pt != null) {
o.remove(myOverItemT);
myOverItemT = getOverItemT(myLocation, pt);
o.add(myOverItemT);
mapView.invalidate();
}
}
public OverItemT getOverItemT(Drawable scenicIcon, GeoPoint geo){
//OverItemT該類我自個定義的,繼承ItemizedOverlay<overlayitem>,以來顯示我的位置的點
OverItemT overLay = new OverItemT(scenicIcon, MapSearchActivity.this, geo, view, mapView);
return overLay;
}
</overlayitem></overlay>
3)百度畫路線----待定