сосредоточиться на вопросе, не существует никакой формулы один выстрел, чтобы сделать все, но есть некоторые, чтобы сделать процесс Полегче. Вам придется искать вокруг в целом множество математических библиотек, чтобы найти их, хотя.
Это теория, лежащая в ее основе.
Хорошо, поэтому мы требуем широты и долготы точки 3. Я собираюсь объяснить теорию, лежащую в ее основе, поскольку для меня это слишком просто для меня.
Для этого мы будем использовать подшипник от одной точки к другой. Вы можете использовать эту ссылку для получения этой формулы: Bearing formula
Я предполагаю, что мы знаем расстояние между устройством и каждым из отдельных маяков, иначе это невозможно, если вы не хотите использовать своего рода радарный подход, чтобы идентифицировать это. Я не могу с этим поделать. Если мы это знаем, мы можем построить воображаемые круги вокруг двух маяков, используя расстояние от них до устройства в качестве их радиусов.
E.g. От устройства до маяка - 500 метров. От устройства до маяка 2 составляет 200 М.Нарисуйте воображаемый круг вокруг маяка с радуем 500 М и воображаемым кругом вокруг маяка с радиусом 200 м.
Очевидно, мы не можем создавать эти круги программно, это было бы слишком утомительно. Поэтому мы будем использовать уравнение круга: (x -h)^2 + (y - k)^2 = r^2.
Быстрая редакция средней школы показывает, что h и k - координаты x и y центра круга, смещение от декартовой равнины. мы сосредоточим нашу воображаемую картезианскую равнину в первой точке. Теперь мы разберем опорную точку до точки два, используя расстояние от точки до, чтобы построить линию от 0,0 на нашей картезианской плоскости (точка 1) до точки 2. Используя tan нашего подшипника, получим градиент линии. Теперь мы будем использовать cos и sine нашего подшипника и используя расстояние нашей гипотенузы, чтобы получить положение y и x маяка 2 относительно маяка 1 на нашей картезианской плоскости. Теперь мы вернем эти значения обратно в наши уравнения окружности:
Ваше первое уравнение всегда будет: (x -0)^2 + (y - 0)^2 = r^2. Где r - радиус в этом примере 500M. второе уравнение: (x -h)^2 + (y - k)^2 = r^2. Где r - радиус в этом примере 200M. За исключением теперь h будет вашим вычисленным значением x выше, а y будет рассчитанным значением y выше.
Теперь для сложной вечеринки. Нам нужно найти, где эти круги пересекаются. От наших приятелей при обмене математикой я получил формулу. Points of intersection
Теперь ваши круги могут иметь нуль 1 или две точки пересечения, основанные на позиции устройств. Если вы получите два результата, вам придется снова запустить всю вещь, пока устройство движется, чтобы увидеть, приближаемся мы или дальше от центров кругов. Из этого мы можем заключить, какая сторона является правильной точкой, и мы можем направить прямую линию к маяку 1 на нашей картезианской равнине, получить градиент линии, преобразовать ее в подшипник от маяка 1, а затем перестроить haversine и подшипник формулу для получения координат.
Это не очень или просто, но в конечном итоге вы попадете туда. Это скорее всего не единственное решение, поэтому не стесняйтесь искать другие. Удачи.
Предположим, у нас есть как лат, так и длинные .. вы хотите знать, был ли мобильный между этими точками? – Jamil
yeah (Lat и long из двух позиционных маяков, которые я имею в виду), но используя данные, которые у меня есть (расстояние маяка, расстояние между маяками и местами двух точек). – hrskrs
Позвольте мне показать вам ответ, что вы говорите в этом вопросе. Пожалуйста, проверьте мой ответ. – Jamil