Devo trovare il tempo di guida stimato da un luogo a un altro. Ho latitudini e longitudini per entrambi i posti ma non ho idea di come farlo. C'è qualche API per questo. aiuto grazie.Android - Come ottenere un tempo di guida stimato da un luogo a un altro?
risposta
sì, si ottiene il tempo e il valore della distanza nonché molti dettagli di direzione simili nella modalità di guida, camminata ecc. tutto ciò che hai dal servizio Google direzione api
controllare il nostro presente collega
Per info esatto + 1 –
grazie per la risposta, ma questo è per javascript ho bisogno per l'applicazione del telefono android .. –
è possibile utilizzare questo servizio in Android anche solo è necessario chiamare il servizio utilizzando il pacchetto http – Pratik
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);
EDIT:
//For example spead is 10 meters per minute.
int speedIs10MetersPerMinute = 10;
float estimatedDriveTimeInMinutes = distanceInMeters/speedIs10MetersPerMinute;
Si veda anche questo, se sopra non lavori per tu:
penso che questo restituirà km non tempo –
Questo restituirà la distanza in metri e questo è il motivo per cui ho scritto "Ora hai la distanzaInMeters così puoi calcolare il tempo di guida stimato. " –
puoi dirmi come posso avere tempo? –
È inoltre possibile utilizzare http://maps.google.com/maps?saddr= {start_address} & DADDR = {destination_address}
darà in direzione dettaglio insieme con la distanza e il tempo tra due posizioni
http://maps.google.com/maps?saddr=79.7189,72.3414&daddr=66.45,74.6333&ie=UTF8&0&om=0&output=kml
grazie per la vostra risposta, ma non ho bisogno dell'URL per navigare tra due luoghi. Ho bisogno del tempo di viaggio stimato nella variabile locale ... –
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();
Questo non tiene conto delle strade. Ad esempio, mi direbbe che potrei guidare dalla California alle Hawaii. – Feathercrown
Come già described by Praktik, puoi utilizzare l'API delle indicazioni stradali di Google per stimare il tempo necessario per passare da un luogo all'altro tenendo conto delle indicazioni stradali e del traffico. Tuttavia, non è necessario utilizzare l'API Web e creare il proprio wrapper, ma utilizzare lo Java implementation fornito da Google stesso, disponibile tramite il repository Maven/gradle.
Add the google-maps-services to your app's build.gradle:
dependencies { compile 'com.google.maps:google-maps-services:0.2.5' }
eseguire la richiesta ed estrarre la durata:
// - 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; }
Per semplicità, questo codice non gestisce le eccezioni, i casi di errore (ad esempio non percorso trovato -> routes.length == 0), né si preoccupa di più di uno route o leg. Origine e destinazione possono essere impostate anche direttamente come LatLng
istanze (vedi DirectionsApiRequest#origin(LatLng)
e DirectionsApiRequest#destination(LatLng)
Ulteriori approfondimenti:.? android.jlelse.eu - Google Maps Directions API
perché non utilizzare le mappe di Google – Jeff
Ho solo bisogno di non orario previsto per le direzioni ... –