gpt4 book ai didi

ios - viewForAnnotation 没有移动 userLocation

转载 作者:行者123 更新时间:2023-11-29 00:47:19 26 4
gpt4 key购买 nike

我已经实现了 - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {方法来更改 userLocation Annotation 的默认位置。在我使用的这个方法中:

if (annotation==(mapView.userLocation)) {
MKAnnotationView *myAnotation = [[MKAnnotationView alloc] init];

myAnotation.image = self.userPointImage.image;
myAnotation.centerOffset = CGPointMake(0, 250);

return myAnotation;
}
else
{
return nil;
}

这成功地将默认的 userLocation 注释移动到中心底部。但由于我也使用标题,所以当移动我的手机时,它仍然从中心旋转 map 。

- (void)locationManager:(CLLocationManager *) manager didUpdateHeading:(CLHeading *) newHeading {

[self.mapView setUserTrackingMode:MKUserTrackingModeFollowWithHeading animated:true];
}

但是下面是userLocation注解。那么该怎么做呢?

更新

我发现this问题并尝试应用它。但是当我使用标题时,它会使应用程序崩溃。在我的 didUpdateUserLocation我添加的方法 [self moveCenterByOffset:CGPointMake(0, 200) from:userLocation.coordinate];这个方法如下:

- (CLLocationCoordinate2D)moveCenterByOffset:(CGPoint)offset from:(CLLocationCoordinate2D)coordinate
{
CGPoint point = [self.mapView convertCoordinate:coordinate toPointToView:self.mapView];
point.x += offset.x;
point.y += offset.y;
CLLocationCoordinate2D center = [self.mapView convertPoint:point toCoordinateFromView:self.mapView];
return center;
}

然后在我的didUpdateUserLocation方法我将其更新为:MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([self moveCenterByOffset:CGPointMake(0, -250) from:userLocation.coordinate], 800.0f, 200.0f);[mapView setRegion:region animated:NO];因为我使用标题,所以动画设置为 NO .但现在当我运行代码时,它开始在中心点和新点之间抖动。

最佳答案

MKCoordinateRegion 区域 = mapClinicsView.region;

设置'region.center'它将帮助您导航 map 中心位置

确保'region.center'和标注中心经纬度相同

关于ios - viewForAnnotation 没有移动 userLocation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38481559/

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