Anmerkung entlang der route in MapKit

Ich bin mit MapKit zur Anzeige von Richtungen zwischen den Standorten, und ich bin auf der Suche nach einem Weg, um eine Anmerkung hinzuzufügen, dass funktioniert ähnlich wie die route-annotation in der Apple Karten-app, wo die Anmerkungen zeigen, sind jede route Reisezeit (wie im Bild unten gezeigt). Ich bin bereits dabei die Anweisungen richtig, das problem bei der hand ist, so berechnen Sie ein paar von Koordinaten entlang der route. Das ist, wo zum löschen der Anmerkung.

Dachte ich darüber irgendwie mit der MKDirection (enthält vollständige Anweisungen, Schritt für Schritt), aber ich bin nicht sicher, wie ich generieren würde ein paar von Koordinaten, die sind irgendwo in der Mitte der Strecke.

Habe ich nicht in der Lage gewesen, um jede Art von Unterstützung für dieses in den MapKit-Dokumentation. Irgendwelche Ideen?

Anmerkung entlang der route in MapKit

Dies ist, wie Generiere ich die route und zeigt es an.

- (void)generateRoute {
    MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
    request.source = [MKMapItem mapItemForCurrentLocation];
    request.destination = self.destinationMapItem;
    MKDirections *directions = [[MKDirections alloc] initWithRequest:request];

    [directions calculateDirectionsWithCompletionHandler:
     ^(MKDirectionsResponse *response, NSError *error) {
         if (error) {
             //Handle Error
         } else {
             [self showRoute:response];
         }
     }];
}

- (void)showRoute:(MKDirectionsResponse *)response {
    [self.mapView removeOverlays:self.mapView.overlays];
    for (MKRoute *route in response.routes)
    {
        [self.mapView addOverlay:route.polyline level:MKOverlayLevelAboveRoads];
    }
    [self fitRegionToRoute];
}

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id < MKOverlay >)overlay
{
    MKPolylineRenderer *renderer = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
    renderer.strokeColor = [UIColor blueColor];
    renderer.alpha = 0.7;
    renderer.lineWidth = 4.0;

    return renderer;
}
  • Wollen Sie zum zeichnen der route, die Sie wollen, um die drop-annotation in der Mitte der route
  • Ich will zeichnen Sie die route auch (was ich bereits Tue).
  • Ich verstehe nicht, warum tun Sie müssen zum hinzufügen einer Beschriftung zu einem overlay. Wissen Sie, dass die overlays sind auch Anmerkungen?
  • Hier an der Unterseite. developer.apple.com/library/ios/documentation/UserExperience/...
  • Gut, es gibt zwei separate overlays, wo man eine Anmerkung. Da ist zunächst die Blaue route-overlay. Dann gibt es auch die weißen und blauen Anmerkungen verweisen auf die Strecken. Wo auf der Karte würden Sie vorschlagen, Sie zu addieren?
  • Diese Frage ist ähnlich zu diese one. Obwohl die Lösung, die Sie hier verwendet haben, ist vernünftig, es gibt Fälle, wo die Anmerkung erscheint sehr "off-center" (die Sie möglicherweise nicht besorgt sein).
  • Danke für den link @Anna. Ich eigentlich gar nicht darum, dass viel über die annotation zu schlagen, genau in der Mitte, so dass die entwickelte Lösung mit Hilfe von iPrabu funktioniert großartig für mich.
  • Sie Sparen my day 🙂 :*
  • großartige Arbeit Mann. Sie können auch teilen Sie Ihre fitRegionToRoute Methode?
  • Wie die Anzeige, dass "1h 14 min" - text auf Zeile... kann mir jemand bitte helfen?

Schreibe einen Kommentar