内容简介:分为地图,定位,搜索(我还没做导航功能)建议采用gradle方式集成在project/build.gradle文件下添加jcenter的仓库地址
分为地图,定位,搜索(我还没做导航功能)
建议采用gradle方式集成
添加依赖
在project/build.gradle文件下添加jcenter的仓库地址
allprojects { repositories { jcenter() // 或者 mavenCentral() } }
在app/build.gradle下添加依赖
android { defaultConfig { ndk { //设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so) abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64" } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) //3D地图so及jar compile 'com.amap.api:3dmap:latest.integration' //定位功能 compile 'com.amap.api:location:latest.integration' //搜索功能 compile 'com.amap.api:search:latest.integration' }
navi导航SDK 5.0.0以后版本包含了3D地图SDK,所以请不要同时引入 map3d 和 navi SDK。
添加权限
在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
如何获取key看这里 -> 点我查看Key注册时必要数据SHA1和包名的获取方法
建议同时设置debug和release状态下的key,方便App在debug模式下也能使用高德地图功能.
在app/build.gradle下设置两种key
android { buildTypes { debug { manifestPlacesholders = [ //左边的键MAP_API_KEY是自定义的名字,右边的debug-key-value是你申请的debug下的key值 "MAP_API_KEY" : "debug-key-value" ] } release{ manifestPlacesholders = [ //左边的键MAP_API_KEY要和debug下的保持一致,右边的release-key-value是你申请的release下的key值 "MAP_API_KEY" : "release-key-value" ] } } }
在AndroidManifest.xml中添加key
<application> <meta-data android:name="com.amap.api.v2.apikey" //要和app/build.gradle文件中设置的保持一致 android:value="${MAP_API_KEY}"/> </application>
使用地图
在布局中引入地图MapView
// R.layout.activity_your_activity <com.amap.api.maps.MapView android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent"/>
管理地图的生命周期(非常重要),以Activity为例
public class YourActivity extends AppcompatActivity{ MapView mMapView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_your_activity); //获取地图控件引用 mMapView = (MapView) findViewById(R.id.map); //在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); } }
构造一个AMap对象
if(mAMap == null){ mAMap = mapView.getMap(); }
初始化地图的相关属性
- 地图缩放级别
mAMap.animateCamera(CameraUpdateFactory.zoomTo(float zoomLevel));
显示定位蓝点
未完待续
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 极益发布地图插件,用于背景地图与业务地图
- Java - 调用 echarts 提供的地图压缩方法压缩地图
- VUE 记一次高德地图和Echarts(中国地图)
- 高德地图附近地图改版 场景化个性化推荐身边好去处
- 地图初创公司 Mapbox 与微软、ARM及英特尔达成合作,加码无人驾驶地图
- 百度地图 osm地图 leaflet echarts webapck的组合使用时的踩坑记录
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTML 编码/解码
HTML 编码/解码
UNIX 时间戳转换
UNIX 时间戳转换