Hoe kan een gebruiker het besturen van een route in een MKMapView simuleren?

stemmen
0

Ik moet simuleren hoe mijn aanvraag zal zien wanneer een gebruiker rijdt rond voor een demo. Ik heb een MKMapView, hoe kan ik simuleren het uiterlijk van een gebruiker rondrijden die de map.userLocation functionaliteit, wat uiteraard niet beschikbaar zal zijn in de demo zal gebruiken.

Bedankt!

De vraag is gesteld op 07/11/2009 om 23:47
bron van user
In andere talen...                            


7 antwoorden

stemmen
1

Nou ik heb iets aan de hand, ik in wezen deed dit net

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

Dan roep ik deze man in een lus tussen al mijn hoekpunten met een kleine vertraging. Werkt heel qell.

antwoordde op 08/11/2009 om 01:48
bron van user

stemmen
1

Geen manier om te simuleren in de iPhone simulator. U moet op uw toestel te laden en te verplaatsen.

antwoordde op 08/11/2009 om 00:01
bron van user

stemmen
0

Ik vond een betere manier zou zijn om subklasse MKUserLocation:

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

Voeg het toe als een aantekening mapView.addAnnotation(SimulatedUserLocation()). (U kunt ook naar de echte locatie eerste te verbergen mapView.showsUserLocation = false)

iOS zou de aantekening maken precies zoals de echte locatie van de gebruiker.

dynamic wordt gebruikt op het terrein, zodat veranderen van coördinatie triggers KVO en beweegt op de kaart.

antwoordde op 19/12/2016 om 18:36
bron van user

stemmen
0

Voor het simuleren van het rijden dan moet je 2 basisfunctionaliteiten te richten:

  1. Het lezen van CLLocations uit een archief (die je zou aanmelden tijdens de proefrit met een apparaat). In het ideale geval zult u dit doen op basis van de timestamps van de locaties, dat wil zeggen het reproduceren van de exact dezelfde locatie-updates die gedurende de rit proef werden ontvangen.

  2. de positie van uw MKAnnotationView op de kaart op basis van de locaties lezen log bijgewerkt.

Voor deel 1, bezoek de CLLocationDispatch een handige klasse die archiveren / archivering ongedaan van CLLocations verleent en verzendt naar één of meer luisteraars (via CLLocationManagerDelegate protocol).

Voor deel 2, neem een kijkje op Moving-MKAnnotationView .

antwoordde op 18/05/2011 om 15:27
bron van user

stemmen
0

Je kan ook kijken op iSimulate die beweert te kunnen verschillende functies alleen beschikbaar op de iPhone in de iPhone-simulator omvatten CoreLocation simuleren. Ik heb dit zelf, zodat uw snelheid kan variëren niet geprobeerd.

antwoordde op 08/11/2009 om 00:57
bron van user

stemmen
0

Ik ben niet een iPhone dev expert, maar hoe werkt de kaartweergave ontvangt de coördinaten? Als het door middel van een functie die de CoreLocation API calls, wat kun je gewoon schrijven een functie die een generator van willekeurige lengte en breedte waarden op een bepaald tijdsinterval en uw kaartweergave trek de coördinaten van daar in plaats daarvan? Alleen een gedachte.

antwoordde op 08/11/2009 om 00:09
bron van user

stemmen
-1

Het antwoord is nee. Dan, hoe over het toevoegen van een abstractielaag tussen de code en MKMapKit? U kunt dit doen xUnit tests voor uw doelstelling.

antwoordde op 09/11/2009 om 03:05
bron van user

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