2015-03-25 8 views
-1

Я работал над SDK Estimote маяков для создания приложения, в котором я положил 6 маяков оценки на 6 разных залов заседаний. И я могу получить расстояние (в метрах) от всех маяков iPhone, содержащего мое приложение. Чтобы получить расстояние всех маяков я использую этот код:Как найти угловое положение и расстояние от оценки iBeacon от iPhone?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.title = @"Distance Demo"; 

    /* 
    * BeaconManager setup. 
    */ 
    self.beaconManager = [[ESTBeaconManager alloc] init]; 
    self.beaconManager.delegate = self; 

    self.beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:self.beacon.proximityUUID 


    [self.beaconManager startRangingBeaconsInRegion:self.beaconRegion]; 
} 

- (void)viewDidDisappear:(BOOL)animated 
{ 
    [self.beaconManager stopRangingBeaconsInRegion:self.beaconRegion]; 

    [super viewDidDisappear:animated]; 
} 

#pragma mark - ESTBeaconManager delegate 

- (void)beaconManager:(id)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region 
{ 
    CLBeacon *firstBeacon = [beacons firstObject]; 

    [self updateDotPositionForDistance:firstBeacon.accuracy]; 
} 

#pragma mark - 

- (void)updateDotPositionForDistance:(float)distance 
{ 
    NSLog(@"distance: %f", distance); 

} 

Но мне нужно точное угловое положение всех маяков от iPhone устройства (который содержит мое приложение). На самом деле я хочу, чтобы мое приложение результат, как это изображение:

enter image description here

Спасибо!

+0

Я боюсь, что это «немного» слишком широко для SO-SO - это больше вопросов и ответов для конкретных технических вопросов, и это даже не проблема программирования (широта в сторону), а математическая проблема –

+0

Estimote имеет встроенный SDK для решения вашей проблемы. Конечно, это не слишком хорошо работает из моего опыта, но вы можете использовать свой код в качестве стартовой площадки или в качестве ссылки. Вот ссылка на репозиторий GitHub: https://github.com/Estimote/iOS-Indoor-SDK – ApperleyA

ответ

0

широкий ответ на широкий вопрос:

, если вы знаете, относительное положение маяков между ними - вы можете разместить их с учетом позиции пользователя ... положение пользователя можно триангуляции, если вы видите 3 маяки.

НО

это не будет работать, потому что вы не будете иметь точные расстояния до маяков. Вы можете подумать, что вы это делаете, но маяки колеблются так дико, что это невозможно.

1

Нет ни одного из готового решения ни в Core Location, ни в исходном Estimote SDK, чтобы получить угловое положение маяков или пользователя по отношению к маяки (есть инструмент, отдельный от SDK старого, хотя, поясняется ниже). Тем не менее, вы можете использовать триангуляцию для использования измерений расстояния и фиксированных положений маяков для определения углов. Имейте в виду, что без большого снижения шума измерения будут сильно колебаться из-за характера радиоволн. Поэтому, если вы хотите, чтобы это работало надежно, есть много математики.

В Estimote у нас также есть и локальная SDK для размещения, которая была предназначена для отображения местоположений и обеспечения внутренних навигационных решений. Мы по-прежнему работаем над улучшением точности и стабильности позиционирования: мы выпустили пару крупных обновлений с момента запуска в октябре 2014 года, но все еще есть место для успеха. Этого должно быть более чем достаточно, чтобы убрать вас с земли, поэтому не стесняйтесь здесь: http://estimote.com/indoor/

Cheers.