Pregunta

Necesito encontrar la distancia de conducción entre 2 ubicaciones. No necesito mostrar las instrucciones en un mapa, solo necesito calcular la distancia, que necesito usar en mi aplicación.

¿Mapkit permite esto? ¿Hay una alternativa que se pueda usar?

Puedo avanzar en la codificación geográfica usando CloudMade, pero no parece haber una opción para obtener la distancia de conducción.

Agradecer cualquier ayuda.

¿Fue útil?

Solución

CloudMade también ofrece instrucciones de conducción. Si solo está interesado en la distancia, simplemente ignore las instrucciones.

Un API-Call se ve así:

http://navigation.cloudmade.com/your-api-key-goes-sere/api/0.3/47.25976,9.58423,47.26117,9.59882/car/shortest.js

Y el JSON incluye

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

Fuente

Otros consejos

Encontré esto en los grupos de Google, ¿es útil?

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

En mis aplicaciones utilicé MKDirections para conducir (caminar) distancia entre dos ubicaciones.

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 tiene su ubicación como dirección, por lo que puede usar el método de Clgeocoder, que le dará latitud y longitud de su dirección

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

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

Aunque Apple ha mejorado su servicio de mapa, aún admiten en precisión a Google (OMI), al menos en una pregunta sobre la distancia de conducción. Entonces, si la precisión no es muy importante en su caso, puede seguir junto a Apple. De lo contrario, recomendaría verificar la API de Google.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top