gpt4 book ai didi

ios - MkCircle with MapKit,与当前用户位置同步

转载 作者:行者123 更新时间:2023-11-29 12:55:58 26 4
gpt4 key购买 nike

我在一个使用 MapKit 的项目中工作,我想更新当前用户位置中心的圆圈位置。我可以通过实现这些方法来做到这一点。问题是用户位置在更改其坐标时会动画化,并且不会每次都调用方法 DidUpdateUserLocation。

我想做的是用这些方法更快地平滑地改变位置,并像用户位置(蓝点)变化一样为圆圈制作动画(调度不会更快地完成任何这些任务)

-(void)viewDidLoad
{
[super viewDidLoad];
[self UpdateCirclePosition];
}

当用户位置改变时执行此方法。

- (void)mapView:(MKMapView *)mv didUpdateUserLocation:(MKUserLocation *)userLocation1
{
[self UpdateCirclePosition];
}

这个方法是给圆设置新的坐标

-(void)UpdateCirclePosition
{
//Removing past layouts from MapView
[self.mapView removeOverlays: [self.mapView overlays]];

//Set the circle in the middle of the current user location
MKCircle *circle = [MKCircle circleWithCenterCoordinate:locationManager.location.coordinate radius:10];
[self.mapView addOverlay:circle];
}

这是overlay变化时的方法

- (MKOverlayView *)mapView:(MKMapView *)map viewForOverlay:(id <MKOverlay>)overlay
{
MKCircleView *circleView = [[MKCircleView alloc] initWithOverlay:overlay];
circleView.strokeColor = [UIColor redColor];
if (something)
{
circleView.fillColor = [[UIColor greenColor] colorWithAlphaComponent:0.2];
}
else
{
circleView.fillColor = [[UIColor redColor] colorWithAlphaComponent:0.2];
}
circleView.lineWidth = 0.5;
return circleView;
}

最佳答案

didUpdateUserLocation 获取最新位置,但随后您忽略它并调用 UpdateCirclePosition。您应该将坐标从 userLocation1 传递到 UpdateCirclePosition 并使用它们重新定位您的圆圈。

关于ios - MkCircle with MapKit,与当前用户位置同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21097945/

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