2015-02-04 7 views
1

이동성 유형 (자동차, 트램 웨이, 버스, 기차, 지하철 ...)을 구별해야하는 프로젝트를 진행하고 있습니다. 현재 속도 시스템을 사용하여 대부분을 구별하기 위해 분과 최대 각각의 유형 (당신은 말하지 않을 것입니다 :)) 그러나 여기서 내가 차를 구별하고자 할 때 & 지하철 - 그들은 둘 다 동일한 속도 (다소간)가 있지만 구별하는 유일한 것 현재 RAILWAYS와 ROUTE (?)가있는 곳입니다.현재 위치 경로 유형을 확인하십시오

아이디어 :

당신은 어떻게 생각하세요 ... OpenStreetMap에를 사용하여 여행의 90 %가 철도 여부에 있었다면 확인? 내가 생각하지도 않은 다른 아이디어가 있습니까? 결코 OpenStreetMap을 사용하지 마십시오. 셀룰러 데이터를 사용하는 데 방해가됩니다 ...

도움을 주셔서 감사합니다!

편집은 (내가 가진의 답변에 감사 - 감사합니다!) : 여기 는 당신이 더 정확 알려 :)

[_motionActivityManager startActivityUpdatesToQueue:[[NSOperationQueue alloc] init] withHandler:^(CMMotionActivity *activity) { 
     dispatch_async(dispatch_get_main_queue(), ^{ 

      if ([activity stationary] && !isStationnary) 
      { 
       isStationnary = TRUE; 
       MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init]; 

       request.naturalLanguageQuery = @"Train station"; 

       request.region = MKCoordinateRegionMakeWithDistance(UIApplication sharedApplication.tracker.lastKnownLocation.coordinate, 500, 500); 
       MKLocalSearch *search = [[MKLocalSearch alloc] initWithRequest:request]; 
       [search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) { 
        for (MKMapItem *item in response.mapItems) {       
         CLCircularRegion *region = [[CLCircularRegion alloc] initWithCenter:item.placemark.coordinate radius:50 
                      identifier:@"train station region"]; 
         if ([region containsCoordinate: UIApplication sharedApplication.tracker.lastKnownLocation.coordinate]) { 
          NSLog(@"IN REGION! %@", item); 
         } 
         else { 
          NSLog(@"NOT IN REGION! %@", item); 
         } 
        } 
       }]; 

      } 
      else if ([activity walking]) 
      { 
       isStationnary = FALSE; 
      } 
     }); 
    }]; 

답변

0

당신을 할 수 있도록 다른 생각을 가지고 있다면 내가 해낸 것입니다 OSM XAPI을 사용하여 OpenStreetMaps에서 필요한 데이터 만 내보낼 수 있습니다. 이것은 당신에게 응용 프로그램과 함께 제공 할 수있는 파일 크기를 줄 수 있습니다.

차 또는 전차의 GPS 정확도에 문제가있을 것입니다. 트램 루트와 자동차 사이의 거리는 아마도 휴대 전화에서 얻은 GPS 위치의 수평 정확도보다 작을 것입니다.

사용자가 앉은 위치를 볼 수 있습니다 (즉, 걷는 것을 멈 춥니 다). 이것이 트램 스테이션 또는 사용자에게 좋은 표시를 제공하는 집과 가까운 경우.