Подтвердить что ты не робот

Вычисление новой долготы, широты от старых + n метров

Я хочу создать 2 новые долготы и 2 новые широты на основе координат и расстояния в метрах, я хочу создать хорошую ограничительную рамку вокруг определенной точки. Его малый масштаб и макс 1500 метров + и 1500 метров. Так что для части города, я не думаю, что кривая земли должна быть принята во внимание.

Итак, у меня есть 50.0452345 (x) и 4.3242234 (y), и я хочу знать x + 500meter, x-500meter, y-500meter, y + 500meter

Я нашел много алгоритмов, но почти все, похоже, имеют дело с расстоянием между точками.

4b9b3361

Ответ 1

Число километров на градус долготы составляет приблизительно

(2*pi/360) * r_earth * cos(theta)

где theta - широта в градусах, а r_earth - приблизительно 6378 км.

Число километров на градус широты примерно одинаковое во всех местах, приблизительно

(2*pi/360) * r_earth = 111 km / degree 

Итак, вы можете сделать:

new_latitude  = latitude  + (dy / r_earth) * (180 / pi);
new_longitude = longitude + (dx / r_earth) * (180 / pi) / cos(latitude * pi/180);

Пока dx и dy малы по сравнению с радиусом земли, и вы не слишком близко приближаетесь к полюсам.

Ответ 2

Принятый ответ совершенно прав и работает. Я сделал некоторые хитрости и превратился в это:

double meters = 50;
double coef = meters * 0.0000089;
double new_lat = my_lat + coef;
double new_long = my_long + coef / Math.cos(my_lat * 0.018);

Надеюсь, что это тоже поможет.