2012-06-04 7 views
6

He intentado mucho pero no puedo hacer la brújula qibla para mi aplicación. No puedo entender lo que hago. Necesito una brújula qibla que me funcione perfecto. Gracias paragQibla Compass en Android

+1

Tienes que ser mucho más específico. – Hassan

+0

@Hassan yes Hassan –

+0

¿Estás intentando programar uno? ¿Con qué estás teniendo problemas? ¿Qué has intentado? – CaseyB

Respuesta

7

Conoce la ubicación de La Meca y conoce la ubicación actual de los usuarios (si tiene GPS u otro proveedor de ubicación). La orientación viene dada por esta fórmula, las latitudes y longitudes deben ser en radianes.

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 es la dirección en grados.

También podría explorar el método Location.bearingTo().

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

As-Salam-Alaikum

+0

Estoy obteniendo erro: 'No se puede invocar aDeg() en el tipo primitivo double' – Salim

+2

Lo resolvió' float brng = (float) Math.toDegrees (Math.atan2 (y, x)); ' – Salim

Cuestiones relacionadas