SupportMapFragment覆盖setOnMyLocationChangeListener

时间:2013-09-18 12:57:30

标签: android supportmapfragment

我正在尝试使用此

覆盖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进行动画制作之前,它会自动缩放到用户位置并添加蓝点。无论如何我可以禁用它吗?

1 个答案:

答案 0 :(得分:1)

这样做是因为您启用了“我的位置”图层。你可以通过

禁用它
map.setMyLocationEnabled(false);

也不推荐以这种方式监听位置更改。有一个新的Location api,其中包含最新版本的Google Play服务,可以提供相同的功能,减少电池使用量。

https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap#setMyLocationEnabled%28boolean%29