![enter image description here](https://i.stack.imgur.com/12EUN.png)
У меня есть 4 точки на карте (широта, долгота), может быть больше.И мне нужно построить ПОЛИГОН MySQL с шириной 10 километров между этими точками.Как видно из рисунка - у меня есть синяя линия, и мне нужен многоугольник (зеленый контур).
Моей первой мыслью было создание двух отдельных точек для каждой данной точки.Например:
- Учитывая 1-ю точку (Бремен)
- вычислить 5 км вправо и добавить точку, вычислить 5 км влево и добавить точку.
Логикаэто просто.НО проблема в том, что я не знаю, что вычислять (справа, сверху, снизу, слева), мне нужен какой-то угол, но я застрял здесь.
Мне просто нужен алгоритм, нет необходимостидля полного примера кода.
функция в JavaScript, которую я попробовал:
var meters = 10000 / 2;
var my_lat = 52.51978;
var my_long = 13.388211;
// number of km per degree = ~111km (111.32 in google maps, but range varies
/* between 110.567km at the equator and 111.699km at the poles) */
// 1km in degree = 1 / 111.32km = 0.0089
// 1m in degree = 0.0089 / 1000 = 0.0000089
var coef = meters * 0.0000089;
var new_lat = my_lat + coef;
// pi / 180 = 0.018
var new_long = my_long - coef / Math.cos(my_lat * 0.018);