Может ли iPhone определить, обращены ли вы лицом на север, юг, восток или запад?

Может ли iPhone определить, смотрите ли вы на север, юг, восток или запад?

Придется ли вам держать его в руках?

Nosredna 25.07.2009 02:24

Истинный или притягательный? Есть существенная разница. Около 12,5 градусов, где я сейчас нахожусь.

user34411 29.07.2009 03:08

Всем привет. Я столкнулся с той же проблемой: мне нужно вычислить истинный север на основе положения пользователя. Это приложение должно быть доступно на iphone 3G. Я прочитал ответы ниже, но не очень понимаю. вы когда-нибудь находили решение?

clide313 29.06.2010 13:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
3
5 217
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Я не уверен, но вот несколько вариантов:

Соберите две или более точки данных за 3-10 секунд. Нанесите на карту с помощью GPS, где есть тенденция к движению. Это может быть ваше направление.

Кроме того, вы можете использовать акселерометр, чтобы определить, в каком направлении (влево, вправо, вперед, назад) движется сам iPhone. Соедините это с предыдущими данными, и вы сможете получить более точные показания.

Это не очень хорошо, потому что GPS не так чувствителен, как вам хотелось бы, а акселерометры, вероятно, более чувствительны, чем вам хотелось бы, и оба зависят от движения. Но они могут работать.

Боюсь, мне придется пойти именно так - надеюсь, там есть какой-то волшебный компас. В моем Blackberry 8800 есть приложение компаса, и, исходя из его производительности, я всегда подозревал, что BB должен быть в движении (отслеживая координаты GPS), чтобы определить, в каком направлении движется устройство.

Rhett 05.01.2009 07:27

В iPhone или iPhone 3G нет компаса. Однако в iPhone 3GS был добавлен цифровой компас, поэтому этот процесс стал проще.

На 1-м поколении или 3G единственный способ определить облицовку - это то, что предлагает stalepretzel. Но имейте в виду, что он будет работать только тогда, когда GPS имеет достаточную блокировку и пользователь действительно движется. Чтобы получить какие-либо полезные данные, вам придется проделать много сглаживания, возможно, с инструкциями для пользователя, чтобы они не двигались во время ходьбы.

В iPhone 3GS есть компас

Greg Beech 23.07.2009 23:07

@Erich Mirabal - Пожалуйста, прочтите отметку времени на ответе. На момент публикации этого 3GS не существовало. Однако я отредактировал свой ответ, чтобы отразить это сейчас.

lc. 27.07.2009 05:09

@Greg Beech - Совершенно верно, и я обновил свой ответ, чтобы отразить это. Такова проблема постоянно меняющихся технологий.

lc. 27.07.2009 05:16

@lc - прошу прощения. Этот материал так легко устаревает. Но я полагаю, что голос "против" помогает сохранить его как живой документ. +1 сейчас.

Erich Mirabal 27.07.2009 19:27

@Erich Mirabal - Не беспокойтесь, и я согласен с тем, что сохранять эти вещи в живых - это хорошо. Просто уследить за всем этим довольно сложно.

lc. 28.07.2009 07:13

Насколько мне известно, есть в iPhone 3G нет компаса. К сожалению, если я чего-то не упускаю, я не думаю, что просмотр данных GPS и акселерометра поможет вам определить, в каком направлении смотрит iPhone - только направление, в котором вы путешествуете. Простите.

ОБНОВИТЬ: Обратите внимание, что вопрос и этот пост были написаны, когда iPhone 3G был текущей моделью, с тех пор Apple выпустила iPhone 3GS, который представил компас.

Интересно: я только что поискал Compass в App Store, и есть пара приложений, которые используют текущее время и положение солнца, чтобы определить, в какую сторону вы смотрите. По крайней мере, еще одно приложение использует GPS, когда вы двигаетесь, чтобы определять направление движения.

CodeAndCats 05.01.2009 07:45

@Erich Mirabal - Если вы нашли время, чтобы прочитать метку времени в этом ответе, вы узнаете информация о 3GS не была общедоступной 5 января 2009 г.. Ваш комментарий, честно говоря, не соответствует действительности. Да, этот ответ стал устаревшим с введением 3GS, но он был правильным в то время и уже давно получил одобрение.

lc. 27.07.2009 05:14

@lc (и Бен) - Прошу прощения. Мой мозг даже дату не зарегистрировал. Все-таки, если парень не знает и только догадывается, зачем отвечать?

Erich Mirabal 27.07.2009 19:31

Эрих, нигде в своем посте я не сказал «я догадался», основываясь на моих знаниях, я был почти уверен в своем ответе и, несмотря на вашу неосведомленную критику, мой пост стоит правильно. Я не думаю, что он заслуживает голоса против просто потому, что я не был уверен в себе достаточно высокомерно, как вам нравится.

CodeAndCats 28.07.2009 08:00

Бен, я пытался отменить голосование против, но не могу, пока вы не отредактируете свой ответ (система не позволяет мне, потому что он слишком старый). Это не имеет ничего общего с высокомерием, просто из-за невнятных разговоров кажется, что это не ответ. Опять же, я прошу прощения за незаслуженный отрицательный голос. Я по-прежнему придерживаюсь своего мнения, что ваш ответ ни к чему не обязывает и кажется бессмысленным без добавления каких-либо технических знаний. Как только вы его отредактируете, я смогу отменить голосование против.

Erich Mirabal 28.07.2009 23:31

Отсутствие моей абсолютной уверенности в стороне, если вы снова прочтете мой пост, вы увидите, что я также уточнил, что получение данных акселерометра и / или истории координат GPS, которую предлагали другие люди, не даст вам направления, в котором смотрит iPhone, а только направление движения . Это был важный момент, который нужно было поднять, учитывая, что вопрос заключается в том, куда вы идете, а не путешествуете. Так что я чувствую, что это был достойный вклад, и что вы немного критически относитесь к нему. Я понимаю, что в прошлом вы находили неправильные ответы, и ценю вашу готовность отменить свой голос против - я обновил свой ответ. :)

CodeAndCats 29.07.2009 03:30

Готово и сделано. Прошу прощения за то, что был болваном. Я никогда не хотел им быть (но, увы, был). Anyhoo ... Голос был отозван. Как там жизнь?

Erich Mirabal 29.07.2009 19:52
Ответ принят как подходящий

Если вы разрабатываете для 2.2, возможно, вам стоит взглянуть на следующие дополнения к CoreLocation:

CLLocation.course

CLLocation.speed

CLLocationDirection

CLLocationSpeed

CLLocation.course даст вам заголовок, который позволит вам определить север / юг / восток / запад.

Я понимаю, что направление и курс связаны между собой и взяты из данных GPS. Вы можете получить направление / курс только в том случае, если GPS обнаружит, что вы движетесь.

Adam Hawes 25.01.2009 10:10

Это правда, возвращаемая информация о заголовке не будет невероятно точной и требует скорости для работы.

Anne Porosoff 02.02.2009 21:38

В 3G S есть цифровой компас. Это дает вам магнитный север. Если вы включите GPS, он также может показать вам истинный север.

Erich Mirabal 23.07.2009 23:19

Это может быть своего рода хакерство, но я отслеживал широту и долготу, а затем определял направление.

В моем коде, который возвращает информацию GPS, я создал делегата, который вернет обратно широту и долготу.

[[self delegate] currentDirectionLat:newLocation.coordinate.latitude Long:newLocation.coordinate.longitude];

Код, который потреблял делегата, затем имел бы такой метод, чтобы получить координаты, а затем установить метку на экране для направления.

-(void)currentDirectionLat:(float)latitude Long:(float)longitude
{
    prevLongitude = currentLongitude;
    prevLatitude  = currentLatitude;

    currentLongitude = longitude;
    currentLatitude = latitude;

    NSString *latDirection = @"";
    if (currentLatitude > prevLatitude)
        latDirection = @"N";
    else if (currentLatitude < prevLatitude)
        latDirection = @"S";

    NSString *longDirection = @"";
    if (currentLongitude > prevLongitude)
        longDirection = @"E";
    else if (currentLongitude < prevLongitude)
        longDirection = @"W";

    if ([longDirection length] > 0)
        [lblDirection setText:[NSString stringWithFormat:@"%@%@",latDirection,longDirection]];  
}

Я не проверял это на 100%, но, похоже, работал над одним моим приложением, которое я писал. Если вам нужна дополнительная информация, дайте мне знать, и я отправлю вам свой код, который я написал на нем.

Вы также не получите хороших результатов, пока iPhone не переместится, чтобы получить широту и долготу. Однако это не займет много времени, чтобы это изменилось!

Пожалуйста, дайте мне код, я не могу понять из этого. Предположим, у нас есть две широты и долгота, например: сначала наше местоположение, а затем второе местоположение, а затем, что я могу сделать?

Mehul Mistri 18.07.2011 10:39

Другие вопросы по теме