场景:
在地图页面,根据不同的场景动态控制是否显示定位小蓝点。
问题:
Android 高德地图 动态控制显示定位小蓝点
解决方案:
我们发现高德地图提供了响应的api来控制是否显示定位小蓝点。但是按照提供的方法设置完成之后,并不能实现实时动态控制是否显示小蓝点的效果。
是否显示定位蓝点
控制是否显示定位蓝点
Java
//方法自5.1.0版本后支持
MyLocationStyle showMyLocation(boolean visible)//设置是否显示定位小蓝点,用于满足只想使用定位,不想使用定位小蓝点的场景,设置false以后图面
经过一系列尝试,发现设置完显示效果后,需要重新进行一次定位操作,设置才会生效。
/**
* 设置定位蓝点显示
*/
public void setLocationStyleShow() {
try {
if (mAMap != null) {
mAMap.getMyLocationStyle().showMyLocation(true);
//连续定位、蓝点不会移动到地图中心点,定位点依照设备方向旋转,并且蓝点会跟随设备移动。
mAMap.getMyLocationStyle().myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);
TagUtil.i("地图定位蓝点:显示");
//进行一次定位,设置的效果才会生效
if (mMapUtil != null) {
mMapUtil.startLocation();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 设置定位蓝点隐藏
*/
public void setLocationStyleHide() {
try {
if (mAMap != null) {
mAMap.getMyLocationStyle().showMyLocation(false);
TagUtil.i("地图定位蓝点:隐藏");
//进行一次定位,设置的效果才会生效
if (mMapUtil != null) {
mMapUtil.startLocation();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}