核心功能
- 地圖顯示:普通矢量圖、衛星圖、實時路況圖。
- 地圖操作:點擊、雙擊、長按、縮放、平移、旋轉、傾斜視角。
- 生命週期管理:Activity/Fragment 與 MapView 同步(onCreate/onResume/onPause/onDestroy)。
地圖類型配置
// 普通矢量圖(預設)
mMapView = new TextureMapView(this, new BaiduMapOptions().mapType(BaiduMap.MAP_TYPE_NORMAL));
// 衛星圖
mMapView = new TextureMapView(this, new BaiduMapOptions().mapType(BaiduMap.MAP_TYPE_SATELLITE));
完整 Activity 實作
public class BaseMapActivity extends Activity {
private TextureMapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 設定初始中心點:河南大學經緯度
LatLng center = new LatLng(34.81, 114.35);
mMapView = new TextureMapView(this, new BaiduMapOptions()
.mapStatus(new MapStatus.Builder().target(center).zoom(15).build()));
setContentView(mMapView);
}
@Override protected void onResume() { super.onResume(); mMapView.onResume(); }
@Override protected void onPause() { super.onPause(); mMapView.onPause(); }
@Override protected void onDestroy() { super.onDestroy(); mMapView.onDestroy(); }
}
AndroidManifest 權限與 Meta-data
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<application>
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="您的AK"/>
</application>
關鍵注意事項
- TextureMapView 基於 TextureView,支援 OpenGL ES 2.0+,渲染效能優於舊版 MapView。
- 地圖初始化需在主執行緒,且
onCreate 中完成 setContentView。
- 生命週期方法必須完整轉發,否則會導致地圖渲染異常、記憶體洩漏或崩潰。
- AK (API Key) 需在百度地圖開放平台申請,綁定包名與簽名,否則地圖無法加載。