我想要做的是有一个按钮,用户可以点击它来保存他们当前的位置。然后,在地图上,引脚将出现在保存位置所在的位置。我该怎么做呢?我已经搜索了一些示例代码,但我找不到任何工作或者在Swift中。
我拥有它,因此用户也可以随时查看他们所处的位置。贝娄是我目前的代码。
import UIKit
import CoreLocation
import MapKit
class ViewController: UIViewController, CLLocationManagerDelegate {
var locationManager = CLLocationManager()
@IBOutlet var Map: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func locationManager(manager: CLLocationManager!, didUpdateToLocation newLocation: CLLocation!, fromLocation oldLocation: CLLocation!) {
println("Updating Location \(newLocation.coordinate.latitude) , \(newLocation.coordinate.longitude) ")
let span = MKCoordinateSpanMake(0.0009, 0.0009)
let region = MKCoordinateRegion(center: newLocation.coordinate, span: span)
Map.setRegion(region, animated: false)
}
}
我将在此代码中添加什么来实现我在第一段中描述的目标?
答案 0 :(得分:1)
好问题!
尝试在A B C D E F G ...
UniqueID NameAdj Season SeasonPts Pos PosRank_RB PosRank_QB ...
1 Corey Dillon 1997 198.8 RB
2 Jerry Butler 1979 108.7 WR
3 Earl Campbell 1978 227.8 RB
4 Bo Jackson 1987 105.0 RB
发生时添加存储=COUNTIFS($c:$c,$c2,$e:$e,$e2,$d:$d,">"&$d2)+COUNTIFS($c$2:$c2,$c2,$e$2:$e2,$e2,$d$2:$d2,$d2)
的数组。然后,您可以使用此示例代码设置引脚作为示例:
newLocation.coordinate
但是只需将IBAction
设置为存储在数组中的值。
答案 1 :(得分:1)
试试这样:
findUserLocationAndDropPin()
:userLocationCoordinates
CLLocationCoordinate2DMake()
; pinForUserLocation
; MKPointAnnotation()
pinForUserLocation.coordinate
等于
userLocationCoordinates
; mapView
和addAnnotation
; mapView
至showAnnotations
。这段代码是我的意思,应该这样做,至少在iOS 8.4之前:
@IBAction func findUserLocationAndDropPin(sender: UIButton) {
var userLocationCoordinates = CLLocationCoordinate2DMake(locationManager.location.coordinate.latitude, locationManager.location.coordinate.longitude)
var pinForUserLocation = MKPointAnnotation()
pinForUserLocation.coordinate = userLocationCoordinates
mapView.addAnnotation(pinForUserLocation)
mapView.showAnnotations([pinForUserLocation], animated: true)
}
答案 2 :(得分:0)
好的,首先你要获得用户的许可:
您可以使用更简单的方法:
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) { }
在其中,设置:
var userLocation : CLLocation = locations[0] as! CLLocation
现在使用CLLocationCoordinate2D
和userLocation.latitude
.longitude
使用MKPointAnnotation()
创建注释,并将annotation.coordinate
设置为上面的CLLocationCoordinate2D
。
如果需要,设置.title
map.addAnnotation(annotation)
这实际上会在每次更新用户位置时添加一个引脚 - 因此您可能需要考虑删除以前的引脚。此外,如果您每半秒钟左右获得一次更新,那么效果不是很好,所以请考虑将mapView设置为每次更新时显示区域,而不是一个别针。
希望这有帮助!