break;
default:
break;
}
break;
2.定位模式:普通/跟随/罗盘
**
**
case R.id.layoutLocateMode:
switch (currentMode) {
case NORMAL:
textLocateMode.setText(“跟随”);
currentMode = LocationMode.FOLLOWING;
baiduMap.setMyLocationConfigeration(new MyLocationConfiguration(
currentMode, true, null));
break;
case COMPASS:
textLocateMode.setText(“普通”);
currentMode = LocationMode.NORMAL;
baiduMap.setMyLocationConfigeration(new MyLocationConfiguration(
currentMode, true, null));
break;
case FOLLOWING:
textLocateMode.setText(“罗盘”);
currentMode = LocationMode.COMPASS;
baiduMap.setMyLocationConfigeration(new MyLocationConfiguration(
currentMode, true, null));
break;
}
break;
3.设置指南针
需要在地图加载完毕后设置才有效,且当地图上方是正北的时候不显示:
// 地图加载完毕回调
baiduMap.setOnMapLoadedCallback(new OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
UiSettings uiSettings = baiduMap.getUiSettings();
// uiSettings.setCompassEnabled(false); // 是否显示指南针
// 设置指南针的位置,在 onMapLoadFinish 后生效
uiSettings.setCompassPosition(new Point(30, 380));
// uiSettings.setOverlookingGesturesEnabled(false); //设置是否允许俯视手势
// uiSettings.setRotateGesturesEnabled(false); //设置是否允许旋转手势
// uiSettings.setScrollGesturesEnabled(false); //设置是否允许拖拽手势
// uiSettings.setZoomGesturesEnabled(false); //设置是否允许缩放手势
}
});
4.SD卡导入离线地图
检测两张内存卡的以下位置是否存在离线地图:
private final static String[] pathFrom = {
“/storage/sdcard1/BaiduMapSDK/vmp/l/”,
“/storage/sdcard1/BaiduMap/vmp/l/”,
“/storage/sdcard2/BaiduMapSDK/vmp/l/”,
“/storage/sdcard2/BaiduMap/vmp/l/” };
package com.tchip.baidunavi.ui.activity;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import com.baidu.mapapi.map.offline.MKOLUpdateElement;
import com.baidu.mapapi.map.offline.MKOfflineMap;
import com.baidu.mapapi.map.offline.MKOfflineMapListener;
import com.tchip.baidunavi.Constant;
import com.tchip.baidunavi.R;
import com.tchip.baidunavi.util.MyLog;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class OfflineBaiduMapUpdateActivity extends Activity {
private final static String[] pathFrom = {
“/storage/sdcard1/BaiduMapSDK/vmp/l/”,
“/storage/sdcard1/BaiduMap/vmp/l/”,
“/storage/sdcard2/BaiduMapSDK/vmp/l/”,
“/storage/sdcard2/BaiduMap/vmp/l/” };
private ProgressBar progressCopy;
private TextView textHint, textDetail;
private RelativeLayout layoutBack, layoutUpdateOnline;
private Button btnStart, btnScan;
private boolean hasOfflineMap = false;
private boolean isActivityShow = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_update_map);
initialLayout();
// statrtScanThread();
setMapNumberText();
}
private void initialLayout() {
progressCopy = (ProgressBar) findViewById(R.id.progressCopy);
progressCopy.setVisibility(View.GONE);
textHint = (TextView) findViewById(R.id.textHint);
// textHint.setText(“正在扫描SD卡是否有离线地图”);
textDetail = (TextView) findViewById(R.id.textDetail);
layoutBack = (RelativeLayout) findViewById(R.id.layoutBack);
layoutBack.setOnClickListener(new MyOnClickListener());
btnStart = (Button) findViewById(R.id.btnStart);
btnStart.setOnClickListener(new MyOnClickListener());
btnStart.setVisibility(View.VISIBLE);
btnScan = (Button) findViewById(R.id.btnScan);
btnScan.setOnClickListener(new MyOnClickListener());
btnS