1.首先作好下邊的準備:android
1.1 http://lbs.amap.com/ 註冊帳號api
1.2 下載 定位sdk 和 地圖sdkapp
下載後是這樣的 ide
1.3 對下載的進行解壓 gradle
將他們加入 中,對每一個jar,右鍵-Add As Library.ui
此時 build.gradle生成spa
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.0.0' testCompile 'junit:junit:4.12' compile files('libs/Amap_2DMap_V4.2.0_20170209.jar') compile files('libs/AMap_Location_V3.3.0_20170118.jar') }
1.4 申請API Key.code
首先進入控制檯:xml
建立本身的應用blog
建立應用,相應的密鑰 得到 參考以下 http://lbs.amap.com/faq/top/hot-questions/249
那麼 開發環境已經配置好了。
2.將地圖展現出來
2.1 添加用戶key 剛纔申請的key添加到AndroidManifest.xml中
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <meta-data android:name="com.amap.api.v2.apikey" //這個name值 不變 android:value=" " //value是上邊申請的key ></meta-data>
2.2 添加所需的權限在AndroidManifest.xml
//地圖包、搜索包須要的基礎權限 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <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_LOCATION_EXTRA_COMMANDS" /> <!--<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />--> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
2.3 在xml中 添加
<com.amap.api.maps2d.MapView android:id="@+id/map_view" android:layout_width="match_parent" android:layout_height="match_parent" />
2.4 MainActivity,管理地圖的生命週期
public class MainActivity extends AppCompatActivity { private MapView mMapView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取地圖控件引用 mMapView = (MapView) findViewById(R.id.map_view); //在activity執行onCreate時執行mMapView.onCreate(savedInstanceState),實現地圖生命週期管理 mMapView.onCreate(savedInstanceState); } @Override protected void onDestroy() { super.onDestroy(); //在activity執行onDestroy時執行mMapView.onDestroy(),實現地圖生命週期管理 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity執行onResume時執行mMapView.onResume (),實現地圖生命週期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity執行onPause時執行mMapView.onPause (),實現地圖生命週期管理 mMapView.onPause(); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //在activity執行onSaveInstanceState時執行mMapView.onSaveInstanceState (outState),實現地圖生命週期管理 mMapView.onSaveInstanceState(outState); } }
運行一下: