gpt4 book ai didi

swift - 如何在 Swift 中创建 MKCircle?

转载 作者:搜寻专家 更新时间:2023-10-30 22:28:34 25 4
gpt4 key购买 nike

我一直在四处寻找关于如何使用 Swift 2.0 为 MapView 制作 MKCircle 注释的良好解释,但我似乎无法找到充分的解释。有人可以发布一些示例代码来展示如何创建 MKCircle 注释吗?这是我用来制作 map 和获取坐标的代码。

let address = self.location

let geocoder = CLGeocoder()

geocoder.geocodeAddressString(address, completionHandler: {(placemarks, error) -> Void in
if((error) != nil){
print("Error", error)
}
if let placemark = placemarks?.first {
let coordinates:CLLocationCoordinate2D = placemark.location!.coordinate

self.locationCoordinates = coordinates
let span = MKCoordinateSpanMake(0.005, 0.005)
let region = MKCoordinateRegion(center: self.locationCoordinates, span: span)
self.CIMap.setRegion(region, animated: true)

let annotation = MKPointAnnotation()
annotation.coordinate = self.locationCoordinates
self.CIMap.addAnnotation(annotation)

self.CIMap.layer.cornerRadius = 10.0

self.CIMap.addOverlay(MKCircle(centerCoordinate: self.locationCoordinates, radius: 1000))
}
})

最佳答案

首先您需要将 MKMapViewDelegate 添加到类定义中。

 mapView.delegate = self 

在您的 viewDidLoad 中将 map 委托(delegate)设置为自己。

设置注解

mapView.addOverlay(MKCircle(centerCoordinate: CLLocationCoordinate2D, radius: CLLocationDistance))

现在应该在 mapViews 委托(delegate)中调用 mapView rendererForOverlay,然后你就可以绘制它了

func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
if let overlay = overlay as? MKCircle {
let circleRenderer = MKCircleRenderer(circle: overlay)
circleRenderer.fillColor = UIColor.blueColor()
return circleRenderer
}
}

此外,您需要导入 MapKit 才能全部编译

关于swift - 如何在 Swift 中创建 MKCircle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33293075/

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