El cálculo de la distancia de conducción en el iPhone

votos
3

Necesito encontrar la distancia de conducción entre 2 lugares. No necesito para mostrar las direcciones en un mapa, sólo hay que calcular la distancia, lo que necesito para usar en mi solicitud.

No MapKit permite esto? ¿Hay una alternativa que se puede utilizar?

Soy capaz de subir al ataque geo-codificación usando CloudMade, pero no parece ser una opción para obtener distancia en coche.

Agradecería cualquier ayuda.

Publicado el 21/01/2010 a las 00:31
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
3

CloudMade también ofrece las direcciones de conducción. Si sólo está interesado en la distancia, simplemente ignorar las instrucciones.

Una API-Call se ve así:

http://navigation.cloudmade.com/YOUR-API-KEY-GOES-HERE/api/0.3/47.25976,9.58423,47.26117,9.59882/car/shortest.js

y la JSON incluye

....
route_summary: {
total_distance: Distance in meters,...

Fuente

Respondida el 21/01/2010 a las 00:39
fuente por usuario

votos
2

Encontramos esto en Google Groups, que es útil?

http://groups.google.com/group/google-maps-api/msg/4dc2fad4f74e3314?pli=1

Respondida el 05/05/2010 a las 04:40
fuente por usuario

votos
0

En mis aplicaciones Solía ​​MKDirections para obtener rutas (a pie) de distancia entre dos ubicación.

CLLocationCoordinate2D startCoordinates = YOUR_START_COORDINATES;
CLLocationCoordinate2D endCoordinates = YOUR_END_COORDINATES;

MKPlacemark *startPoint = [[MKPlacemark alloc] initWithCoordinate:startCoordinates];
MKPlacemark *endPoint = [[MKPlacemark alloc] initWithCoordinate:endCoordinates];

MKMapItem *startItem = [[MKMapItem alloc] initWithPlacemark:startPoint];
MKMapItem *endItem = [[MKMapItem alloc] initWithPlacemark:endPoint];

MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];

request.source = startItem;
request.destination = endItem;
request.transportType = MKDirectionsTransportTypeAutomobile; //here you can choose a transport type you need

MKDirections *direction = [[MKDirections alloc] initWithRequest:request];

[direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse * _Nullable response, NSError * _Nullable error) {

          if (response) {
              for (MKRoute *route in response.routes) {
                  NSLog(@"Distance : %f", route.distance);
              }
          }

 }];

Si usted tiene lugar como una dirección, por lo que puede utilizar el método de CLGeocoder, que le dará la latitud y longitud de su dirección

- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;

Si se compara el resultado distancia de conducción utilizando MKDirections con el uso de Google Maps, se verá que se diferencian. Estaba buscando en relación con este asunto y me encontré con el siguiente enlace http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/

A pesar de que Apple ha sido la mejora de su servicio de mapas, que todavía reconocen en la precisión de Google (OMI), al menos en una pregunta con respecto a la distancia de conducción. Así que si la precisión no es muy importante en su caso, de modo que pueda seguir adelante con Apple. De lo contrario, recomendaría comprobar la API de Google.

Respondida el 29/07/2017 a las 08:20
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more