Как показывают местоположение пользователя с голубой точкой в другое место MapKit с?



Я новичок в swift 3 & Xcode 8, и это мой первый раз, чтобы задать вопрос здесь. Я хочу установить несколько контактов в Mapkit, а также одновременно добавить местоположение пользователя в одном и том же Mapkit. Кроме того, я надеялся, что центр этого набора карт-это конкретное местоположение, а не местоположение пользователя. Однако я столкнулся с проблемой.



Я мог бы установить эти контакты в моем Mapkit успешно, но я не мог показать местоположение пользователя в том же Mapkit. Если я попытаюсь установить местоположение пользователя в качестве центр этого Mapkit, я мог бы показать местоположение пользователя успешно. Мои коды были показаны ниже.



import UIKit
import MapKit
import CoreLocation

class MapVC: UIViewController, CLLocationManagerDelegate {

@IBOutlet weak var MapView: MKMapView!

let manager = CLLocationManager()

func createSpanAndAnnotation() {
let FirstSpan: MKCoordinateSpan = MKCoordinateSpanMake(0.008, 0.008)
let originalLocation:CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: 24.942653, longitude: 121.368598)
let EdittedRegion:MKCoordinateRegion = MKCoordinateRegion(center: originalLocation, span: FirstSpan)
MapView.setRegion(EdittedRegion, animated: true)

let TemporaryGarbageCanLatitude = showData().garbageCanLatitudeArray
let TemporaryGarbageCanLongtitude = showData().garbageCanLontitudeArray
let TemporaryGarbageCanDiscription = showData().garbageCanDiscription
// 'showdata' is another class to store my data of garbageCans in another file.

for i in 0...TemporaryGarbageCanLatitude.count-1 {
let garbageCanLocation : CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: TemporaryGarbageCanLatitude[i], longitude: TemporaryGarbageCanLongtitude[i])
let pin = PinAnnotation(title: "Free Garbage Can", subtitle: TemporaryGarbageCanDiscription[i], coordinate: garbageCanLocation)
MapView.addAnnotation(pin)
}
}

//-------------------------------------<Above code could work successfully>-------------------------------------
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

self.MapView.showsUserLocation = true
}

func locationManager2() {
manager.delegate = self
manager.desiredAccuracy = kCLLocationAccuracyBest
manager.requestWhenInUseAuthorization()
manager.startUpdatingLocation()
}
//--------------------------------<It seems that Above code could not work successfully>--------------------------------

override func viewDidLoad() {
super.viewDidLoad()
createSpanAndAnnotation()
locationManager2()
}
}


Я добавил ' CoreLocation.фреймворк "в фазах сборки, а также я добавил" конфиденциальность - расположение при использовании описание использования " в info.файл plist. Я также включил службы определения местоположения в настройках, когда запускал симулятор. Кроме того, я не жил в США, поэтому я даже пошел в "симулятор > отладка > местоположение > Пользовательское местоположение", чтобы изменить свое местоположение на то, где я сейчас нахожусь.



Тем не менее, я все еще не мог не показать местоположение пользователя успешно после того, как я закончил все вышеперечисленные вещи. Может ли кто-нибудь помочь мне решить эту проблему? Я был бы признателен, если бы кто-нибудь мог мне помочь, спасибо!

(мой снимок экрана моего Mapkit здесь, но я размыл на нем некоторую конфиденциальную информацию.)
снимок экрана симулятора

769   1  

1 ответ:

Я обнаружил, что неожиданно решил свою проблему, изменив свое пользовательское местоположение в симуляторе. Я жил в восточном полушарии, так что, похоже, долгота места, где я остановился, положительна. Однако первоначально я ввел свою долготу как отрицательное значение. Когда я изменил долготу на положительное значение, мое местоположение было успешно показано на карте.

Спасибо всем гениям, которые помогли мне решить мою проблему.

Comments

    Ничего не найдено.