Ответы пользователя по тегу Геолокация
  • Как определить, входит ли координаты пользователя в заданный квадрат(круг)?

    bask
    @bask
    Писал лет десять назад, достал из чулана...

    Вариант для квадрата:

    double lat1 = 55.77;
    double lon1 = 37.77;
    double lat2 = 55.66;
    double lon2 = 37.66;
    double d = 0.300; // - проверяемое расстояние в километрах
    double dx1km = 1.0f / (108.307 * Math.Cos(lon1 * 3.14159 / 180.0));// 108.307 - км между 1 градусом по долготе на широте Москвы
    double dy1km = 1.0 / 111; // 111 км - расстояние между 1 градусом по широте
    double dx = d * dx1km/2;
    double dy = d * dy1km;
    if (lat2 >= lat1 - dx && lat2 <= lat1 + dx && lon2 >= lon1 - dy && lon2 <= lon1 + dy) {
    	//we are together!
    }


    Для окружности Измеряем расстояние между двумя точками и сверяем его с заданным радиусом. Если это расстояние меньше радиуса, то точки находятся рядом.

    Здесь предполагается, что расстояние небольшое и вычисления происходят вдали от полюсов, т.к. там придётся учитывать искажения, т.к. квадрат превратится в параллелограмм, а окружность - в эллипс, вписанный в такой параллелограмм.
    Ответ написан
    6 комментариев