Как я могу получить направление движения (N, NE, E, SE, S, SW, W, NW) на iPhone, используя только информацию от GPS (долгота и широта)?
Я не хочу пользоваться компасом, потому что он не всегда точен.
Как я могу получить направление движения (N, NE, E, SE, S, SW, W, NW) на iPhone, используя только информацию от GPS (долгота и широта)?
Я не хочу пользоваться компасом, потому что он не всегда точен.
Просто возьмите текущие координаты в два разных момента и вычтите их. Вот некоторый псевдокод (извините, я не говорю на Objective-C):
start <- get current position
wait some time
end <- get current position
direction = end - start
Это даст вам вектор, который указывает в текущем направлении. Чтобы получить угол, вы можете использовать точечный продукт вектора.
product <- start.lat * end.lat + start.lng * end.lng
start_length <- sqrt(start.lat^2 + start.lng^2)
end_length <- sqrt(end.lat^2 + end.lng^2)
angle <- arccos(product/(start_length * end_length))
Учитывая угол, вы можете легко получить кардинальное направление. Просто посмотрите, какой из них ближе.