def execute_call(model, payload):
result = model.execute(payload)
code = result[0]
def test_execute_call(self):
mock_model = mock.MagicMock()
mock_model.execute = mock.MagicMock(return_value=(a,b,c)
self.execute_call(mock_model, payload)
assert whatever
Вам нужно передать макет объекта в функцию, чтобы его можно было использовать.
Да, вы правы, это единственный выход. Хотя я думаю, что когда вы знаете направление, вы можете отслеживать небольшие движения телефона от датчиков ускорения и точно рисовать направление, даже если исходное движение останавливается.
Примечание: Это устаревшая информация, она была правильной вплоть до 3Gs вышли. К сожалению, я не могу удалить принятый ответ, поэтому просто посмотрите ниже.
С оригинальными iPhone и iPhone 3G, нет.
С iPhone 3GS, выпущенным в июне 2009 года, да. Он включает в себя магнитометр, который позволяет использовать компас.
Базовая структура местоположения предоставляет эту информацию в классе CLHeading . Вы можете проверить, поддерживает ли устройство эту функцию , с помощью клавиши магнитометра
.
Как уже говорили другие, с iPhone 3G вы сможете определить направление движения, когда телефон движется, но вы не сможете указать ориентацию телефона, чтобы указать направление для пользователя. Конечно, пользователь может быть проинструктирован о том, чтобы ориентировать телефон определенным образом, что в сочетании с движением может точно указывать направление.
Вы можете проверить, поддерживает ли устройство эту функцию , с помощью клавиши магнитометра
.
Как уже говорили другие, с iPhone 3G вы сможете определить направление движения, когда телефон движется, но вы не сможете указать ориентацию телефона, чтобы указать направление для пользователя. Конечно, пользователь может быть проинструктирован о том, чтобы ориентировать телефон определенным образом, что в сочетании с движением может точно указывать направление.
Вы можете проверить, поддерживает ли устройство эту функцию , с помощью клавиши магнитометра
.
Как уже говорили другие, с iPhone 3G вы сможете определить направление движения, когда телефон движется, но вы не сможете указать ориентацию телефона, чтобы указать направление для пользователя. Конечно, пользователь может быть проинструктирован о том, чтобы ориентировать телефон определенным образом, что в сочетании с движением может точно указывать направление.
Сканируя доступные приложения, я пришел к выводу, что есть два способа сделать компас для текущего iPhone 3G.
Компас покажет только направление, в котором вы двигаетесь. Он не скажет вам направление, в котором находится iPhone. Поэтому даже использование акселерометра для отслеживания того, что iPhone повернулся / переместился, не обязательно позволит вам указывать на север на дисплее.
(т.е. вы не будете знать, если он движется вбок или если мы держим iPhone вверх ногами или что-то еще. Вы просто будете знать, куда вы двигаетесь ...)
РЕДАКТИРОВАТЬ декабрь 2010: С тех пор как был написан этот оригинальный пост, iPhone 3GS (выпущенный летом '09) и более новые модели имеют электронный компас. Этот компас может показывать правильное направление, когда не двигается ... (Это означает, что компас теперь может указывать на север независимо от направления, в котором iPhone удерживается или движется.)
Я думаю, что вы правы с вашим подозрением, позиция GPS - это одна точка без какой-либо информации о направлении. Чтобы определить направление, вам нужны две точки для создания вектора направления. Автомобильные навигационные системы работают так же. Они могут показывать вектор направления, только если машина движется.
Если вы используете аналоговые часы, вы можете использовать приведенные ниже инструкции для наложите циферблат компаса.
Это можно использовать для «калибровки» компаса и использования акселерометра, указывающего направление на север, когда телефон перемещается.
Очевидно, что это не очень точно ... »низкотехнологичное решение для высокого техническая проблема "
(инструкция взята из http://www.qwerty.co.za )
В северном полушарии положите часы на ровный участок земли, наведите часовая стрелка в направлении солнца. Линия север-юг снова является линией, разделяющей угол между часовой стрелкой и линией 12 часов пополам.
В южном полушарии поместите часы на ровный участок земли, Направьте цифру 12 в направлении солнца. Линия Север-Юг - это линия, делящая угол между часовой стрелкой и линией 12 часов пополам.
As a side note, the accelerometers in the iphone don't track rotations only translations so you can't do proper 6 axis inertial tracking of position and direction.
В качестве обновления iPhone 3GS действительно включает действующий рабочий цифровой компас, доступный для приложений. Это упрощает написание такого приложения.
См. Класс CLHeading
и свойство magnetHeading
.
Вы также можете получить истинное направление на север, если предположить, что телефон успел определить свое географическое местоположение.