Как установить минимальное расстояние для ограничительной рамки? - PullRequest
0 голосов
/ 31 января 2020

У меня есть следующая ограничительная рамка:

    "minLon": "13.4446404",
    "minLat": "52.5097786",
    "maxLon": "13.4456404",
    "maxLat": "52.5097786"

Теперь расстояние между ограничительной рамкой составляет 0,0676 км в соответствии с этой функцией:

export const getDistance = (lat1, lon1, lat2, lon2, unit = 'K') => {
    if ((lat1 == lat2) && (lon1 == lon2)) {
        return 0;
    }

    const radlat1 = Math.PI * lat1 / 180;
    const radlat2 = Math.PI * lat2 / 180;
    const theta = lon1 - lon2;
    const radtheta = Math.PI * theta / 180;
    let dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
    if (dist > 1) {
        dist = 1;
    }
    dist = Math.acos(dist);
    dist = dist * 180 / Math.PI;
    dist = dist * 60 * 1.1515;
    if (unit == 'K') { dist *= 1.609344; }
    if (unit == 'N') { dist *= 0.8684; }
    return dist;
};

Я хотел бы отрегулировать лат и длинные значения одинаково (minLon, maxLat ..), чтобы расстояние составляло минимум 200 м и не превышало 220 м.

Как это сделать?

Желаемый вывод

    "minLon": "13.4441404",
    "minLat": "52.5091786",
    "maxLon": "13.4459404",
    "maxLat": "52.5099886"

Теперь это расстояние составляет 0,15 км (мне нужно будет пройти итерацию дольше, чтобы добраться до 200 м - но вы поняли);)

...