package com.itbox.grzl.map;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.map.MKEvent;
import com.itbox.fx.core.AppException;
import com.itbox.fx.util.ToastUtils;
import com.itbox.grzl.AppContext;
import com.zhaoliewang.grzl.BuildConfig;
import com.itbox.grzl.Const;
public class MapManager extends BMapManager {
/*
* 注意:为了给用户提供更安全的服务,Android SDK自v2.1.3版本开始采用了全新的Key验证体系。
* 因此,当您选择使用v2.1.3及之后版本的SDK时,需要到新的Key申请页面进行全新Key的申请, 申请及配置流程请参考开发指南的对应章节
*/
public boolean m_bKeyRight = true;
private static MapManager mBMapManager;
public static MapManager getInstance() {
if (null == mBMapManager) {
mBMapManager = new MapManager();
}
return mBMapManager;
}
private MapManager() {
super(AppContext.getInstance());
// if (!init(getKeyStr(), new MyGeneralListener())) {
if (!init(new MyGeneralListener())) {
AppException
.handle(new NullPointerException("BMapManager 初始化错误!"));
}
}
/**
* 获取Key,
*
* @return
*/
private static String getKeyStr() {
if (BuildConfig.DEBUG) {
return Const.MapKey_Debug;
}
return Const.MapKey_Release;
}
// 常用事件监听,用来处理通常的网络错误,授权验证错误等
static class MyGeneralListener implements MKGeneralListener {
@Override
public void onGetNetworkState(int iError) {
if (iError == MKEvent.ERROR_NETWORK_CONNECT) {
ToastUtils.showToast(AppContext.getInstance(), "您的网络出错啦!");
} else if (iError == MKEvent.ERROR_NETWORK_DATA) {
ToastUtils.showToast(AppContext.getInstance(), "输入正确的检索条件!");
}
}
@Override
public void onGetPermissionState(int iError) {
if (iError == MKEvent.ERROR_PERMISSION_DENIED) {
// 授权Key错误:
// Toast.show("请在 DemoApplication.java文件输入正确的授权Key!");
AppException.handle(new NullPointerException(
"请在MapEngine.java文件输入正确的授权Key!"));
MapManager.getInstance().m_bKeyRight = false;
}
}
}
}