Как я могу получить стартовую позицию / местоположение с LatLng. У меня есть текущее положение / местоположение - PullRequest
0 голосов
/ 06 октября 2019

Я пытаюсь получить расстояние в метрах от прошлого startposition / местоположения до движущегося настоящего currentposition / местоположения.

У меня есть currentposition, который прекрасно работает. Но я не могу получить startposition, который должен быть исправлен и сохранен, пока я запускаю приложение с кнопкой запуска.

На самом деле, это то же самое LatLng для startposition / location и currentposition / location.

Я пытался установить маркер в начале. Но я не знаю, как можно использовать его вместо startposition для измерения расстояния.

 mLocationCallback = new LocationCallback() {
    @Override
    public void onLocationResult(LocationResult locationResult) {
    super.onLocationResult(locationResult);

   if (flag == 1) {
    mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(
    new LatLng(locationResult.getLastLocation().
    getLatitude()
    , locationResult.getLastLocation().
     getLongitude())));
     mGoogleMap.moveCamera(CameraUpdateFactory.
    newLatLngZoom(new LatLng(locationResult.
    getLastLocation().getLatitude()
   , locationResult.getLastLocation().
    getLongitude()), 19));
   mGpsCurrentPosition = new LatLng(locationResult.
   getLastLocation().getLatitude()
   , locationResult.getLastLocation().
   getLongitude());
 mGpsStartPosition = new LatLng(locationResult.
  getLastLocation().getLatitude()
 , locationResult.getLastLocation().
   getLongitude());
    }
   updateGps();
   }
private void getLaufDistanz() {
    Location laufStartPunkt = new Location("Start");
    laufStartPunkt.setLatitude(mGpsStartPosition.latitude);
    laufStartPunkt.setLongitude(mGpsCurrentPosition.longitude);
    Location laufEndPunkt = new Location("Ende");
    laufEndPunkt.setLatitude(mGpsCurrentPosition.latitude);
    laufEndPunkt.setLongitude(mGpsCurrentPosition.longitude);
    float laufDistanzInMeter = laufStartPunkt.distanceTo
            (laufEndPunkt)/1000;
    mTvMinProKm.setText("" + String.valueOf(laufDistanzInMeter));
}

Мне нужен способ установить startposition с помощью LatLng для измерения расстояния в метрах.

1 Ответ

0 голосов
/ 07 октября 2019

Попробуйте формулу Haversine (см. Ссылку ниже). Это даст вам большое расстояние по кругу между двумя точками, принимая сферическую землю.

https://en.wikipedia.org/wiki/Haversine_formula

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...