2010-02-03 27 views

risposta

1

No, ma se si ha la longitudine/latitudine, è abbastanza facile calcolare la distanza. È la distanza matematica tra quei punti, ovviamente. Non la distanza di guida o camminata effettiva che si basa su un percorso effettivo.

+0

Beh, purtroppo ho bisogno della distanza di guida. Non ho bisogno di visualizzarlo, basta prendere la distanza. – eemceebee

2

ne dite di usare il Core Location quadro:

  • (CLLocationDistance) getDistanceFrom: (CLLocation const *) posizione

Avrete bisogno la latitudine/longitudine per entrambi gli indirizzi.

Modifica: Obsoleto in iOS 3.2. Utilizzare invece il metodo distanceFromLocation :.

+0

Sì, potrebbero essere le soluzioni di riserva. Ma come ho detto prima vorrei avere la distanza di guida non solo la distanza tra 2 posizioni. La domanda rimane, c'è un modo per ottenere la posizione dal mapkit? Come inserisco un indirizzo e mi dà la posizione? – eemceebee

+0

Rivisitando questa domanda, non è esplicitamente dichiarato che si desidera la distanza di guida tra 2 indirizzi. Suggerirei di aggiornare la domanda. – Marco

+0

Aggiornato di conseguenza la domanda. – Marco

0

Nelle mie applicazioni ho utilizzato MKDirections per ottenere una distanza di guida (a piedi) tra due posizioni.

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); 
       } 
      } 

}]; 

se si dispone di posizione come un indirizzo, in modo da poter utilizzare il metodo di CLGeocoder, che vi darà la latitudine e la longitudine del tuo indirizzo

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

Se si confronta il risultato di guida a distanza utilizzando MKDirections con quello che usa Google Maps, vedrai che differiscono. Stavo cercando informazioni su questo argomento e ho trovato il seguente link http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/

Anche se Apple ha migliorato il servizio di mappe, concede comunque accuratezza a Google (IMO), almeno in una domanda riguardante la distanza di guida. Quindi, se la precisione non è molto importante nel tuo caso, quindi puoi seguire insieme ad Apple. Altrimenti suggerirei di controllare l'API di Google.

Problemi correlati