0

我的最后一个已知位置没有更新,但googlemap.setMyLocationEnable(true)我的位置正在更新。任何人都可以帮忙吗?这是我的代码:

private void setUpMap() {

    if(googlemap == null) {

        googlemap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();

        if(googlemap != null) {         
            googlemap.setMyLocationEnabled(true);

            LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);

            String provider = lm.getBestProvider(new Criteria(), true);

            if (provider == null){
                onProviderDisabled(provider);
            }

            lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
            Location loc = lm.getLastKnownLocation(provider);

            if (loc != null) {
                onLocationChanged(loc);
            }

            googlemap.setOnMapLongClickListener(onLongClickMapSettings());
        }
    }
}

private OnMapLongClickListener onLongClickMapSettings() {
    // TODO Auto-generated method stub
    return new OnMapLongClickListener() {

        @Override
        public void onMapLongClick(LatLng arg0) {
            // TODO Auto-generated method stub
            Log.i(arg0.toString(), "User long clicked");
        }
    };
}

@Override
public void onLocationChanged(Location location) {
    // TODO Auto-generated method stub
    LatLng latlng = new LatLng(location.getLatitude(), location.getLongitude());

    googlemap.moveCamera(CameraUpdateFactory.newLatLng(latlng));
    googlemap.animateCamera(CameraUpdateFactory.zoomTo(15));

    Marker ME = googlemap.addMarker(new MarkerOptions()
    .position(latlng)
    .title("Current Location(You)")
    .snippet("Current")
    .icon(BitmapDescriptorFactory.fromResource(R.drawable.user_marker)));

}
4

1 回答 1

1

我认为您正在混合在 Android 上使用 Google 地图的新旧方式。

如果您使用新方法(v2,推荐),您不必实例化 LocationManager 然后请求使用它进行位置更新。

请在官方文档中查看如何以正确的方式做事:https ://developer.android.com/training/location/receive-location-updates.html

您只需要实现LocationListener,当然,当您创建LocationRequest对象时,根据您的需要设置正确的参数。

如果您不使用适用于 Android 的 API 的 v2 版本,我建议您从https://developer.android.com/google/play-services/location.html开始这样做。

于 2013-10-14T13:10:01.683 回答