【问题标题】:problems with location manager in maps api v2 androidmaps api v2 android中位置管理器的问题
【发布时间】:2013-03-21 01:52:48
【问题描述】:

我正在开发一个 android 应用程序,它在地图中显示用户的当前位置。

几个小时后,我发现了错误,locationManager 没有实际定位。

我将代码相对于 locationManager:

mapa = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.mapaTapas)).getMap();

String serviceString = Context.LOCATION_SERVICE;
LocationManager locationManager = (LocationManager)getSystemService (serviceString);
String proovedor1 = LocationManager.GPS_PROVIDER;
locationManager.getLastKnownLocation(proovedor1);
String proovedor2 = LocationManager.NETWORK_PROVIDER;
locationManager.getLastKnownLocation(proovedor2);

locationManager.requestLocationUpdates(proovedor1, 5000, 5, new LocationListener()
{
@Override
public void onStatusChanged(String arg0, int arg1,Bundle arg2) { }

@Override
public void onProviderEnabled(String arg0) {}

@Override
public void onProviderDisabled(String arg0) {}

@Override
public void onLocationChanged(Location Location)
   {
       location=Location;
   }
});

locationManager.requestLocationUpdates(proovedor2, 5000, 5, new LocationListener()
{
@Override
public void onStatusChanged(String arg0, int arg1,Bundle arg2) { }

@Override
public void onProviderEnabled(String arg0) {}

@Override
public void onProviderDisabled(String arg0) {}

@Override
public void onLocationChanged(Location Location)
{
    location=Location;
    }
});

location = locationManager.getLastKnownLocation(towers);

    if(location != null){

        glat = location.getLatitude();
        glon = location.getLongitude();

        Log.i("location", "latitud: "+glat);
        Log.i("location", "latitud: "+glon);

}

cp = new CameraPosition.Builder()
        .target(new LatLng(glat, glon))
        .zoom(15)
        .build();     
    mapa.animateCamera(CameraUpdateFactory.newCameraPosition(cp));

我需要将位置的当前值保存在 glat 和 glon 中,如果可以实现一些方法来自动刷新它

【问题讨论】:

    标签: android locationmanager android-maps-v2 currentlocation


    【解决方案1】:

    由于OnMyLocationChangeListener 接口为introduced,因此无需手动向LocationManager 请求位置更新。

    您只需要启用 my-location 层 (map.setMyLocationEnabled(true)),设置侦听器 (map.setOnMyLocationChangeListener(this)) 并对在相应回调 (通过实现该接口提供)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      相关资源
      最近更新 更多