Domanda

sto lavorando in un altro iPhone app che usi AR, e sto creando il mio quadro, ma sto avendo problemi cercando di ottenere l'angolo di un secondo di coordinate sulla posizione del dispositivo corrente, qualcuno sa un buon risorsa che mi potrebbe aiutare con questo?

Grazie in anticipo!

È stato utile?

Soluzione

Se i due punti sono abbastanza vicini, e ben lontano dai pali, è possibile utilizzare alcuni semplici Trig:

float dy = lat2 - lat1;
float dx = cosf(M_PI/180*lat1)*(long2 - long1);
float angle = atan2f(dy, dx);

EDIT: Ho dimenticato di dire che latN e longN - e quindi dx e dy - può essere in gradi o radianti, a condizione che non mescolare unità. angle, tuttavia, sarà sempre tornare in radianti. Naturalmente, è possibile ottenere di nuovo a gradi, se si moltiplica per 180 / M_PI.

Altri suggerimenti

Questa è la versione Android di questo codice

import com.google.android.maps.GeoPoint;
    public double calculateAngle(GeoPoint startPoint, GeoPoint endPoint) {
        double lat1 = startPoint.getLatitudeE6() / 1E6;
        double lat2 = endPoint.getLatitudeE6() / 1E6;
        double long2 = startPoint.getLongitudeE6() / 1E6;
        double long1 = endPoint.getLongitudeE6() / 1E6;
        double dy = lat2 - lat1;
        double dx = Math.cos(Math.PI / 180 * lat1) * (long2 - long1);
        double angle = Math.atan2(dy, dx);
        return angle;
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top