參考了百度地圖sdk官方文檔,和博客https://blog.csdn.net/lonely0512/article/details/84821288
我的百度SDK是現(xiàn)在最新的5.3.0版本巩那,AndroidSDK 7.1.1 好了 不說(shuō)廢話 直接上代碼
.......
1.在AndroidMaifest.xml文件中加入權(quán)限
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="false"
android:resizeable="true"
android:smallScreens="true" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
2.寫一個(gè)類繼承Application
package com.example.immedsee.activity;
import com.baidu.lbsapi.BMapManager;
import com.baidu.lbsapi.MKGeneralListener;
import android.app.Application;
import android.content.Context;
import android.util.Log;
import android.widget.Toast;
public class PanorApplication extends Application {
private static PanorApplication mInstance = null;
public BMapManager mBMapManager = null;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
initEngineManager(this);
}
public void initEngineManager(Context context) {
if (mBMapManager == null) {
mBMapManager = new BMapManager(context);
}
if (!mBMapManager.init(new MyGeneralListener())) {
Toast.makeText(
PanorApplication.getInstance().getApplicationContext(),
"BMapManager 初始化錯(cuò)誤!", Toast.LENGTH_LONG).show();
}
Log.d("ljx", "initEngineManager");
}
public static PanorApplication getInstance() {
return mInstance;
}
// 常用事件監(jiān)聽噪生,用來(lái)處理通常的網(wǎng)絡(luò)錯(cuò)誤跺嗽,授權(quán)驗(yàn)證錯(cuò)誤等
static class MyGeneralListener implements MKGeneralListener {
@Override
public void onGetPermissionState(int iError) {
// 非零值表示key驗(yàn)證未通過(guò)
if (iError != 0) {
// 授權(quán)Key錯(cuò)誤:
Toast.makeText(
PanorApplication.getInstance()
.getApplicationContext(),
"請(qǐng)?jiān)贏ndoridManifest.xml中輸入正確的授權(quán)Key,并檢查您的網(wǎng)絡(luò)連接是否正常页藻!error: "
+ iError, Toast.LENGTH_LONG).show();
} else {
Toast.makeText(
PanorApplication.getInstance()
.getApplicationContext(), "key認(rèn)證成功",
Toast.LENGTH_LONG).show();
}
}
}
}
3.布局代碼
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.baidu.lbsapi.panoramaview.PanoramaView
android:id="@+id/panorama"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" />
</LinearLayout>
4.初始化BMapManager 一定要在setContentView之前
PanorApplication app = (PanorApplication) this.getApplication();
if (app.mBMapManager == null) {
app.mBMapManager = new BMapManager(app);
app.mBMapManager.init(new PanorApplication.MyGeneralListener());
}
setContentView(R.layout.activity_result_details);
5.最后就可以使用
mPanoramaView.setPanoramaByUid(resultUid,PanoramaView.PANOTYPE_STREET);
6.一定要記琢О伞!6且荨彬坏! 在AndroidMaifest.xml文件的application中加上name屬性,名字是你寫的那個(gè)集成Application
<application
android:name=".activity.PanorApplication"
android:allowBackup="true"