2013-10-14 83 views
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))); 

} 

回答

1

我認爲你正在混合在Android上使用Google地圖的新舊方法。

如果您使用新方式(v2,建議),則不必實例化LocationManager,然後使用該方法請求位置更新。

請查看這裏,在官方文件,如何做事的正確方法:https://developer.android.com/training/location/receive-location-updates.html

您只需執行LocationListener,當然,當你創建LocationRequest對象設置基於正確的參數您的需求。

如果你沒有使用API​​的V2版本,我建議你從https://developer.android.com/google/play-services/location.html開始。