Использование маршрута или трека GPX для тестирования в Xcode 4.2 - PullRequest
10 голосов
/ 17 октября 2011

Кто-нибудь имел какой-либо успех, используя маршрут или трек GPX для тестирования приложений с поддержкой определения местоположения, которые зависят от движения в Xcode 4.2?Мне удалось заставить его использовать одну путевую точку в файле GPX или даже заставить ее повторять серию путевых точек, но я не смог заставить ее следовать по дорожке таким образом, чтобы дать информацию о скорости и курсе,Я пробовал с записанными треками от вождения, сделанными вручную маршрутами и треками, а также маршрутами, созданными с помощью Trailrunner.

Может быть, эта функция просто недоступна, но Apple действительно предоставляет автостраду в симуляторе.Я хочу быть в состоянии сделать что-то подобное на устройстве и в месте, которое я могу указать.У кого-нибудь есть мысли?

Ответы [ 3 ]

4 голосов
/ 06 ноября 2011

Лучший способ - создать собственный класс симулятора для чтения файла и генерации событий 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.

4 голосов
/ 28 октября 2011

Похоже, что диск 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», поэтому каждый из них является списком. Я записал один на диск, но редактор списка свойств XCode утверждает, что он поврежден.

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

Самая большая проблема с добавлением ваших собственных файлов заключается в том, что будущие обновления XCode могут стереть их, но это не такая уж большая проблема, если вы храните где-нибудь оригиналы.

0 голосов
/ 09 июля 2016

Вы можете составить сложные маршруты с помощью Google Maps, а затем преобразовать их в совместимый файл GPX, используя https://mapstogpx.com/mobiledev.php

...