2016-08-10 2 views
0

내 앱에서 나침반을 구현하려고 시도했으며이 코드를 예제로 사용했습니다 : http://www.techrepublic.com/article/pro-tip-create-your-own-magnetic-compass-using-androids-internal-sensors/. 그러나 Google지도 API 또는 어쩌면 존재하지 않는 다른 API에서 전화 방향을 얻는 방법이 있는지 궁금합니다. 나는 Google을 찾았지만 아무 것도 발견하지 못했습니다. 고맙습니다.Google지도 API에서 전화 방향을 얻는 방법은 무엇입니까?

답변

0

간단한 방향 확인 (세로 방향과 가로 방향)은 충분하지 않습니다. 화면의 회전을 "자연스러운"방향에서 확인하고 그에 따라 나침반 헤딩 계산을 조정해야합니다.

((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation() 

은 참조 : 당신이 나침반에게 어떤 종류의 보기를 구현하거나 전화 방향에 일반 데이터를 얻기 위해 시도하는 경우에 귀하의 질문에서 Display.getRotation()

0

, 그것은 완전히 명확하지 않았다 .

Android docs에 따르면, 자기 값을 결정하는 데 사용할 수있는 값은 TYPE_MAGNETIC_FIELD입니다. 페이지를 아래로 스크롤하면 사용되지 않는 TYPE_ORIENTATION을 비롯하여 방향을 설정하는 데 유용한 다른 변수가 표시됩니다. 방향을 처리하는 새로운 방법

float[] getOrientation (float[] R, 
       float[] values) 

입니다 그리고 경우에 당신은 위의 자기장에 사용하는 기능은

GeomagneticField (float gdLatitudeDeg, 
       float gdLongitudeDeg, 
       float altitudeMeters, 
       long timeMillis) 

되고 문서가 here를 찾을 수 있습니다 찾을 수 없습니다. 초 정밀하고 유용한 총 추측 항법 및 방위 데이터를 원한다면 토끼 구멍이 quaternions 일 필요가 있습니다. 만약 당신이 그 길로 가면 Unity Game Engine의 문서를 추천합니다. 수학에 반드시 들어가야 할 필요없이 쿼터니언의 결과와 의미를 잘 설명해줍니다.

+0

휴대 전화의 방향에 대한 데이터가 필요합니다. 나는 자기장 센서를 이미 구현했지만 어떤 필터도 아직 구현하지 않았다. 그래서 나 자신을 모두 쓰지 않고 높은 정밀도로 나침반을 구현하는 데 필요한 모든 것을 패키지로 제공 할 API가 이미 있는지 궁금하다. – leonz

+1

내가 알고있는 API가 없습니다. 그런 API가 여러분을 위해 유스 케이스를 돌볼 것입니다. 사용자가 기기 방향을 어떻게 변경하는지에 관계없이 제목을 유지하려면 답변에 명시된대로 구체적으로 순환 게재를 확인하고 직접 계산을 적용해야합니다. –