即使我点击了标记

时间:2015-11-10 08:07:14

标签: android google-maps maps

让我说我在x位置。我的地图加载完美,并缩放到我的位置。现在我点击我在另一个位置创建的标记,让我们说位置y。相机会发生变化,并按照应有的位置转到y位置。 问题是,它在那里停留大约2-3秒然后回到我的位置(位置x)。 我怎样才能让它留在我想要的地方,直到我改回来? 这是我的代码的一部分,我认为我需要改变。 如果您需要更多信息,更多代码,请随时询问。

public void setUpMap() {
    map.setMyLocationEnabled(true);
    map.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
        @Override
        public void onMyLocationChange(Location location) {
            LatLng l = new LatLng(location.getLatitude(), location.getLongitude());
            map.animateCamera(CameraUpdateFactory.newLatLngZoom(l, 12));

        }
    });

1 个答案:

答案 0 :(得分:0)

每次地图收到位置更新时,相机都会更新。要避免这种情况,只需删除OnMyLocationChangeListener

据我所知,您需要在首次加载地图时将地图置于您所在位置的中心位置。在这种情况下,您可以在第一次使用OnMyLocationChangeListener调用时从地图中删除map.setOnMyLocationChangeListener(null);

map.setMyLocationEnabled(true);
map.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
    @Override
    public void onMyLocationChange(Location location) {
        LatLng l = new LatLng(location.getLatitude(), location.getLongitude());
        map.animateCamera(CameraUpdateFactory.newLatLngZoom(l, 12));

        map.setOnMyLocationChangeListener(null); // Remove the listener
    }
});

另外,根据the documentation of GoogleMap.OnMyLocationChangeListener:

考虑到这一点
  

不推荐使用此界面。

     

请改用com.google.android.gms.location.FusedLocationProviderApi。 FusedLocationProviderApi提供改进的定位和功率使用,并由“我的位置”蓝点使用。请参阅示例应用程序文件夹中的MyLocationDemoActivity,例如示例代码或Location Developer Guide。