gpt4 book ai didi

ios - 检测用户是否退出 MKCircle | map 套件

转载 作者:行者123 更新时间:2023-11-28 12:12:36 28 4
gpt4 key购买 nike

我需要的东西(更简单的解释):

  1. [完成]获取用户位置并将其显示在 UIMapView 中
  2. [完成]在 UIMapView 中添加围绕用户的圆圈
  3. 检测用户是否离开该圈子

这是我的代码 1 和 2:

import UIKit 
import MapKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate, MKMapViewDelegate {

@IBOutlet weak var myMap: MKMapView!

let manager = CLLocationManager()
var addedCircle = false


func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

let location = locations[0]

let span: MKCoordinateSpan = MKCoordinateSpanMake(0.01, 0.01)
let myLocation: CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude,
location.coordinate.longitude)
let region: MKCoordinateRegion = MKCoordinateRegionMake(myLocation, span)

myMap.setRegion(region, animated: true)



self.myMap.showsUserLocation = true

if !addedCircle {
self.addRadiusCircle(location: location)
putted = true
}

}



func addRadiusCircle(location: CLLocation){
self.myMap.delegate = self
let circle = MKCircle(center: location.coordinate, radius: 100)
self.myMap.add(circle)
}

func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if overlay is MKCircle {
let circle = MKCircleRenderer(overlay: overlay)
circle.strokeColor = UIColor.red
circle.fillColor = UIColor(red: 255, green: 0, blue: 0, alpha: 0.1)
circle.lineWidth = 1
return circle
} else {
return MKPolylineRenderer()
}
}


override func viewDidLoad() {
super.viewDidLoad()

manager.delegate = self
manager.desiredAccuracy = kCLLocationAccuracyBest
manager.requestWhenInUseAuthorization()
manager.startUpdatingLocation()

}


}

这是这段代码的结果: enter image description here

那个圆圈不会随着用户移动,我想知道如何检测用户是否走出那个红色圆圈,在此先感谢您的回答

最佳答案

您可以使用CLLocationdistance(from:) 方法来确定用户当前位置与圆心之间的距离。

let location = CLLocation()
let circleCenter = CLLocation()

if location.distance(from: circleCenter) > circleRadius {
// User is outside of circle.
}

关于ios - 检测用户是否退出 MKCircle | map 套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47971224/

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