Функция AREA () Mysql geometry возвращает что именно, когда координаты long / lat? - PullRequest
1 голос
/ 12 мая 2011

Мой вопрос в некоторой степени связан с этим похожим , который связан с довольно сложным решением - но то, что я хочу понять, является результатом этого:

Использование поля Mysql Geometry для хранения небольшого многоугольника, который я должным образом запустил

select AREA(myPolygon) where id =1 

и получил значение, например, 2,345. Так может ли кто-нибудь сказать мне, что представляет собой это число, видя, что хранимые значения были long / lat множествами, описывающими многоугольник?

К вашему сведению, области, над которыми я работаю, относительно малы (автостоянки и т. П.), И область не должна быть точной - меня не будут беспокоить искривления Земли.

2,345 из чего? Спасибо, это меня беспокоит.

1 Ответ

2 голосов
/ 13 мая 2011

Короткий ответ: единицы измерения для вашей области в основном бессмысленны ([deg lat diff] * [deg lon diff]).Несмотря на то, что кривизна Земли не будет играть роль при расчете площади (поскольку ваши области «малы»), она играет роль при расчете расстояния между координатами многоугольника широта / долгота.

Поскольку степень долготы различается в зависимости от расстояния от экватора (http://en.wikipedia.org/wiki/Longitude#Degree_length),, в действительности нет прямого преобразования вашего района в м ^ 2 или км ^ 2. Это зависит отрасстояние север / юг от экватора.

Если у вас всегда есть прямоугольные многоугольники, вы можете просто сохранить координаты противоположного угла и рассчитать площадь, используя что-то вроде этого: PHP Library: Рассчитать ограничивающий прямоугольник для заданногоlat / lng location

Самое «правильное», что нужно сделать, это сохранить ваши полигоны, используя координаты XY (метры) (возможно, UTM, используя эллипсоид WGS-84), который можно рассчитать по широте/ lon, используя различные библиотеки, такие как следующие для Java: Java, конвертируйте lat / lon в UTM . Затем вы можете продолжить использовать функцию MySQL AREA ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...