Hvordan simulere en bruker kjører en rute i en MKMapView?

stemmer
0

Jeg trenger å simulere hvordan søknaden min vil se ut når en bruker kjører rundt for en demo. Jeg har en MKMapView, hvordan kan jeg simulere utseendet til en bruker kjører rundt som vil bruke map.userLocation funksjonalitet, som åpenbart ikke vil være tilgjengelig i demoen.

Takk!

Publisert på 07/11/2009 klokken 22:47
kilden bruker
På andre språk...                            


7 svar

stemmer
1

Vel jeg fikk noe som skjer, jeg bare gjorde egentlig dette

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

Da kaller jeg denne fyren i en sløyfe mellom alle mine hjørnene med en liten forsinkelse. Fungerer ganske qell.

Svarte 08/11/2009 kl. 00:48
kilden bruker

stemmer
1

Ingen måte å simulere i iPhone simulator. Du må laste den inn på din enhet og flytte rundt.

Svarte 07/11/2009 kl. 23:01
kilden bruker

stemmer
0

Jeg har funnet en bedre måte ville være å underklasse MKUserLocation:

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

Deretter legger det som en merknad mapView.addAnnotation(SimulatedUserLocation()). (Du kan også være lurt å skjule den virkelige plasseringen først mapView.showsUserLocation = false)

iOS ville gjengi merknaden akkurat som den virkelige brukerstedet.

dynamic brukes på eiendommen, slik at endring koordinere utløser KVO og beveger den på kartet.

Svarte 19/12/2016 kl. 18:36
kilden bruker

stemmer
0

For å simulere kjøring må du etablere 2 grunnleggende funksjoner:

  1. Lese CLLocations fra et arkiv (som du vil logge på stasjonen test med en enhet). Ideelt du vil gjøre dette basert på tidsstempler på de steder, det vil si å reprodusere nøyaktig samme posisjonsoppdateringer som ble mottatt under stasjonen test.

  2. Oppdatere MKAnnotationView posisjon på kartet basert på steder leser fra loggen.

For del 1, se på CLLocationDispatch , en praktisk klasse som gir arkivering / unarchiving av CLLocations og sender dem til en eller flere lyttere (ved hjelp CLLocationManagerDelegate protokoll).

For del to, ta en titt på Moving-MKAnnotationView .

Svarte 18/05/2011 kl. 14:27
kilden bruker

stemmer
0

Du kan også sjekke ut iSimulate som hevder å være i stand til å simulere flere funksjoner kun tilgjengelig på iPhone i iPhone simulator inkluderer CoreLocation. Jeg har ikke prøvd dette selv, så din kjørelengde kan variere.

Svarte 07/11/2009 kl. 23:57
kilden bruker

stemmer
0

Jeg er ikke en iPhone dev ekspert, men hvordan kartvisningen får koordinatene? Hvis det er gjennom en funksjon som kaller CoreLocation API, kan du muligens bare skrive en funksjon som genererer tilfeldige geo verdier på et visst tidsintervall og få kartvisning trekke koordinatene fra det i stedet? Bare en tanke.

Svarte 07/11/2009 kl. 23:09
kilden bruker

stemmer
-1

Svaret er nei. Så, hva med å legge en abstraksjon lag mellom koden og MKMapKit? Du kan gjøre xUnit tester for målet ditt.

Svarte 09/11/2009 kl. 02:05
kilden bruker

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