我正在开展一个项目,我必须区分移动类型(汽车,电车,公共汽车,火车,地铁......)我目前正在使用速度系统来区分大多数,每个都使用最小值和最大值类型(效率不高,你会说:))但是当我想区分汽车和汽车时遇到问题例如地铁 - 它们具有相同的速度(或多或少),但唯一区分它们的是当前是铁路和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 :(得分:0)
您可以使用OSM XAPI从OpenStreetMaps中导出所需的数据。这可能会为您提供可接受的文件大小,以便随应用程序一起提供。
我猜你会在汽车或有轨电车内遇到GPS精度问题。电车路线与汽车之间的距离可能小于您从手机获得的GPS位置的水平精度。
您可以查看用户坐下的位置(即停止行走)。如果这是靠近电车站或用户房子,将给你一个很好的指示。