데이터베이스에 저장된 사용자 프로필에서 얻은 좌표로지도의 초기 위치를 설정하려고합니다. 사용자 위치라고 말합니다. 나는 GMSCameraPosition
을 viewDidLoad
라고 부르지 만 시뮬레이터가 현재 위치를 감지하고 내가 설정하려고 시도하는 위치가 아닌지도를 중앙에 위치시키는 것을 알아 챘다. userLocation
에 위치한지도가 잠깐 보였지만 즉시 현재 위치로 이동합니다.Swift에서 초기지도 위치를 설정하는 방법은 무엇입니까?
나는 심지어 stopUpdatingLocation
메서드를 호출하지만 성공하지는 않습니다.
stopUpdatingLocation
전화 위치를 한 번만 업데이트하면 중지 될 수 있습니까? 그것은 내가 브레이크 포인트를 사용하여 추적했을 때 내게 나타난 것입니다!
GMSCameraPosition
도 기본 좌표를 변경하거나 제공된 좌표 만 집중 시키나요?
다음은 코드입니다.
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.distanceFilter = 50
locationManager.requestWhenInUseAuthorization()
mapView.delegate = self
if userLocation != nil {
mapView.myLocationEnabled = false
locationManager.stopUpdatingLocation()
mapView.camera = GMSCameraPosition(target: selectedCoordinate!.coordinate, zoom: 15, bearing: 0, viewingAngle: 0)
}
}
extension MapViewController: CLLocationManagerDelegate {
func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == .AuthorizedWhenInUse {
locationManager.startUpdatingLocation()
mapView.myLocationEnabled = true
mapView.settings.myLocationButton = true
}
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if let location = locations.first {
mapView.camera = GMSCameraPosition(target: location.coordinate, zoom: 15, bearing: 0, viewingAngle: 0)
locationManager.stopUpdatingLocation()
}
}
}
extension MapViewController: GMSMapViewDelegate {
func mapView(mapView: GMSMapView, idleAtCameraPosition position: GMSCameraPosition) {
reverseGeocodeCoordinate(position.target)
}
}
감사
감사합니다. 나는 깃발을 사용하여 같은 것을 얻었지만 당신의 대답은 더 깨끗합니다. – ashishn
다른 문제가 있습니다. 무작위로 <+ 51.17889992, -1.82639994> 좌표를 엽니 다. CLLocationCoordinate2D (위도 : 51.17889991879489, 경도 : -1.8263999372720716) MapViewCoontroller - didUpdateLocations - 지역 선택 - idleAtCameraPosition - 위치 아래는 인쇄 문 출력 MapViewCoontroller있는 옵션 (<+ 51.17889992는 -1.82639994> MapViewCoontroller - didUpdateLocations - 위치 선택 : 선택 사항 (<+ 51.17889992, -1.82639994> – ashishn
아니요 + + 18.49655889, + 73.81614894> – ashishn