android-2(集成高德地图,定位显示)
2016-04-20 16:21
459 查看
由于在应用中要用到地图的实时导航功能,因此在需要在app中集成地图插件,这里集成的是高德地图。
高德地图有自己的api开放平台,高德地图开放平台http://lbs.amap.com,资料都有。
做了个简单的归纳
1.首先到高德地图开放平台http://lbs.amap.com上下载开发库,对于定位显示来说需要两个库
地图库
AMap_3DMap_V3.3.1_20160419.jar和一些依赖的so库
定位库
AMap_Location_V2.4.1_20160414.jar
2.注册一个高德开发者,获得一个key,这个key以后在使用sdk时需要用到。
3.在androidManiFest.xml中依次添加权限,key,service
添加key标签
4.在activity_main.xml中把mapView加载起来
5.在MainActivity中实现LocationSource,AMapLocationListener,OnCheckedChangeListener
我们绘制地图主要用到MapView类和Amap类,在activity生命周期状态变化的时候我们的mapView也要紧跟着变化
重写onResume,onPause等
重写三个方法
public void activate(OnLocationChangedListener listener) //激活
public
void deactivate() //消除
public
void onLocationChanged(AMapLocation amapLocation) //回调
这只是简单的应用,具体拓展可以见api资料。
高德地图有自己的api开放平台,高德地图开放平台http://lbs.amap.com,资料都有。
做了个简单的归纳
1.首先到高德地图开放平台http://lbs.amap.com上下载开发库,对于定位显示来说需要两个库
地图库
AMap_3DMap_V3.3.1_20160419.jar和一些依赖的so库
定位库
AMap_Location_V2.4.1_20160414.jar
2.注册一个高德开发者,获得一个key,这个key以后在使用sdk时需要用到。
3.在androidManiFest.xml中依次添加权限,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_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_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
添加key标签
<meta-data android:name="com.amap.api.v2.apikey" android:value="申请的key"/>添加定位服务
<service android:name="com.amap.api.location.APSService"></service>
4.在activity_main.xml中把mapView加载起来
<com.amap.api.maps.MapView android:id="@+id/map" android:layout_width="wrap_content" android:layout_height="wrap_content" />
5.在MainActivity中实现LocationSource,AMapLocationListener,OnCheckedChangeListener
我们绘制地图主要用到MapView类和Amap类,在activity生命周期状态变化的时候我们的mapView也要紧跟着变化
重写onResume,onPause等
@Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); mapView.onDestroy(); }
重写三个方法
public void activate(OnLocationChangedListener listener) //激活
public
void deactivate() //消除
public
void onLocationChanged(AMapLocation amapLocation) //回调
@Override public void activate(OnLocationChangedListener listener) { // TODO Auto-generated method stub mListener = listener; if (mlocationClient == null) { mlocationClient = new AMapLocationClient(this); mLocationOption = new AMapLocationClientOption(); //设置定位监听 mlocationClient.setLocationListener(this); //设置为高精度定位模式 mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy); //设置定位参数 mlocationClient.setLocationOption(mLocationOption); // 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗, // 注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求 // 在定位结束后,在合适的生命周期调用onDestroy()方法 // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除 mlocationClient.startLocation(); } } @Override public void deactivate() { // TODO Auto-generated method stub mListener = null; if (mlocationClient != null) { mlocationClient.stopLocation(); mlocationClient.onDestroy(); } mlocationClient = null; } @Override public void onLocationChanged(AMapLocation amapLocation) { // TODO Auto-generated method stub if (mListener != null && amapLocation != null) { if (amapLocation != null && amapLocation.getErrorCode() == 0) { mLocationErrText.setVisibility(View.GONE); mListener.onLocationChanged(amapLocation);// 显示系统小蓝点 } else { String errText = "定位失败," + amapLocation.getErrorCode()+ ": " + amapLocation.getErrorInfo(); Log.e("AmapErr",errText); mLocationErrText.setVisibility(View.VISIBLE); mLocationErrText.setText(errText); } } }
这只是简单的应用,具体拓展可以见api资料。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件