首先是添加依賴或者導入jar包:
以jar包使用,3d地圖為例:
Android_Map3D_SDK_V6.6.0_20181221.jar 3.14MB
因為是3d地圖,是以還要導入相關的jni庫:(和jar同目錄下armeabi檔案夾裡)
libAMapSDK_MAP_v6_6_0.so 2.80MB
--------------------------------------------------------------------------------
然後在清單檔案裡面的代碼:
首先權限:
<!--地圖包、搜尋包需要的基礎權限-->
<!--允許程式打開網絡套接字-->
<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的配置:注意your key替換成你的key
<application>
<!-- 高德地圖key配置 -->
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="your key"/>
</application>
--------------------------------------------------------------------------------
然後開始搞地圖布局檔案,直接把這個MapView當做view來使用:
<com.amap.api.maps.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
</com.amap.api.maps.MapView>
--------------------------------------------------------------------------------
然後是activity主要代碼:
MapView mMapView;
AMap aMap;
MyLocationStyle myLocationStyle;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO 自動生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gaode3dmap_layout);
mMapView = findViewById(R.id.map);
//在activity執行onCreate時執行mMapView.onCreate(savedInstanceState),建立地圖
mMapView.onCreate(savedInstanceState);
//初始化地圖控制器對象
if (aMap == null) {
aMap = mMapView.getMap();
}
initLocation();
}
private void initLocation() {
// TODO 自動生成的方法存根
if(myLocationStyle == null){
//初始化定位藍點樣式類 myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//連續定位、且将視角移動到地圖中心點,定位點依照裝置方向旋轉,并且會跟随裝置移動。(1秒1次定位)如果不設定myLocationType,預設也會執行此種模式。
myLocationStyle = new MyLocationStyle();
myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_MAP_ROTATE_NO_CENTER);//連續定位、藍點不會移動到地圖中心點,地圖依照裝置方向旋轉,并且藍點會跟随裝置移動。
}
myLocationStyle.interval(2000); //設定連續定位模式下的定位間隔,隻在連續定位模式下生效,單次定位模式下不會生效。機關為毫秒。
aMap.setMyLocationStyle(myLocationStyle);//設定定位藍點的Style
aMap.setTrafficEnabled(true);// 顯示實時交通狀況
aMap.getUiSettings().setMyLocationButtonEnabled(true);//設定預設定位按鈕是否顯示,非必需設定。
aMap.setMyLocationEnabled(true);// 設定為true表示啟動顯示定位藍點,false表示隐藏定位藍點并不進行定位,預設是false。
}
@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);
}
@HSFClick(R.id.btn_map1)
public void map1click(View v){
//地圖模式可選類型:MAP_TYPE_NORMAL,MAP_TYPE_SATELLITE,MAP_TYPE_NIGHT
aMap.setMapType(AMap.MAP_TYPE_NORMAL);// 标準地圖模式
}
@HSFClick(R.id.btn_map2)
public void map2click(View v){
//地圖模式可選類型:MAP_TYPE_NORMAL,MAP_TYPE_SATELLITE,MAP_TYPE_NIGHT
aMap.setMapType(AMap.MAP_TYPE_SATELLITE);// 衛星地圖模式
}
@HSFClick(R.id.btn_map3)
public void map3click(View v){
//地圖模式可選類型:MAP_TYPE_NORMAL,MAP_TYPE_SATELLITE,MAP_TYPE_NIGHT
aMap.setMapType(AMap.MAP_TYPE_NIGHT);// 夜間地圖模式
}
--------------------------------------------------------------------------------
具體配置和其他參考高德地圖開發平台