1 高德地图定位
1.1 要使用路径规划和导航需要使用3Dmap
在build.gradle文件加入一下包
api 'com.amap.api:search:6.5.0.1'
api 'com.amap.api:location:4.3.0'
api 'com.amap.api:navi-3dmap:6.4.0_3dmap6.5.0'
复制代码
1.2 初始化mapView
private void initAMap() {
if (aMap == null) {
aMap = mapView.getMap();
//地图设置相关
UiSettings settings = aMap.getUiSettings();
//去掉自带的放大缩小按钮
settings.setZoomControlsEnabled(false);
//支持手势缩放地图
settings.setGestureScaleByMapCenter(true);
//地图的触摸事件
aMap.setOnMapTouchListener(this);
//地图加载完的回调事件
aMap.setOnMapLoadedListener(this);
//地图位置变化事件
aMap.setOnCameraChangeListener(this);
//地图点击事件
aMap.setOnMapClickListener(this);
// 绑定 Marker 被点击事件
aMap.setOnMarkerClickListener(markerClickListener);
// 设置自定义InfoWindow样式
aMap.setInfoWindowAdapter(this);
mAMapNavi = AMapNavi.getInstance(getApplicationContext());
mAMapNavi.addAMapNaviListener(this);
}
}
复制代码
1.3 开启定位相关
public void startLocate() {
mLocationClient = new AMapLocationClient(context);
mLocationClient.setLocationListener(this);
AMapLocationClientOption option=new AMapLocationClientOption();
option.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
//多次定位获取数据
option.setOnceLocation(false);
option.setInterval(8*1000);
mLocationClient.setLocationOption(option);
mLocationClient.startLocation();
}
复制代码
1.4 回调到下面的onLocationChanged方法中,你可以使用自定义的回调把定位数据监听回来
@Override
public void onLocationChanged(AMapLocation amapLocation) {
if (amapLocation != null && amapLocation.getErrorCode() == 0) {
PositionEntity entity = new PositionEntity();
entity.latitue = amapLocation.getLatitude();
entity.longitude = amapLocation.getLongitude();
entity.city = amapLocation.getCity();
if (!T