Android集成高德地图
首先下载Android地图SDK http://lbs.amap.com/api/android-sdk/down/
然后把压缩包中的.jar文件copy至libs文件夹,鼠标移至.jar文件,右键,点击Add As Library
把armeabi文件夹copy至jniLibs,在main里面,和java一层
在清单文件中添加以下权限,和你在高德申请的Key,还有一个service
//权限<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /><uses-permission android:name="android.permission.WAKE_LOCK" /><application
android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme">//写key<meta-data
android:name="com.amap.api.v2.apikey"android:value="自己的key"/><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>//注册服务<service android:name="com.amap.api.location.APSService"></service></application>
在xml布局中添加MapView
<com.amap.api.maps.MapViewandroid:id="@+id/mapview"android:layout_width="match_parent"android:layout_height="match_parent"></com.amap.api.maps.MapView>
最后写MainActivity方法
public class MainActivity extends AppCompatActivity implements LocationSource,AMapLocationListener{private MapView mMapView;//显示地图的视图private AMap aMap;//定义AMap 地图对象的操作方法与接口。private OnLocationChangedListener mListener;//位置发生变化时的监听private AMapLocationClient mapLocationClient;//定位服务类。此类提供单次定位、持续定位、地理围栏、最后位置相关功能。private AMapLocationClientOption mapLocationClientOption;//定位参数设置,通过这个类可以对定位的相关参数进行设置//在AMapLocationClient进行定位时需要这些参数@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMapView = (MapView) findViewById(R.id.mapview);mMapView.onCreate(savedInstanceState);//必须调用init();}//实例化Amap对象public void init() {if (aMap == null) {aMap = mMapView.getMap();setConfigrationAmap();}}//配置Amap对象public void setConfigrationAmap() {aMap.setLocationSource(MainActivity.this);//设置定位监听aMap.setMyLocationEnabled(true);//设置显示定位层,并可以出发定位aMap.getUiSettings().setMyLocationButtonEnabled(true);//设置显示定位按 钮aMap.setMyLocationType(AMap.LOCATION_TYPE_LOCATE);//设置定位类型}// 必须重写@Overridepublic void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {super.onSaveInstanceState(outState, outPersistentState);mMapView.onSaveInstanceState(outState);}// 必须重写@Overrideprotected void onResume() {super.onResume();mMapView.onResume();}// 必须重写@Overrideprotected void onPause() {super.onPause();mMapView.onPause();deactivate();}// 必须重写@Overrideprotected void onDestroy() {super.onDestroy();mMapView.onDestroy();if(mapLocationClient!=null){mapLocationClient.onDestroy();}}//激活定位@Overridepublic void activate(OnLocationChangedListener onLocationChangedListener) { System.out.println("已经激活定位-------------activate");mListener=onLocationChangedListener;if(mapLocationClient==null){mapLocationClient=new AMapLocationClient(MainActivity.this);mapLocationClientOption=new AMapLocationClientOption();mapLocationClientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//设置定位模式为 高精度mapLocationClient.setLocationOption(mapLocationClientOption);//设置配置mapLocationClient.setLocationListener(this);//设置位置变化监听mapLocationClient.startLocation();}}//关闭定位@Overridepublic void deactivate() {mListener=null;if(mapLocationClient!=null){mapLocationClient.stopLocation();mapLocationClient.onDestroy();}mapLocationClient =null;System.out.println("已经关闭定位-------------deactivate");}@Overridepublic void onLocationChanged(AMapLocation aMapLocation) {if(mListener!=null&&aMapLocation!=null){if(aMapLocation!=null&&aMapLocation.getErrorCode()==0){Toast.makeText(MainActivity.this,aMapLocation.getAddress(),Toast.LENGTH_SHORT).show();mListener.onLocationChanged(aMapLocation);System.out.println(aMapLocation.getLatitude() + "----" + aMapLocation.getLongitude() + "---------" + aMapLocation.getErrorCode());}}else{Toast.makeText(MainActivity.this,"定位失败:"+aMapLocation.getErrorCode(),Toast.LENGTH_SHORT).show();}}
}
然后就成功啦!!!
Android集成高德地图相关推荐
- Android 集成高德地图
需要完成效果:集成高德地图,实现定位功能,并且实时刷新位置,每25秒自动刷新位置. 布局: <?xml version="1.0" encoding="utf-8& ...
- android 集成高德地图打包后报 key-location Error, ErrCode:7 的问题
问题描述(android高德地图key鉴权失败). 工具下载地址:http://download.csdn.net/download/zhuyu19911016520/9965114 按高德官网开发文 ...
- 关于Android集成高德地图的那些事儿...显示地图
记得在2016年的时候, 有个项目需要在地图上添加Marker 并且连点成线记录坐标 和 地理围栏, 当时也是第一次做,确实有点懵, 不过时间久了, 也还挺简单的 ; 最近项目中又用到了地图 , 借 ...
- Android 集成高德地图——当前定位,添加图标,画路线,设置显示中心位置,比例,地图刷新位置监听,判断GPS开启,去打开GPS
/*** 判断定位服务是否开启** @param* @return true 表示开启*/ public static boolean isLocationEnabled(Context contex ...
- Android 集成高德地图SDK
今天和大家分享一下如果在Android开发中引用高德地图的SDK以及实现定位,搜索,导航的功能 =-= 第一步:引入高德地图的SDK. 首先,进入高德地图开发平台,鼠标移至头像处,点击我的应用,然后新 ...
- Android - 集成高德地图API(搜索,地图,定位)
前言: 今天重构公司app的地图功能,刚好做个教程出来方便大家. 第一步: 注册高德开发用户,并来到控制台,点击应用管理->我的应用,然后创建新应用 地址:高德开放平台 | 高德地图API 点击 ...
- android mapview 自定义地图标注,关于Android集成高德地图的那些事儿...地图标注Marker 、Poi 搜索...
上一篇博客介绍了地图的显示,不要太简单了, 我们要实现的效果当然不仅仅是显示地图这么废了, 现在地图是有了 , 怎么在地图上添加一个标注呢? 添加一个圆形?又或者是我想在地图上添加个自定义的View, ...
- Android 集成高德地图黑屏
集成当中一直不能正常显示:试了网上的 各种方式都不能解决:然后突然发现在build.gadle里添加的一个标签 packagingOptions {exclude 'classes.dex'exclu ...
- Android集成高德Flutter地图(一)基础地图显示
步骤一.集成Flutter环境 步骤二.创建Flutter项目,创建高德项目获取key 如何获取Sha1: 开发板: 找到自己电脑jdk的位置进入其中bin文件夹路径下,输入命令-list -v -k ...
最新文章
- smarty的简单分页
- TortoiseGit 连接oschina不用每次输入username和password的方法
- 一个红 - 黑树的具体描述
- iOS学习之Runtime(二)
- xx is not in the sudoers file 问题解决
- SM3密码杂凑算法源码解析
- leetcode520. py解字符串真是太残暴了
- php递归删除空数组,php 递归删除非空文件夹示例
- linux网站权限一直自动关闭,奇妙伞-解决SELinux对网站目录权限控制的不当的问题--网上摘抄集合,记录使用...
- 【笔记】A Tutorial of Transformers_复旦大学邱锡鹏报告
- ubuntu18.04安装lua5.3.6和luarocks3.8
- 不容错过的Multisim14.0语言设置!!
- java linux 消息队列_我的第一个Linux程序----利用消息队列来实现IPC
- mysql auto_increment 重置_如何重置MySQL中的AUTO_INCREMENT?
- 苹果打字怎么换行_iPhone实用小技巧,安卓转苹果的同学看完收获尤其大
- pyqt5窗口之间传递信号_PyQt5不同窗口之间的值传递
- Python3 爬取豆瓣电影信息
- VPS国内各网点一键测试脚本
- 自己总结的iOS、mac开源项目及库
- 【PHP CMS系统】-- 新闻管理系统 1