Использование маршрута GPX или трека для тестирования в Xcode 4.2
Кто-нибудь имел успех с использованием маршрута или дорожки GPX для тестирования приложений, ориентированных на местоположение, которые зависят от движения в Xcode 4.2? Я смог заставить его использовать одну путевую точку в GPX файле или даже заставить ее перебирать несколько путевых точек, но я не смог заставить ее следовать дорожке таким образом, чтобы обеспечить скорость и информацию о курсе, Я пробовал с записанными дорожками от вождения, ручных маршрутов и дорожек и маршрутов, сделанных с Trailrunner.
Возможно, эта функция просто недоступна, но Apple действительно предоставляет накопитель freeway в симуляторе. Я хочу иметь возможность делать что-то подобное на устройстве и в том месте, которое я могу указать. У кого-нибудь есть мысли?
Ответы
Ответ 1
Лучший способ - создать свой собственный класс симулятора для чтения файла и генерации событий CLLocation, что даст вам полный контроль. Файлы GPX не содержат скорости и заголовка, поэтому вам придется самостоятельно их вычислять. Основной цикл моделирования, который я использовал:
Simulate{
if (!eof) {
Read the next waypoint
Calculate distance, dt (delta time), bearing and speed (distance/dt) from the previous waypoint
Generate a CLLocation object and call the didUpdateToLocation delegate method
Peek at the next waypoint and calculate next_dt
Scale next_dt // as desired for faster playback (e.g. dt/2 would be 2x)
Start an NSTimer with next_dt as the duration
}
}
When the timer fires, call Simulate again
Примечание. До недавнего времени синтез CLLocations был несколько проблематичным, поскольку CLLocation неизменен, и метод init не имел возможности установить скорость и заголовок. Это было исправлено в iOS 4.2.
Ответ 2
Дисковод Freeway, как представляется, определяется файлом 1,6 МБ в /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/CoreLocation.framework/Support/SimulationScenarios/Freeway Drive.plist
. Это словарь с двумя клавишами, Options
и Locations
. Options
сам - словарь с двумя ключами и, вероятно, может быть обратным. Locations
, с другой стороны, представляет собой большой массив (2240 элементов) NSData
, каждый из которых содержит около 724 байта. Первые восемь байтов декодируются до "bplist00", поэтому каждый из них является plist. Я написал один на диск, но редактор списка свойств Xcode утверждает, что он поврежден.
В каталоге, где находится этот файл, также находятся другие локальные сети и маршруты. Я продублировал один из файлов и перезапустил симулятор, а новый файл появился в меню Debug.
Самая большая проблема с добавлением ваших собственных файлов заключается в том, что обновление Xcode в будущем может стереть их, но это не так уж важно, если вы где-то сохраните оригиналы.
Ответ 3
Вы можете создавать сложные маршруты с помощью Google Maps, а затем конвертировать их в совместимый файл GPX с помощью https://mapstogpx.com/mobiledev.php