2010-02-03 8 views

Respuesta

1

No, pero si tiene la longitud/latitud, entonces es bastante fácil calcular la distancia. Es la distancia matemática entre esos puntos, por supuesto. No es la distancia real de conducción o a pie que se basa en una ruta real.

+0

Bueno, lamentablemente necesito la distancia de conducción. No necesito mostrarlo, solo obtener la distancia. – eemceebee

2

Cómo sobre el uso del marco Core Location:

  • (CLLocationDistance) getDistanceFrom: (CLLocation const *) ubicación

Tendrá la latitud/longitudes de las dos direcciones.

Editar: Obsoleto en iOS 3.2. Use el método distanceFromLocation: en su lugar.

+0

Sí, esas podrían ser las soluciones de respaldo. Pero como dije antes, me gustaría tener la distancia de manejo no solo la distancia entre 2 ubicaciones. La pregunta sigue siendo, ¿hay alguna forma de obtener la ubicación del juego de mapas? ¿Como ingresé una dirección y me da la ubicación? – eemceebee

+0

Revisando esta pregunta, no se indica explícitamente que desee la distancia de conducción entre 2 direcciones. Sugeriría actualizar la pregunta. – Marco

+0

Actualizó la pregunta en consecuencia. – Marco

0

En mis aplicaciones usé MKDirections para obtener la distancia de conducción (caminar) 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 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 de

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

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

Aunque Apple ha estado mejorando su servicio de mapas, todavía conceden precisión a Google (IMO), al menos en una pregunta sobre la distancia de conducción. Por lo tanto, si la precisión no es muy importante en su caso, puede seguirla junto con Apple. De lo contrario, recomendaría verificar la API de Google.

Cuestiones relacionadas