Android实现⾼德地图定位详细流程要实现⾼德地图定位呢,⾸先需要做好以下⼏步准备:
如果你嫌笔者写的不好或者懒得看,只需要代码的话,请选择:
环境破坏github:,此连接可能和⽂章内容有所出⼊,因为我可能会做后期的开发使⽤。(会更新)
CSDN:下载ZIP压缩⽂件
孙悟空的性格特点
当然,可以把代码下载下来,边看代码,边看教程。应该更好理解。
1. 在⾼德开放平台注册帐号
注册地址: 注册之后选择您需要的SDK(此处⽤到的是地图和定位SDK)。
此处有开发⽂档,定位所需要的架包等等。
如果你只需要实现简单的定位功能
可以点击下载.
地图架包:
定位架包:
2.申请⾃⼰的KEY(作为开发⾕歌地图的钥匙)
⾥⾯有详细的教程,在此就不再啰嗦。
3:添加jar包,将jar包放⼊⼯程的libs⽬录下。
对于每个jar⽂件,右键-选择Add As Library,导⼊到⼯程中。或者使⽤菜单栏 选择 File ->Project Structure->Modules-> Dependencies。点击绿⾊的加号选择File dependency. 然后选择要添加的jar包即可,此时adle中会⾃动⽣成如下信息。
dependencies {<!--此标签-->
compile files('libs/AMap_Location_V3.4.0_20170427.jar')
compile files('libs/Amap_2DMap_V4.2.0_20170209.jar')
}
4.在安卓端显⽰⾕歌地图
第⼀步:添加⽤户key 在⼯程的“ l ”⽂件的application标签下添加如下代码。
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="你申请的key" />  <!--拥有⼀个属于⾃⼰的key便于开发使⽤-->
第⼆步:添加所需权限 在⼯程的“ l ”⽂件中进⾏添加。
温兆伦的老婆
(上⾯是基础包,定位是后⾯的,不过肯定不是为了做地图的,嘿嘿,在这⾥直接粘出来)
//地图包、搜索包需要的基础权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--⽤于进⾏⽹络定位-->
算盘是什么时候发明的
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--⽤于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--⽤于提⾼GPS定位速度-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!--写⼊扩展存储,向扩展卡写⼊数据,⽤于写⼊缓存定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--读取缓存数据-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!--⽤于读取⼿机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
第三步:在layout中的XML⽂件中添加地图控件
<com.amap.api.maps2d.MapView
<com.amap.api.maps2d.MapView
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
第四步,在Activity中管理地图⽣命周期。
public class MainActivity extends Activity {
private MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
//获取地图控件引⽤
mMapView = (MapView) findViewById(R.id.map_view);
//在activity执⾏onCreate时执⾏Create(savedInstanceState),实现地图⽣命周期管理
}
@Override
protected void onDestroy() {
//在activity执⾏onDestroy时执⾏Destroy(),实现地图⽣命周期管理
}
@Override
protected void onResume() {
//在activity执⾏onResume时执⾏Resume (),实现地图⽣命周期管理
}
@Override
protected void onPause() {
//在activity执⾏onPause时执⾏Pause (),实现地图⽣命周期管理
}
@Override
protected void onSaveInstanceState(Bundle outState) {
//在activity执⾏onSaveInstanceState时执⾏SaveInstanceState (outState),实现地图⽣命周期管理    SaveInstanceState(outState);
}
}
地图部分已经完成。你可以试试效果。
5.实现定位功能
第⼀步:
配置l
1.在application标签中声明service组件,每个app拥有⾃⼰单独的定位service。(就添加在你的key标签)
<service android:name="com.amap.api.location.APSService"/>
2.配置权限。在上⾯地图权限就含有
第⼆步:启动定位功能
1. 在主线程中获得地图对象AMap,并设置定位监听且实现LocationSource接⼝:
public class MainActivity extends AppCompatActivity implements LocationSource,AMapLocationListener
实现其中的⽅法。
2.定义相关变量
辣目洋子百度百科
private AMap aMap;
//声明AMapLocationClient类对象,定位发起端
private AMapLocationClient mLocationClient = null;
演员高洋//声明mLocationOption对象,定位参数
public AMapLocationClientOption mLocationOption = null;
//声明mListener对象,定位
private OnLocationChangedListener mListener = null;
//标识,⽤于判断是否只显⽰⼀次定位信息和⽤户重新定位
private boolean isFirstLoc = true;