Как рассчитать площадь многоугольника в базе данных MySQL, если точки многоугольника равны длинным латам? - PullRequest
5 голосов
/ 28 июля 2010

Как рассчитать площадь многоугольника, хранящегося в базе данных MySql? Точки многоугольников - это широта. Итак, похоже, что градусы и минуты вызывают проблемы.

Я пробовал:

SELECT AREA( my_polygon ) 
FROM  `my_table` 
WHERE name =  'Newport'

Потому что точки это длинные, я получаю странные результаты.

(я не могу переключиться на Postgre). Есть ли способ сделать это в MySQL? Я хотел бы получить результаты в квадратных метрах или квадратных километрах или квадратных милях - любой из них был бы в порядке.

1 Ответ

2 голосов
/ 28 июля 2010

Вы должны преобразовать эти латы в более подходящую систему координат.

Поскольку земля - ​​это сфера, вы говорите о расчете площади в сферических координатах.

В документах говорится, что функция MySQL "AREA" принимает многоугольникв качестве своего вклада.Я бы сказал, что если вы хотите, чтобы площадь была чем-то вроде квадратных миль, вы должны преобразовать координаты широты / долготы в эквивалентные координаты поверхности (x, y) с правильными единицами (например, милями).Затем передайте их в функцию AREA.

Эта ссылка предполагает, что кто-то еще имел эту проблему и решил ее.

...