2011-11-21 3 views
1

사용자의 위치에 대한 액세스를 직접 요청할 수있는 방법이 있습니까 아니면 위치 액세스가 허용되면 알려주는 이벤트 리스너가 있습니까? Director 클래스를 사용하여 MapView 객체를 사용하는 것과 관련하여 문제가 발생했습니다. CoronaSDK에서 위치 액세스 확인

나는 그 안에지도보기 구성 요소와 보조 볼 수 있습니다. 디렉터 클래스가 해당 뷰로 전환하면 내 MapView 객체가 인스턴스화되고 사용자의 위치를 ​​가져 오려고 시도합니다. 내가 가지고있는 문제는 내 테스트 장치 (iPhone 4)에서 사용자의 위치에 액세스하려는 시도가 사용자에게 위치 액세스 권한을 부여하기 전에 발생한다는 것입니다. 따라서 화면을 떠나 나중에 다시 돌아올 때만 (인스턴스 생성 다시 Director 라이브러리에서) 해당 위치를 사용할 수 있습니다.

이것은 분명히 만족스럽지 않습니다.

도움이 필요하십니까?

답변

0

문제에 대한 해결책은 크게 코드에 따라 달라집니다. 도움을 받으려면 SO 질문에 관련 코드 비트를 반드시 포함시켜야합니다.

내가 추측하고 코드가지도보기 예제와 비슷 있다고 가정하겠습니다 :

http://developer.anscamobile.com/reference/index/nativenewmapview

을 그런 경우, 문제는 위치가 매우 늦게 검색되는 것입니다.

local function callMap() 
     -- Fetch the user's current location 
     -- Note: in XCode Simulator, the current location defaults to Apple headquarters in Cupertino, CA 
     local currentLocation = myMap:getUserLocation() 
     local currentLatitude = currentLocation.latitude 
     local currentLongitude = currentLocation.longitude 
     ... 

원하는 것은 이전에 실행 한 코드입니다. 응용 프로그램이 시작될 때 이상적입니다. 사용자는 "이 애플리케이션은 GPS에 대한 액세스를 원합니다"라는 메시지를 즉시 받게 될 것이므로 맵뷰를보기 전에 "승인"할 시간이 더 많을 것입니다.

캐시를 사용하면됩니다. 최신 알려진 위치를 어딘가에 저장하십시오 (설정에 따라 설정 파일 또는 데이터베이스). 연결이 끊어 지거나 아직 검색되지 않은 경우 맵에서 마지막으로 알려진 위치를 표시하십시오.

+0

분명히하기 위해 실제 문제는 위치를 얻으려고 시도하기 전에 사용자가 위치 액세스 권한을 부여했는지 여부를 판단 할 수있는 방법이 없다는 것입니다. 위치 정보 액세스 요청에 대한 사용자의 승인에 응답하는 데 사용할 수있는 이벤트, 콜백 또는 그 밖의 자연이 있는지 궁금합니다. –

+0

그런 식으로 보지 않습니다. GPS 액세스가 사용 중지 된 경우 위도와 경도로 무엇을 얻고 있습니까? – kikito

+0

또한 위치 이벤트의 'event.isError' 필드를 확인하십시오. 어쩌면 당신이 그것을 사용할 수 있습니다. http://developer.anscamobile.com/partner/mapview – kikito