¿Cómo simular a un usuario que conduce una ruta en un MKMapView?

votos
0

Necesito simular cómo se verá mi aplicación cuando un usuario maneja una demo. Tengo un MKMapView, ¿cómo puedo simular el aspecto de un usuario manejando por ahí que usará la funcionalidad map.userLocation, que obviamente no estará disponible en la demostración?

¡Gracias!

Publicado el 07/11/2009 a las 23:47
fuente por usuario
En otros idiomas...                            


7 respuestas

votos
1

Bueno, tengo algo en marcha, básicamente hice esto

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

Luego llamo a este tipo en un bucle entre todos mis vértices con un ligero retraso. Funciona bastante bien

Respondida el 08/11/2009 a las 01:48
fuente por usuario

votos
1

No hay forma de simular en el simulador de iPhone. Tendrá que cargarlo en su dispositivo y moverse.

Respondida el 08/11/2009 a las 00:01
fuente por usuario

votos
0

He encontrado una manera mejor sería subclase MKUserLocation:

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

A continuación, agregarlo como una anotación mapView.addAnnotation(SimulatedUserLocation()). (También puede ser que desee ocultar la ubicación real de la primera mapView.showsUserLocation = false)

iOS haría que la anotación exactamente igual que la ubicación real del usuario.

dynamic se utiliza en la propiedad por lo que el cambio de coordenadas desencadena MVA y lo mueve en el mapa.

Respondida el 19/12/2016 a las 15:36
fuente por usuario

votos
0

Con el fin de simular la conducción tendrá que establecer 2 funcionalidades básicas:

  1. Lectura CLLocations de un archivo (que desea iniciar la sesión durante la prueba de la unidad con un dispositivo). Lo ideal es que va a hacer esto basado en las marcas de tiempo en los lugares, es decir, la reproducción de las mismas actualizaciones de ubicación exactas que se recibieron durante el examen de manejo.

  2. Actualización de la posición de su MKAnnotationView en el mapa basado en los lugares leídos del registro.

Para la parte 1, echar un vistazo a CLLocationDispatch , una clase muy útil que proporciona el archivado / unarchiving de CLLocations y los envía a uno o más oyentes (utilizando el protocolo CLLocationManagerDelegate).

Para la parte 2, echar un vistazo a Moving-MKAnnotationView .

Respondida el 18/05/2011 a las 15:27
fuente por usuario

votos
0

También puede consultar iSimulate, que afirma ser capaz de simular varias funciones que solo están disponibles en el iPhone en el simulador de iPhone, incluyen CoreLocation. No lo he intentado yo mismo, así que su kilometraje puede variar.

Respondida el 08/11/2009 a las 00:57
fuente por usuario

votos
0

No soy un experto en desarrollo de iPhone, pero ¿cómo recibe la vista del mapa las coordenadas? Si es a través de una función que llama a la API CoreLocation, ¿podría simplemente escribir una función que genere aleatoriamente valores de longitud y latitud en un intervalo de tiempo determinado y hacer que la vista del mapa extraiga las coordenadas de allí? Solo un pensamiento.

Respondida el 08/11/2009 a las 00:09
fuente por usuario

votos
-1

La respuesta es no. Entonces, ¿qué tal si agregas una capa de abstracción entre tu código y MKMapKit? Puedes hacer xUnit tests para tu objetivo.

Respondida el 09/11/2009 a las 03:05
fuente por usuario

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