我正在尝试使用此方法覆盖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/

10-11 22:31
查看更多