У меня есть текущее местоположение пользователя и конкретное место. Я пытаюсь дистанцироваться в милях. моя дистанция в милях кажется неправильной, я получил 1,1 мили в своем приложении, затем я проверил мили на карте Google. Я получил 3,4 мили на карте Google. Вот мой код, я не уверен, почему мой код не является точным. Пожалуйста помоги.Мое расстояние в расчетах миль кажется неправильным в swift 3
var locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
map.delegate = self
map.userTrackingMode = MKUserTrackingMode.follow
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
// set location
let latitude: CLLocationDegrees = 32.5850
let longitude: CLLocationDegrees = -85.4904
let latDelta: CLLocationDegrees = 0.05
let lonDelta: CLLocationDegrees = 0.05
let span: MKCoordinateSpan = MKCoordinateSpan(latitudeDelta: latDelta, longitudeDelta: lonDelta)
let coordinates = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
let region = MKCoordinateRegion(center: coordinates, span: span)
map.setRegion(region, animated: true)
// add annotation
let annotation = MKPointAnnotation()
annotation.title = "1100 S College St"
annotation.coordinate = coordinates
map.addAnnotation(annotation)
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let userLocation: CLLocation = locations[0]
let latitude = userLocation.coordinate.latitude
let longitude = userLocation.coordinate.longitude
let location1 = CLLocation(latitude: 32.5850, longitude: -85.4904) // set location
let location2 = CLLocation(latitude: latitude, longitude: longitude) // user's current location
let distanceInMeters : CLLocationDistance = location1.distance(from: location2) // distance in meters
let distanceInMiles = distanceInMeters/1609.344 // distance in miles
let roundUp = String(format:"%.1f", distanceInMiles) // round up
distanceLabel.text = "\(roundUp) mi"
}
Привет, я просто проверил мое расстояние в метрах и километре и сравнил с Google Maps. У меня разное число. Я не уверен, где я ошибся, когда получаю дистанцию? – QQ10
Проверьте расстояние с точными координатами для 'location1' и' location2' на 'iOS' и' Google Maps' – mhergon
Я только что проверил координаты location1 и location2. Я думаю, что координаты, отображаемые на карте google, не так точны. Потому что когда я копирую точно координаты и применяю к моему приложению. Я получил 3,1 мили в своем приложении. (Тот же номер, который я получил на карте Google). Но местоположение1 (значок location1) и location2 (местоположение пользователя) не отображается правильно в моем приложении. Есть ли хороший способ проверить, есть ли у меня правильная координата? – QQ10