在 iPhone 地图的路线中添加注释

发布于 2024-12-05 05:57:53 字数 127 浏览 1 评论 0原文

我想向地图上两个位置之间的路线添加注释。该注释就像 Google 地图中的复选标记。我使用 MKPolyline 绘制了路线。现在要添加几个注释我该怎么办?

我是新手。所以请不要介意我问这个问题。

提前致谢。

I want to add annotations to a route between 2 locations on the map. That annotation would be like checkmark in Google Map. I have drawn route using MKPolyline. Now to add several annotations what should I do?

Am a newbie. so please dont mind me asking this question.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮华 2024-12-12 05:57:53

因为我认为这是一个很好的问题,而且很多人都遇到过这个问题,所以我给出了答案。
我们需要实现 MKAnnotationView 的委托方法。

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation 

此外,我们还需要一个包含路由中所有注释的数组,如下所示。

    self.mRouteArray = [mDirections routeArray];
    NSArray *_routeWayPoints1 = [[mRouteArray objectAtIndex:0] wayPoints];
    NSArray *mPlacetitles = [[mRouteArray objectAtIndex:0] mPlaceTitle];

    for(int idx = 0; idx < [_routeWayPoints1 count]; idx++)
    {
        mBetweenAnnotation = [[SBRouteAnnotation alloc] initWithCoordinate:[[_routeWayPoints1 objectAtIndex:idx]coordinate]
                                                                  title:[mPlacetitles objectAtIndex:idx]
                                                         annotationType:SBRouteAnnotationTypeWayPoint];

        [self.mAnnotations addObject:mBetweenAnnotation];
        [mBetweenAnnotation release];
    }

这将加载路由之间的所有注释。
愿这会帮助其他人..
快乐编码...

As, I think that this was a good question and many have faced this, I am giving its answer.
We need to implement this delegate method of MKAnnotationView..

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation 

Also we need to have an array of all the annotation in the route like this..

    self.mRouteArray = [mDirections routeArray];
    NSArray *_routeWayPoints1 = [[mRouteArray objectAtIndex:0] wayPoints];
    NSArray *mPlacetitles = [[mRouteArray objectAtIndex:0] mPlaceTitle];

    for(int idx = 0; idx < [_routeWayPoints1 count]; idx++)
    {
        mBetweenAnnotation = [[SBRouteAnnotation alloc] initWithCoordinate:[[_routeWayPoints1 objectAtIndex:idx]coordinate]
                                                                  title:[mPlacetitles objectAtIndex:idx]
                                                         annotationType:SBRouteAnnotationTypeWayPoint];

        [self.mAnnotations addObject:mBetweenAnnotation];
        [mBetweenAnnotation release];
    }

this will load all the annotations between the route.
May this will help others..
Happy Coding...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文