代码之家  ›  专栏  ›  技术社区  ›  TMH

SupportMapFragment覆盖setOnMyLocationChangeListener

  •  1
  • TMH  · 技术社区  · 12 年前

    我正在尝试使用以下方法覆盖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 回复  |  直到 12 年前
        1
  •  1
  •   Robby Pond    12 年前

    之所以这么做,是因为您启用了“我的位置”图层。您可以通过禁用它

    map.setMyLocationEnabled(false);
    

    此外,不赞成以这种方式监听位置更改。有一个新的 Location api 最新版本的Google Play服务本应以更少的电池使用量提供相同的功能。

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