Calcul de la distance de conduite en iPhone

voix
3

Je dois trouver la distance de conduite entre 2 emplacements. Je ne ai pas besoin d'afficher les directions dans une carte, juste besoin de calculer la distance, que je dois utiliser dans mon application.

MapKit ne permet cela? Y at-il une alternative qui peut être utilisé?

Je suis en mesure d'obtenir géocodage avant en utilisant CloudMade, mais il ne semble pas être une option pour obtenir la distance de conduite.

Apprécierait toute aide.

Créé 21/01/2010 à 00:31
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
3

CloudMade propose également des itinéraires. Si vous ne souhaitez que la distance, ignorez simplement les instructions.

Une API-Call ressemble à ceci:

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

et le JSON comprend

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

La source

Créé 21/01/2010 à 00:39
source utilisateur

voix
2

Trouvé ceci dans Google Groupes, est-ce utile?

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

Créé 05/05/2010 à 04:40
source utilisateur

voix
0

Dans mes applications je MKDirections pour obtenir la conduite (marche) distance entre deux emplacement.

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 vous avez-vous lieu comme une adresse, vous pouvez donc utiliser la méthode de CLGeocoder, qui vous donnera la latitude et la longitude de votre adresse

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

Si vous comparez un résultat à distance de conduite en utilisant MKDirections avec une aide de Google Maps, vous verrez qu'ils diffèrent. Je cherchais à ce sujet et suis tombé sur le lien suivant http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/

Même si Apple a été l'amélioration de leur service de carte, ils concèdent encore la précision de Google (OMI), au moins dans une question concernant la distance de conduite. Donc, si la précision est pas très important dans votre cas, vous pouvez suivre avec Apple. Sinon, je recommande de vérifier l'API Google.

Créé 29/07/2017 à 11:20
source utilisateur

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