gpt4 book ai didi

ios - 检测用户在 map 上点击的路线

转载 作者:行者123 更新时间:2023-12-01 16:28:50 24 4
gpt4 key购买 nike

我有一个项目,我在 map 上显示当前位置和另一个位置之间的方向(MapKit)

一切正常。我可以得到替代路线。

request.requestsAlternateRoutes = YES;

但是当用户点击一条路线时,我会显示一个带有距离和其他信息的注释。我想将这条特殊路线传递给另一个 View 。我怎样才能做到这一点?就像 iOS 上的原始 map 应用程序一样。我可以获得不同的路线,然后点击路线以获取方向详细信息。

我用谷歌搜索了很多,最接近的例子是:
[directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {        
// Now handle the result
if (error) {
NSLog(@"There was an error getting your directions");
return;
}

_currentRoute = [response.routes firstObject];

但是 _currentRoute是第一个。我想让用户选择 currentRoute在 map 上点击。

最佳答案

我想到了。不是那么优雅,但它可以完成工作。

  • 制作一个 ivar - NSMutableArray *routeArray在头文件中。

  • 我的标题中还有一个 MKMapView socket 。
  • 在我的 getDirections 方法中,我用计数器标记了 MKMapView 实例,并将路由对象添加到 routeArray。

  • 当制作注释的委托(delegate)运行时,我可以用 mapView.tag 标记 anntotationView。
    - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
  • 当我点击注释时:
  • (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control

  • 我将 view.tag 传递给我的 segue。
        NSLog(@"Counter tag: %ld", (long)view.tag);
    [self performSegueWithIdentifier:@"detaljer" sender:view];
  • 然后我可以将我选择的路线传递给我的新 View 。

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
    WeatherTableViewController *routeController =
    [继续目的地 View Controller ];
    长行 = [发件人标签];

    MKRoute *route = routeArray[row];
    routeController.selectedRoute = 路由;
    }
  • 关于ios - 检测用户在 map 上点击的路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33431482/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com