2017-01-24 1 views
0

Я создаю приложение для Android, которое показывает расстояние и продолжительность двух точек маркера на карте. В OnCreate() я написал следующий код:Как рассчитать расстояние между двумя точками маркера в android

В MapsActivity.java

private List<LatLng> getDirectionPolylines(List<RouteObject> routes){ 
     List<LatLng> directionList = new ArrayList<LatLng>(); 
     for(RouteObject route : routes){ 
      List<LegsObject> legs = route.getLegs(); 
      for(LegsObject leg : legs){ 
       String routeDistance = leg.getDistance().getText(); 
       String routeDuration = leg.getDuration().getText(); 
       setRouteDistanceAndDuration(routeDistance, routeDuration); 
       List<StepsObject> steps = leg.getSteps(); 
       for(StepsObject step : steps){ 
        PolylineObject polyline = step.getPolyline(); 
        String points = polyline.getPoints(); 
        List<LatLng> singlePolyline = decodePoly(points); 
        for (LatLng direction : singlePolyline){ 
         directionList.add(direction); 
        } 
       } 
      } 
     } 
     return directionList; 
    } 

Я не ясно, как рассчитать продолжительность расстояние & в «GetText» в коде выше. Я не мог видеть некоторые API, такие как Distancebetween(), который использует LtnLtg в качестве ссылок. Просьба предложить рассчитать значения расстояния и продолжительности.

+0

Но у вас есть список объектов LatLng, некоторые строки дальше по вашему коду ... – Ridcully

+0

Да, как использовать его для получения этих двух точек? – garima

ответ

0

Вы должны получить LatLngs этих маркеров (Вы можете сделать это с помощью

marker.getPosition().getLatitude() 

и

marker.getPosition().getLongitude() 

Найти расстояние между этими двумя LatLngs. Есть несколько способов сделать это. Вы можете использовать

Location.distanceBetween(
    startLatitude, 
    startLongitude, 
    endLatitude, 
    endLongitude, 
    results); 

или

Location loc1 = new Location(""); 
loc1.setLatitude(lat1); 
loc1.setLongitude(lon1); 
Location loc2 = new Location(""); 
loc2.setLatitude(lat2); 
loc2.setLongitude(lon2); 
float distanceInMeters = loc1.distanceTo(loc2); 
+0

Мой вопрос в том, как получить эти широты от маркеров. Я понимаю, что могу использовать эти API. – garima

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

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