Я привык видеть формат местоположения как широту, за которой следует долгота, но я полагаю, что при использовании библиотек MySQL хранит его POINT(LNG LAT)
в обратном порядке. Моя библиотека неверна или это фактический формат? Я не могу найти эту деталь в документации MySQL.
9
Ответы:
Синтаксис конструктора
Посмотрев ссылку на пространственную функцию, вы увидите
Это не совсем правильно. Все реализации ГИС должны делать
(x,y)
для проецируемых координат, которые есть(long,lat)
. Но в геодидных кординатных системах существуют некоторые разногласия относительно того, что делать. MySQL (и SQL Server) делают,(lat,long)
но PostGIS поддерживает(long,lat)
везде.Об этом говорится в спецификации Стандарт реализации OpenGIS® для географической информации. Простой доступ к функциям. Часть 2. Параметр SQL ,
Обратите внимание, что вышеприведенные слова дословно встречаются в географической информации - Хорошо известное текстовое представление систем координат.
Еще в 1.1 спецификации,
Тем не менее, похоже, что PostGIS и Oracle и многие сторонние библиотеки поддерживают
(x,y,[z])
все типы точек. Это является нарушением спецификации для WKT, но является довольно распространенным соглашением. Например, GeoJSON также делает это,И, (лат, длинный) упорядочение явно определяется EPSG для SRSID 4326, .
Вы также можете изучить блог Пола Рэмси (Captain PostGIS) на эту тему, озаглавленный «Давайте отзовемся».
Nicities
В качестве особого примечания, MySQL добавляет две новые функции в смесь,
ST_Longitude()
ST_Latitude()
Эти функции стоят в стороне от
ST_X()
иST_Y()
и требуют географической SRS или они бросают исключение и ошибки.Место хранения
Из документов
Хранение определяется здесь .
источник
Простой способ проверить ордер - выход за пределы широты диапазона:
Дает ОШИБКУ 3732 (22S03): параметр функции st_srid содержит геометрию с широтой 160.000000, которая находится вне диапазона. Должно быть в пределах [-90.000000, 90.000000];
Помните, что порядок может меняться в зависимости от используемых вами функций:
источник