MKMapView에서 경로를 운전하는 사용자를 시뮬레이션하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1694705

문제

사용자가 데모를 위해 운전할 때 내 애플리케이션이 어떻게 보일지 시뮬레이션해야 합니다.MKMapView가 있는데 데모에서는 분명히 사용할 수 없는 map.userLocation 기능을 사용하여 운전하는 사용자의 모습을 어떻게 시뮬레이션할 수 있습니까?

감사해요!

도움이 되었습니까?

해결책 2

글쎄, 난 뭔가가 있었어, 난 그냥 본질적으로했다

- (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에서 작동합니다.

다른 팁

iPhone 시뮬레이터에서 시뮬레이션 할 방법이 없습니다. 장치에로드하고 이동해야합니다.

나는 iPhone Dev 전문가가 아니지만지도보기는 어떻게 좌표를 받습니까? Corelocation API를 호출하는 함수를 통해 인 경우 특정 시간 간격으로 경도 및 위도 값을 무작위로 생성하는 함수를 작성하고지도보기를 대신 여기에서 좌표를 가져 오도록 할 수 있습니까? 그냥 생각.

당신은 또한 체크 아웃 할 수 있습니다 isimulate iPhone 시뮬레이터의 iPhone에서만 사용할 수있는 여러 기능을 시뮬레이션 할 수 있다고 주장하면 Corelocation이 포함됩니다. 나는 당신의 마일리지가 다를 수 있도록 이것을 직접 시도하지 않았습니다.

운전을 시뮬레이션하려면 두 가지 기본 기능을 설정해야 합니다.

  1. 아카이브에서 CLLocation을 읽습니다(장치를 사용하여 드라이브 테스트 중에 기록함).이상적으로는 위치의 타임스탬프를 기반으로 이 작업을 수행합니다.주행 테스트 중에 수신된 것과 정확히 동일한 위치 업데이트를 재현합니다.

  2. 로그에서 읽은 위치를 기반으로 지도에서 MKAnnotationView의 위치를 ​​업데이트합니다.

1부에서는 다음을 살펴보세요. CL위치디스패치, CLLocation의 보관/보관 취소를 제공하고 이를 하나 이상의 리스너(CLLocationManagerDelegate 프로토콜 사용)에 전달하는 편리한 클래스입니다.

2부에서는 다음을 살펴보세요. 이동-MKAnnotationView.

나는 더 나은 방법이 서브 클래스라는 것을 알았습니다 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 조정을 변경하면 KVO가 트리거되고지도에서 이동하도록 속성에 사용됩니다.

내 대답은 아니오 야. 그렇다면 코드와 mkmapkit 사이에 추상화 계층을 추가하는 것은 어떻습니까? 목표를 위해 xunit 테스트를 수행 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top