Mysql многоугольник между несколькими координатами - PullRequest
0 голосов
/ 30 мая 2018

enter image description here
У меня есть 4 точки на карте (широта, долгота), может быть больше.И мне нужно построить ПОЛИГОН MySQL с шириной 10 километров между этими точками.Как видно из рисунка - у меня есть синяя линия, и мне нужен многоугольник (зеленый контур).

Моей первой мыслью было создание двух отдельных точек для каждой данной точки.Например:

  1. Учитывая 1-ю точку (Бремен)
  2. вычислить 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);
...