Как имитировать пользователь вождение маршрута в MKMapView?

голоса
0

Мне нужно, чтобы имитировать, как мое приложение будет выглядеть, когда пользователь разъезжать для демонстрации. У меня есть MKMapView, как можно имитировать внешний вид пользователя вождения, вокруг которого будет использовать функциональные возможности map.userLocation, которые, очевидно, не будут доступны в демо-версии.

Благодаря!

Задан 07/11/2009 в 23:47
источник пользователем
На других языках...                            


7 ответов

голоса
1

Ну, я получил что-то происходит, я только что сделал это по существу

- (void)moveIcon:(MKAnnotationView*)locationView toLocation:(CLLocation*)newLoc
{
    LocationAnnotation* annotation = [[[LocationAnnotation alloc] initWithCoordinate:newLoc.coordinate] autorelease];
    [locationView setAnnotation:annotation];
    [map setCenterCoordinate:newLoc.coordinate animated:YES];
}

Тогда я называю этот парень в петле между всеми моими вершинами с небольшой задержкой. Работает довольно qell.

Ответил 08/11/2009 в 01:48
источник пользователем

голоса
1

Ни в коем случае не для имитации в iPhone симулятор. Вам нужно загрузить его на устройство и передвигаться.

Ответил 08/11/2009 в 00:01
источник пользователем

голоса
0

Я нашел лучший способ будет подкласса MKUserLocation:

class SimulatedUserLocation: MKUserLocation {
    private var simulatedCoordinate = CLLocationCoordinate2D(latitude: 39, longitude: -76)
    override dynamic var coordinate: CLLocationCoordinate2D {
        get {
            return simulatedCoordinate
        }
        set {
            simulatedCoordinate = newValue
        }
    }
}

Затем добавьте его в качестве аннотации mapView.addAnnotation(SimulatedUserLocation()). (Вы также можете захотеть , чтобы скрыть реальное местоположение первого mapView.showsUserLocation = false)

IOS сделает аннотацию так же, как действительное местоположение пользователя.

dynamic используется на имущество, так что путем замены координат вызывает КВО и перемещает его на карте.

Ответил 19/12/2016 в 18:36
источник пользователем

голоса
0

Для имитации вождения вам необходимо установить 2 основные функциональные возможности:

  1. Чтение CLLocations из архива (который вы бы войти во время тестирования привода с устройством). В идеале вы будете делать это на основе меток времени на местах, то есть воспроизводя те же данные о местоположении, которые были получены в ходе испытания на диск.

  2. Обновление позиции вашего MKAnnotationView на карте на основе местоположения, считанное из журнала.

Для части 1, посмотрите на CLLocationDispatch , удобный класс , который обеспечивает архивирование / разархивирование из CLLocations и направляет их к одному или нескольким слушателям ( с использованием протокола CLLocationManagerDelegate).

Для части 2, обратите внимание на движущемся-MKAnnotationView .

Ответил 18/05/2011 в 15:27
источник пользователем

голоса
0

Вы можете также проверить iSimulate , который утверждает , чтобы иметь возможность смоделировать несколько функций , доступных только на iPhone в симуляторе iPhone включает CoreLocation. Я не пробовал это сам поэтому пробег может варьироваться.

Ответил 08/11/2009 в 00:57
источник пользователем

голоса
0

Я не эксперт DEV iPhone, но как вид карты получить координаты? Если это через функцию, которая вызывает API CoreLocation, не могли бы вы, возможно, просто написать функцию, которая случайным образом генерирует долготы и широты значения в определенный промежуток времени, и ваш вид карты тянуть координаты оттуда вместо этого? Просто мысль.

Ответил 08/11/2009 в 00:09
источник пользователем

голоса
-1

Ответ - нет. Тогда, как о добавлении уровня абстракции между кодом и MKMapKit? Вы можете сделать XUnit тесты для вашей цели.

Ответил 09/11/2009 в 03:05
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more