gpt4 book ai didi

objective-c - 重新定位 MKMapView 的 userLocationView?

转载 作者:行者123 更新时间:2023-11-29 04:32:32 25 4
gpt4 key购买 nike

我正在制作一个在森林中有一系列小径的应用程序。 GPS 会时不时地偏离几十米,因此我尝试编写一些代码,将 userLocationView“捕捉”到路径(用户可能所在的位置)。

我有一些代码可以扫描附近的踪迹,确定用户的可能位置,并获取它的 CLLocationCooperative2D。

现在我需要将该位置应用到 userLocationView。我以为这会起作用,但似乎不起作用:

userLocationAnnotation.coordinate = myDerivedCoordinate;

我意识到我可能可以创建自己的注释,但如果可能的话我想避免这种情况。

最佳答案

MapView 直接从 CLLocationManager 获取用户位置,并且没有记录的方法来拦截此交互。这样做比添加自己的注释需要更多工作,并且会导致应用程序拒绝。而且,重新定义系统提供的正确信息是没有意义的。这就是为什么 mapView.userLocation 是一个具有只读位置属性的 MKUserLocation

所以你必须创建自己的,大致:

  • 设置mapView.showsUserLocation = false;
  • 创建并启动位置管理器

    self.locationManager = [CLLocationManager 新]; self.locationManager.delegate = self; [self.locationManager startUpdatingLocation];

  • CLLocationManagerDelegatelocationManager:didUpdateToLocation:fromLocation: 添加/替换您自己的蓝点注释。

您可以使用 UIKit-Artwork-Extractor 获取蓝点图形(可能还有脉动的圆圈)。对于脉动效果,向 MKAnnotationView 添加一个具有不同帧的 UIImageView,或者取一个圆圈并使用 UIView animateWithDurationCGAffineTransformMakeScale 用于 view.transform 属性。

关于objective-c - 重新定位 MKMapView 的 userLocationView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11531408/

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