2016-09-28 14 views
1

Я хотел бы вычислить точку (латы и долготы) в трех случаях:Координаты точки из 2-й или 3-х известных точек с расстояниями

  1. Три точек доступны с их расстояниями моего местоположения
  2. Две точки доступны с их расстояниями мое местоположение

для 1. Если у меня уже есть решение Trilateration Method Android Java

Но 2. Если я ничего не получил.

Есть ли у кого-нибудь идея, как я могу рассчитать этот момент, узнав еще два?

Существуют ли библиотеки Java (или, по крайней мере, псевдокод) для подобных задач «гео»?

Здесь изображение для двухточечной проблемы. Один из них находится за стеной, так что я только принять решение, какой из двух лучше (с помощью Bluetooth Low Energy, я могу это сделать сравнение RSSI) two points problem

+0

Это как единственный случай вычисления пересечения круга, объясненный здесь: http://mathworld.wolfram.com/Circle-CircleIntersection.html Ваш случай может быть выполнен точно так, как показано в этой ссылке, поскольку вы можете предположить, что P1 и P2 находятся на одной оси –

+0

@AkkaJaworek thx –

ответ

1

Вы должны знать три точки и расстояние до вашего местоположения для определения точки. Посмотрите на следующую картину:

enter image description here

enter image description here

Ситуация вообще. Для любых двух точек вы можете нарисовать их как на приведенном выше рисунке. Затем для известного расстояния y с левой стороны вы найдете точки, которые являются x с правой, и это возможные позиции в нужном месте.

Два расстояния до двух точек не определяют одну точку. Они дают два очка.

Вопрос: как рассчитать эти баллы? Используйте теорему Пифагора.

Assume two points O1(x1,y1) and O2(x2,y2) and desired points P3, P4. 
(x4-x1)^2 + (y4-y1)^2 = dist1 
(x3-x1)^2 + (y3-y1)^2 = dist1 
(x4-x1)^2 + (y4-y1)^2 = dist2 
(x3-x1)^2 + (y3-y1)^2 = dist2 

У вас есть 4 уравнения и 4 unknows. Подсчитайте. Затем надейтесь, что одна точка будет в другой стране, чем на телефоне, на котором установлено приложение. Подсказки можно найти here.

После просмотра обновления вопроса я могу сказать вам, что одна из точек будет иметь координаты за пределами комнаты, которые можно легко проверить, сравнив координаты точек с max/min x/y.

+0

Я знаю. Есть ли возможность рассчитать эти две точки? –

+0

Вы правы, однако можно проверить, какая из двух точек нужна, если вы укажете среду (стены и т. Д.). Вы можете рассчитать эти две точки, вычислив точки пересечения двух окружностей с радиусом вашего измеренного расстояния –

+0

@AkkaJaworek вы правы ... Если бы я получил эти два очка, то я могу принять решение выбрать один из них. –