我正在尝试使用此方法覆盖SupportMapFragment上的setOnMyLocationChangeListener
map.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
@Override
public void onMyLocationChange(Location location) {
LatLng you = new LatLng(location.getLatitude(), location.getLongitude());
float distanceTo = location.distanceTo(venueLocation);
String miles = metersToMiles(distanceTo);
dist.setText(miles + " miles away");
LatLngBounds.Builder builder = new LatLngBounds.Builder();
map.clear();
map.addMarker(new MarkerOptions()
.position(venue)
.title(centerName)
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.fu_map_marker)));
map.addMarker(new MarkerOptions()
.title("You are here")
.position(you));
builder.include(venue);
builder.include(you);
LatLngBounds bounds = builder.build();
map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 75));
}
});
但是,在使用LatLngBounds进行动画制作动画之前,哪种工作方式会自动缩放到用户位置并添加一个蓝点。无论如何,我可以禁用此功能吗?
最佳答案
这样做是因为您启用了“我的位置”图层。您可以通过禁用它
map.setMyLocationEnabled(false);
同时不建议使用位置更改监听。有一个带有最新版本Google Play服务的新Location api,它可以在减少电池使用量的情况下提供相同的功能。
https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap#setMyLocationEnabled%28boolean%29
关于android - 覆盖setOnMyLocationChangeListener的SupportMapFragment,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18872902/