Один из способов приблизиться к этому - начать со случайной точки p (например, вашей последней известной позиции). А затем:
- l oop через каждую из станций
- вычислить расстояние между p и станцией
- если расстояние слишком велико, шаг эпсилон в сторону станции
- если расстояние слишком мало, отойдите на эпсилон от станции
- этот эпсилон должен быть пропорционален величине разницы
- повторите это либо фиксированное количество раз, либо до тех пор, пока положение не перестанет сильно меняться
Такой подход позволяет использовать более 4 станций, а также некоторые ошибки измерения.
Вы можете поэкспериментировать с размером эпсилон и количеством шагов, чтобы получить достаточно хорошие результаты за несколько итераций, в зависимости от потребностей.