사용자 계정 및 기본지도보기에 대해 내 앱에서 Firebase와 Google지도를 사용하고 있습니다. 내 앱에서 사용자의 위치에서 시작한 다음지도를 이동할 수있게하려면 몇 가지 문제가 있습니다.Google지도 사용자 위치에서 시작
을 통해 사용자가 인증되면. Firebase, 나는 사용자 위치를 얻으려고했지만 일반적으로 응용 프로그램에 대해 위치 서비스가 활성화되어 있어도
nil
을 반환합니다. 여기 내 코드가 있습니다 :if let mylocation = mapView.myLocation { print("User's location: \(mylocation)") } else { print("User's location is unknown") }
이것은 내
viewDidLoad
기능입니다. 내 Info.plist 파일의 개인 정보 보호 정책뿐만 아니라 위치 사용 권한을 요청하는 코드가 있습니다.지도가로드되어 사용자 위치가 발견되면 사용자 위치에서보기 중심에 놓으려고합니다. 그러나 시간이 지나면 사용자의 위치를 알 수 없으므로지도가 다른 위치에서로드되고 사용자의 위치로 업데이트되지 않습니다.
그래서 여기 내 질문
지도를로드 할 수있는 방법이 있습니까의 IT가 애플 리케이션의 전체 사용을 거기에 붙어하지 않고는 사용자의 위치로 업데이트해야? 내가 원하는 것은 기본적으로 사용자의 위치에서 시작하는 Google지도 복제품이며지도를 사용자 위치로 일관되게 업데이트하지 않고도지도와 상호 작용할 수 있습니다. 그렇지 않은 경우지도를로드하기 전에 위치를 찾을 때까지 기다리는 방법이 있습니까? GCD (그랜드 센트럴 디스패치)를 사용해 보았지만 작동하지 않았습니다. 내 최고의 옵션이 아닌 것처럼 느껴집니다.지도를 표시하기 전에 위치가로드 될 때까지 기다리는 것입니다.지도에서 일어날 수있는 문제가 많기 때문입니다. 두 옵션 중 어느 것도 옵션이 아니면 어떻게 하시겠습니까? 감사!
그래서 앱을 시작할 때 위치 만 필요하면 보안 문구는 어떻게 변경됩니까? 완전히 새로운 것이 필요합니까? 또한, 내 deinit에서'myLocationFound' 옵저버를 제거해야합니까? –
'CLLocationManager'로 위치를 얻을 수도 있습니다. 첫 번째 위치 업데이트를 얻으면 관리자를 중지하고 해당 'CLLocation' 객체를 사용합니다. 첫 제안을하고 싶다면'mapView.isMyLocationEnabled = false' 위치 감지를 비활성화 할 수 있습니다. –
여전히 사용자 위치를 표시하고 싶습니다. 나의 이전 코멘트에서 나는 당신의 대답의 마지막 부분을 언급하고 있었다. 어떻게 그렇게 할 것인가. myLocationFound 플래그를 추가했지만 사용자가 이동할 때마다지도 카메라를 업데이트하지 않는 방법을 모르겠습니다. –