2012-06-04 4 views
6

Я пробовал много, но не могу сделать qibla compass для своего приложения. Я не могу понять, что я делаю. Мне нужен компас qibla, который отлично работает. 0-paragQibla Compass в Android

+1

Вы должны быть намного более конкретными. – Hassan

+0

@ Hassan yes Hassan –

+0

Вы пытаетесь запрограммировать один? С чем вы столкнулись? Что вы пробовали? – CaseyB

ответ

7

Вы знаете местоположение Mecca и знаете текущее местонахождение пользователей (в случаях если у вас есть GPS или другой провайдер услуг). Подшипник дается этой формулой, широты и долготы должны быть в радианах.

float lonDelta = (lon2 - lon1); 
float y = Math.sin(lonDelta) * Math.cos(lat2); 
float x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(lonDelta); 
float brng = Math.atan2(y, x).toDeg(); 

brng - направление в градусах.

Вы также можете изучить метод Location.bearingTo().

http://developer.android.com/reference/android/location/Location.html#bearingTo(android.location.Location)

Ас-Салам-алейкум

+0

Я получаю erro: 'Не могу вызвать toDeg() для примитивного типа double' – Salim

+2

Решил его' float brng = (float) Math.toDegrees (Math.atan2 (y, x)); ' – Salim