1

Ниже приведен список пользователей, которые я использую, и метод, который его вызывает. Когда я запускаю это, карта постоянно масштабируется и исчезает. В настоящее время я вызываю это из onCreate в своей деятельности. Что я здесь делаю неправильно?У меня есть приложение для Android, которое я создаю, использующее Карты Google, и когда я пытаюсь получить текущее местоположение, карта приближается и исчезает.

private void showCurrentLocationOnMap(){ 
    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 
    LocationListener ll = new Mylocationlistener(); 
    boolean isGPS = lm.isProviderEnabled(LocationManager.GPS_PROVIDER); 

    if (!isGPS){ 
     Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE"); 
     intent.putExtra("enabled", true); 
     sendBroadcast(intent); 
    } 

    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll); 




} 


/** 
*Mylocationlistener class will give the current GPS location 
*with the help of Location Listener interface 
*/ 
private class Mylocationlistener implements LocationListener { 

    @Override 
    public void onLocationChanged(Location location) { 

     if (location != null) { 
      // ---Get current location latitude, longitude, altitude & speed --- 

      Log.d("LOCATION CHANGED", location.getLatitude() + ""); 
      Log.d("LOCATION CHANGED", location.getLongitude() + ""); 
      currentLocation = new LatLng(location.getLatitude(), location.getLongitude()); 
      HAMBURG = new LatLng(location.getLatitude(), location.getLongitude()); 
      //This only shows the initial marker 
        @SuppressWarnings("unused") 
     Marker hamburg = map.addMarker(new MarkerOptions().position(currentLocation).title("Current Location")); 
      // Move the camera instantly to hamburg with a zoom of 15. 
      map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15)); 
      // Zoom in, animating the camera. 
      map.animateCamera(CameraUpdateFactory.zoomTo(12), 2000, null);    


     } 
    } 
+0

Разве это не потому, что вы двигаетесь и анимируете разные уровни масштабирования? – Moesio

+0

Я не двигаюсь, хотя. – yams

+0

Ой, извините, я думал, что вы делаете это на map.moveCamera и map.animateCamera – Moesio

ответ

0

Я обнаружил, что каждые 0 секунд я просящих обновление местоположения в соответствии с методом requestLocationUpdates, просто опечатка с моей стороны. Как всегда, это было что-то маленькое, которое меня убивало. Таким образом, вместо:

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll); 

я должен был:

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 10, ll); 

с 10000, эквивалентной десяти секунд. После того, как я изменил это, я смог успешно запустить приложение, просто с обновлением обновлений.

 Смежные вопросы

  • Нет связанных вопросов^_^