百度地图开发(一)
1 package com.example.android_map; 2 import com.baidu.mapapi.BMapManager; 3 import com.baidu.mapapi.MKGeneralListener; 4 import com.baidu.mapapi.map.MapController; 5 import com.baidu.mapapi.map.MapView; 6 import com.baidu.platform.comapi.basestruct.GeoPoint; 7 8 import android.R.layout; 9 import android.app.Activity; 10 import android.os.Bundle; 11 import android.widget.Toast; 12 13 public class MainActivity extends Activity { 14 /** Called when the activity is first created. */ 15 16 BMapManager mBMapMan = null; 17 MapView mMapView = null; 18 19 @Override 20 public void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 //setContentView(R.layout.main); 23 mBMapMan=new BMapManager(getApplication()); 24 mBMapMan.init("6686871A9FE37CB66A2BF3261D3E865403BA0E65", new MKGeneralListener() { 25 26 @Override 27 public void onGetNetworkState(int arg0) { 28 // TODO Auto-generated method stub 29 //返回网络错误 30 } 31 32 @Override 33 public void onGetPermissionState(int arg0) { 34 // TODO Auto-generated method stub 35 //返回授权码错误 36 37 } 38 39 40 }); 41 //注意:请在试用setContentView前初始化BMapManager对象,否则会报错 42 setContentView(R.layout.activity_main); 43 mMapView=(MapView)findViewById(R.id.bmapView); 44 mMapView.setBuiltInZoomControls(true);//表示可以缩放地图 45 mMapView.setSatellite(true); 46 //设置启用内置的缩放控件 47 MapController mMapController=mMapView.getController(); 48 // 得到mMapView的控制权,可以用它控制和驱动平移和缩放 49 GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6)); 50 //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6) 51 mMapController.setCenter(point);//设置地图中心点 52 mMapController.setZoom(12);//设置地图zoom级别 53 } 54 @Override 55 protected void onDestroy(){ 56 mMapView.destroy(); 57 if(mBMapMan!=null){ 58 mBMapMan.destroy(); 59 mBMapMan=null; 60 } 61 super.onDestroy(); 62 } 63 @Override 64 protected void onPause(){ 65 mMapView.onPause(); 66 if(mBMapMan!=null){ 67 mBMapMan.stop(); 68 } 69 super.onPause(); 70 } 71 @Override 72 protected void onResume(){ 73 mMapView.onResume(); 74 if(mBMapMan!=null){ 75 mBMapMan.start(); 76 } 77 super.onResume(); 78 } 79 80 81 82 }
在AndroidManifest.xml文件中加入百度地图开发的授权和支持的screen
1 <supports-screens 2 android:anyDensity="true" 3 android:largeScreens="true" 4 android:normalScreens="false" 5 android:resizeable="true" 6 android:smallScreens="true" /> 7 <!-- 添加百度地图开发的授权 --> 8 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > 9 </uses-permission> 10 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > 11 </uses-permission> 12 <uses-permission android:name="android.permission.INTERNET" > 13 </uses-permission> 14 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > 15 </uses-permission> 16 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > 17 </uses-permission> 18 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" > 19 </uses-permission> 20 <uses-permission android:name="android.permission.READ_PHONE_STATE" > 21 </uses-permission>
将百度SDK自带的Sample中的libs全部拷贝到工程目录下
在activity_main.xml中加入
<com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" />
*值得注意的是百度API已经不支持以往的MapActivity,全部改用了Acitivity,添加百度引擎的时候直接用
BMapManager mBMapMan=new BMapManager(Context)
mBMapMan.init("授权码", new MKGeneralListener())
浙公网安备 33010602011771号