Угол между 2 GPS координатами
-
25-09-2019 - |
Вопрос
Я работаю в другом приложении для iPhone, который использует AR, и я создаю свои собственные рамки, но у меня проблемы с попыткой получения угла второй координаты относительно текущего позиции устройства, кто может знать хороший ресурс, который мог Помоги мне с этим?
Заранее спасибо!
Решение
Если две точки достаточно близко друг к другу, и вдали от полюсов, вы можете использовать простые триг:
float dy = lat2 - lat1;
float dx = cosf(M_PI/180*lat1)*(long2 - long1);
float angle = atan2f(dy, dx);
Редактировать: я забыл упомянуть, что latN
а также longN
- и поэтому dx
а также dy
- Может быть в градусах или радианах, пока вы не смешиваете единицы. angle
, Однако, однако, всегда вернется в радиане. Конечно, вы можете вернуть его к градусам, если вы умножаетесь на 180 / M_PI.
Другие советы
Вот версия Android этого кода
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;
}
Не связан с StackOverflow