2011-12-07 12 views

Respuesta

10

sí se obtiene el valor de tiempo y distancia, así como muchos detalles de dirección similares en la conducción, el modo de caminar, etc. todo lo que tienes desde el servicio Google dirección api

Lee nuestra Estos links

http://code.google.com/apis/maps/documentation/directions/

+0

para obtener información exacta + 1 –

+0

gracias por su respuesta, pero eso es por javascript que necesito para la aplicación del teléfono Android .. –

+1

puede usar este servicio en android también solo necesita llamar al servicio usando el paquete http – Pratik

10
Location location1 = new Location(""); 
    location1.setLatitude(lat); 
    location1.setLongitude(long); 

    Location location2 = new Location(""); 
    location2.setLatitude(lat); 
    location2.setLongitude(long); 

    float distanceInMeters = location1.distanceTo(location2); 

EDITAR:

//For example spead is 10 meters per minute. 
    int speedIs10MetersPerMinute = 10; 
    float estimatedDriveTimeInMinutes = distanceInMeters/speedIs10MetersPerMinute; 

Por favor, vea también esto, si anteriormente no las obras de usted:

Calculate distance between two points in google maps V3

+0

Creo que esto devolverá el km no el tiempo –

+0

Esto devolverá la distancia en metros y es por eso que escribí "Ahora tienes los distanceInMeters por lo usted puede calcular el tiempo estimado de conducción ". –

+0

¿me puede decir cómo puedo obtener tiempo? –

-2
Calculate Distance:- 
    float distance; 
      Location locationA=new Location("A"); 
      locationA.setLatitude(lat); 
      locationA.setLongitude(lng); 

      Location locationB = new Location("B"); 
      locationB.setLatitude(lat); 
      locationB.setLongitude(lng); 

      distance = locationA.distanceTo(locationB)/1000; 

      LatLng From = new LatLng(lat,lng); 
      LatLng To = new LatLng(lat,lng); 

      Calculate Time:- 
      int speedIs1KmMinute = 100; 
      float estimatedDriveTimeInMinutes = distance/speedIs1KmMinute; 
       Toast.makeText(this,String.valueOf(distance+ 
"Km"),Toast.LENGTH_SHORT).show(); 
      Toast.makeText(this,String.valueOf(estimatedDriveTimeInMinutes+" Time"),Toast.LENGTH_SHORT).show(); 
+0

Esto no tiene en cuenta las carreteras. Por ejemplo, me diría que puedo conducir desde California a Hawai. – Feathercrown

0

Como ya ocurrió en described by Praktik, puede usar la API de direcciones de Google para estimar el tiempo necesario para ir de un lugar a otro teniendo en cuenta las direcciones y el tráfico. Pero no tiene que usar la API web y crear su propio contenedor, en su lugar use el Java implementation provisto por Google, que está disponible a través del repositorio Maven/gradle.

  1. Add the google-maps-services to your app's build.gradle:

    dependencies { 
        compile 'com.google.maps:google-maps-services:0.2.5' 
    } 
    
  2. Realizar la solicitud y extraer la duración:

    // - Put your api key (https://developers.google.com/maps/documentation/directions/get-api-key) here: 
    private static final String API_KEY = "AZ.." 
    
    /** 
    Use Google's directions api to calculate the estimated time needed to 
    drive from origin to destination by car. 
    
    @param origin The address/coordinates of the origin (see {@link DirectionsApiRequest#origin(String)} for more information on how to format the input) 
    @param destination The address/coordinates of the destination (see {@link DirectionsApiRequest#destination(String)} for more information on how to format the input) 
    
    @return The estimated time needed to travel human-friendly formatted 
    */ 
    public String getDurationForRoute(String origin, String destination) 
        // - We need a context to access the API 
        GeoApiContext geoApiContext = new GeoApiContext.Builder() 
         .apiKey(apiKey) 
         .build(); 
    
        // - Perform the actual request 
        DirectionsResult directionsResult = DirectionsApi.newRequest(geoApiContext) 
          .mode(TravelMode.DRIVING) 
          .origin(origin) 
          .destination(destination) 
          .await(); 
    
        // - Parse the result 
        DirectionsRoute route = directionsResult.routes[0]; 
        DirectionsLeg leg = route.legs[0]; 
        Duration duration = leg.duration; 
        return duration.humanReadable; 
    } 
    

Por simplicidad, este código no maneja excepciones, casos de error (por ejemplo, no ruta encontrada -> routes.length == 0), ni se molesta con más de un route o leg. Origen y destino también pueden definirse directamente como LatLng casos (véase DirectionsApiRequest#origin(LatLng) y DirectionsApiRequest#destination(LatLng)

Más información:.? android.jlelse.eu - Google Maps Directions API

Cuestiones relacionadas