【问题标题】:Map keeps coming back to my location even after i clicked on a marker即使我点击了一个标记,地图也会一直回到我的位置
【发布时间】:2015-11-10 08:07:14
【问题描述】:

假设我在位置 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));

        }
    });

【问题讨论】:

    标签: android google-maps maps


    【解决方案1】:

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

    我了解您需要地图以您的位置为中心,仅在首次加载地图时。在这种情况下,您可以在第一次使用 map.setOnMyLocationChangeListener(null); 调用时从映射中删除 OnMyLocationChangeListener

    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 以获取示例代码或位置开发人员指南。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      • 2014-08-10
      • 1970-01-01
      相关资源
      最近更新 更多