Ich versuche, Geo-Targeting-Funktionalität mit CLRegion zu implementieren. Aber wenn ich diese App starte, taucht der MKCircle nicht auf, kann mir jemand sagen, welcher Teil falsch ist?Erstellen eines Geo-Targeting in Swift
func setupData(){
if CLLocationManager.isMonitoringAvailableForClass(CLCircularRegion.self){
let tripspotRegion = [
tripSpot(title: "一中商圈", coordinate: CLLocationCoordinate2DMake(24.149062, 120.684891), regionRadius: 300.0, location: "台中一中", type: "food"),
tripSpot(title: "逢甲夜市", coordinate: CLLocationCoordinate2DMake(24.180407, 120.645086), regionRadius: 300.0, location:"台中逢甲", type: "food"),
tripSpot(title: "東海商圈", coordinate: CLLocationCoordinate2DMake(24.181143, 120.593158), regionRadius: 300.0, location: "東海商圈", type: "food")]
//set annotation
let coordinate = CLLocationCoordinate2D()
let regionRadius = 300.0
let title = "title"
let region = CLCircularRegion(center: CLLocationCoordinate2D(latitude: coordinate.latitude,longitude: coordinate.longitude), radius: regionRadius, identifier: title)
//set annotation
let tripSpotAnnotation = MKPointAnnotation()
tripSpotAnnotation.coordinate = coordinate
tripSpotAnnotation.title = "\(title)"
mapView.addAnnotations(tripspotRegion)
locationManager.startMonitoringForRegion(region)
// draw a circle
let circle = MKCircle(centerCoordinate: coordinate, radius: regionRadius)
mapView.addOverlay(circle)
}
// check if can monitor region
else{
print("system can't track regions")
}
}
Haben Sie implementiert 'mapView (mapView: MKMapView, rendererForOverlay Overlay: MKOverlay)'? Außerdem haben Sie keinen Längen- oder Breitengrad für 'coordinate' angegeben. – Paulw11
ja ich habe mapView implementiert (mapView: MKMapView, rendererForOverlay overlay: MKOverlay), aber annotation zeige gerade so wie soll ich jetzt einen Längen- und Breitengrad für Koordinaten angeben? –
Sie haben in Ihrem Array 'tripspotRegion' drei Koordinaten definiert. Vielleicht könntest du eines davon als Zentrum benutzen? Sonst wird Ihre Region bei 0,0 – Paulw11