-1

我正在开发基于位置的应用程序,我需要MKAnnotation根据更改位置移动 Pin。这意味着当用户从一个地方改变位置到另一个地方时,注释应该被移动。

这是我的注释代码:

-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation
{
    static NSString *defaultPinID = @"com.invasivecode.pin";
    pinView = (MKPinAnnotationView *)[mV dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
    if (pinView == nil)
    {
        pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID];
        pinView.enabled = YES;
        pinView.pinColor = MKPinAnnotationColorGreen;
        pinView.canShowCallout = YES;
    }
    return pinView;
}

它将销钉放在当前位置,但是当我使用设备移动时,位置发生了变化,而且MKPolyline我也有工具,但销钉留在了那里。

看到这张图片: 在此处输入图像描述

您可以在此看到绿色引脚是起点,另一侧是当前点。所以引脚应该在我想要的当前点上。

我已经搜索并尝试了一些堆栈解决方案,但无法解决我的问题。

任何建议和帮助将不胜感激。

提前致谢。

4

1 回答 1

0

我从@AnnaKarenina 的建议中得到了解决方案,非常感谢。

我所做的是使我的 MKPinAnnotationView 全局 & 然后:

pinView.annotation.coordinate = newLocation.coordinate;

我将这一行添加到didUpdateToLocation允许注释每次获取新位置的方法中。

再次感谢。

于 2013-07-01T13:35:10.937 回答