——高德地图 【若对该知识点有更多想了解的,欢迎私信博主~~】
将jar包引入libs下,并加载(Add As Library)
在AndroidManifest.xml里添加权限
<!-- 用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 用于访问GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 用于获取运营商信息,用于支持提供运营商信息相关的接口 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 用于获取wifi的获取权限,wifi信息会用来进行网络定位 --> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 用于访问网络,网络定位需要上网 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 用于读取手机当前的状态 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 用于写入缓存数据到扩展存储卡 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 用于申请调用A-GPS模块 --> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 用于申请获取蓝牙信息进行室内定位 --> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />生命周期及初始化地图
package com.example.sirl.practice; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Toast; import com.amap.api.maps2d.AMap; import com.amap.api.maps2d.CameraUpdateFactory; import com.amap.api.maps2d.MapView; import com.amap.api.maps2d.model.LatLng; public class MainActivity extends AppCompatActivity { MapView mapView; AMap aMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //绑定控件 mapView=findViewById(R.id.map); //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图 mapView.onCreate(savedInstanceState); if (aMap==null){ //创建空地图地图为地图控件获取的地图(aMap一张空地图) aMap=mapView.getMap(); //为地图添加初始点(默认北京) LatLng latLng=new LatLng(30.484291,114.358571); aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng,14)); } } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图 mapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图 mapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制 mapView.onPause(); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态 mapView.onSaveInstanceState(outState); } }Marker 点击事件
//标记点单击事件 aMap.setOnMarkerClickListener(new AMap.OnMarkerClickListener() { // 返回 true 则表示接口已响应事件,否则返回false @Override public boolean onMarkerClick(Marker marker) { return false; } });Marker拖拽事件
//标记点拖拽事件 aMap.setOnMarkerDragListener(new AMap.OnMarkerDragListener() { // 当marker开始被拖动时回调此方法, 这个marker的位置可以通过getPosition()方法返回。 // 这个位置可能与拖动的之前的marker位置不一样。 // marker 被拖动的marker对象。 @Override public void onMarkerDragStart(Marker marker) { } // 在marker拖动完成后回调此方法, 这个marker的位置可以通过getPosition()方法返回。 // 这个位置可能与拖动的之前的marker位置不一样。 // marker 被拖动的marker对象。 @Override public void onMarkerDrag(Marker marker) { } // 在marker拖动过程中回调此方法, 这个marker的位置可以通过getPosition()方法返回。 // 这个位置可能与拖动的之前的marker位置不一样。 // marker 被拖动的marker对象。 @Override public void onMarkerDragEnd(Marker marker) { } });参考高德官方指导完成SDK的引用。 https://lbs.amap.com/api/android-sdk/guide/create-project/android-studio-create-project
高德Android SDK下载地址: https://lbs.amap.com/api/android-sdk/download/
下载官方SDK,引入libs下,并加载(Add As Library)
在main文件夹下创建jniLibs文件夹,将配置文件添加到jniLibs中
在app的build.gradle中
android { defaultConfig { //添加ndk ndk { //设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so) abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","arm64-v8a","x86_64" } } //添加sourceSets sourceSets { main { jniLibs.srcDirs = ['src/main/jniLibs'] } } }在AndroidManifest.xml添加权限
在AndroidManifest.xml的application中添加key
<meta-data android:name="com.amap.api.v2.apikey" android:value="defa40a1358288697aaf9b99a1fbbadf"/>//需要从高德地图官方获取keyhttps://lbs.amap.com/api/android-sdk/guide/create-project/get-key
发布版安全码SHA1:项目做完发布到平台后,SHA1获取的key提供的服务将面向客户
https://blog.csdn.net/xxdw1992/article/details/82527956
调试版安全码SHA1:项目测试阶段,SHA1获取的key提供的服务将面向开发者
https://www.jianshu.com/p/dcfca6041154
教程:https://lbs.amap.com/api/android-sdk/guide/create-map/offline-map
导入地图包:
将AMap文件夹放入SD卡目录下将AMap文件夹放入SD卡目录下Android.data下教程https://lbs.amap.com/api/android-sdk/guide/create-map/mylocation
教程https://lbs.amap.com/api/android-sdk/guide/route-plan/drive