Frage

Ich muss den Fahrabstand zwischen 2 Standorten finden. Ich muss die Anweisungen in einer Karte nicht anzeigen, sondern nur die Entfernung berechnen, die ich in meiner Anwendung verwenden muss.

Erlaubt Mapkit dies? Gibt es eine Alternative, die verwendet werden kann?

Ich bin in der Lage, die Geo-Codierung mit CloudMade voranzutreiben, aber es scheint keine Option zu geben, die Fahrdistanz zu erhalten.

Schätzen Sie jede Hilfe.

War es hilfreich?

Lösung

CloudMade bietet auch Antriebsanweisungen. Wenn Sie nur an der Entfernung interessiert sind, ignorieren Sie einfach die Anweisungen.

Ein API-Call sieht so aus:

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

und der JSON enthält

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

Quelle

Andere Tipps

Ist das in Google -Gruppen gefunden, ist das hilfreich?

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

In meinen Anwendungen habe ich MKDirections verwendet, um den Fahren zwischen zwei Standort zu erreichen (Gehen).

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

 }];

Wenn Sie Ihren Standort als Adresse haben, können Sie die Methode des ClgeoCoders verwenden, wodurch Sie Breitengrad und Länge Ihrer Adresse erhalten

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

Wenn Sie ein Antriebsentfernungsergebnis mit MKDirections mit der mit Google Maps vergleichen, werden Sie feststellen, dass sie sich unterscheiden. Ich habe in dieser Angelegenheit gesucht und auf den folgenden Link gestoßen http://www.macworld.co.uk/review/reference-education/apple-maps-vs-google-maps-3464377/

Obwohl Apple ihren Kartenservice verbessert hat, geben sie Google (IMO) immer noch in Genauigkeit zu, zumindest in einer Frage zur Fahrstrecke. Wenn also in Ihrem Fall Genauigkeit nicht sehr wichtig ist, können Sie Apple miteinander folgen. Andernfalls würde ich empfehlen, Google API zu überprüfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top