1. 程式人生 > >ANDROID專案中嵌入高德地圖(一)配置環境+顯示地圖

ANDROID專案中嵌入高德地圖(一)配置環境+顯示地圖

最近在做專案中嵌入高德地圖的工作,覺得有必要記錄一下嵌入過程,雖然高德官方給說明文件了,但有寫並不明確需要去查類,查資料,再此把過程記錄一下。

一、顯示地圖

1.配置AndroidManifest.xml檔案

可能需要如下許可權:

<!--允許程式開啟網路套接字--> <uses-permission android:name="android.permission.INTERNET" /> <!--允許程式設定內建sd卡的寫許可權--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>   <!--允許程式獲取網路狀態--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!--允許程式訪問WiFi網路資訊--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!--允許程式讀寫手機狀態和身份--> <uses-permission android:name="android.permission.READ_PHONE_STATE"
/>     <!--允許程式訪問CellID或WiFi熱點來獲取粗略的位置--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 接下來設定key:

(1)先申請key,需要sha1和包名,得到key如圖:


設定即可:

<meta-data android:name="com.amap.api.v2.apikey" android:value="key"> //開發者申請的key  </meta-data> 二、匯入包
,由於業務需求這裡和文件匯入的包不太一樣,我匯入的包有:


三、寫activity

在activity對應的xml檔案中引入地圖:


activity中程式碼:

package com.example.test;

import com.amap.api.maps2d.AMap;
import com.amap.api.maps2d.MapView;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;

public class MainActivity extends Activity {

	private MapView mapView;
	private AMap aMap;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mapView = (MapView) findViewById(R.id.map);
		mapView.onCreate(savedInstanceState);// 此方法必須重寫
		init();
	}
	private void init() {
		if (aMap == null) {
			aMap = mapView.getMap();
			
		}
		
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	protected void onResume() {
		super.onResume();
		mapView.onResume();
	}
	@Override
	protected void onPause() {
		super.onPause();
		mapView.onPause();
	}
	/**
	 * 方法必須重寫
	 */
	@Override
	protected void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		mapView.onSaveInstanceState(outState);
	}
	/**
	 * 方法必須重寫
	 */
	@Override
	protected void onDestroy() {
		super.onDestroy();
		mapView.onDestroy();
	}

}

MapView的生命週期方法必須和activity一致,是因為mapView是必須依附activiy存在的。

完~