2015-02-04 3 views
1

Я работаю над проектом, где я должен различать тип мобильности (автомобиль, трамвай, автобус, поезд, метро) ... В настоящее время я использую систему скорости, чтобы отличить большинство из них, используя мин и макс для каждого типа (неэффективно вы скажете :)) Но здесь возникает проблема, когда я хочу отличить автомобиль & метро - они имеют одинаковую скорость (более или менее), но единственное, что их отличает это место, где в настоящее время находятся ЖЕЛЕЗНЫЕ ДОРОГИ и МАРШРУТ (?).Признать текущее местоположение маршрута

идея: с помощью OpenStreetMap и проверить, если 90% пути была на железной дороге или нет ...

Что вы думаете? у вас есть какая-то другая идея, о которой я, возможно, и не думал, никогда раньше не использовал OpenStreetMap, и это мешает мне использовать сотовые данные, хотя ...

Спасибо за помощь!

EDIT (спасибо ответов я получил - спасибо!): Вот что я придумал, если у вас есть другие идеи, чтобы сделать его более точным, дайте мне знать :)

[_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

You может экспортировать только данные, которые вам нужны из OpenStreetMaps, используя OSM XAPI. Это может дать вам приемлемый размер файла для отправки с помощью приложения.

Уверен, что у вас будут проблемы с точностью GPS в автомобиле или трамвае. Расстояние между трамвайным маршрутом и автомобилями, вероятно, меньше горизонтальной точности позиций GPS, которые вы получаете с телефона.

Вы можете посмотреть положение, в котором пользователь сел (т. Е. Остановился). Если это близко к трамвайной остановке или дому пользователя, что даст вам хорошую индикацию.

Смежные вопросы