Поиск по сайту:
Окажите сто услуг, откажите только раз — и будут помнить только отказ (Неизв.).

Географические пространственные справочные системы в MySQL 8.0

09.06.2018
Географические пространственные справочные системы в MySQL 8.0

MySQL 8.0.11 поставляется с каталогом 5108 пространственной системой определений (SRS), и 479 из них являются географическими. Как правило, мы просто ссылаемся на них SRID, но в этом блоге мы будем погружаться в детали и попытаться понять сам определение.

Давайте начнем с SRS, большинство людей знает (хотя они могут не знать, что они это знают): SRID 4326, Всемирная геодезическая система с 1984 г. SRS мы используем каждый раз, когда мы ссылаемся на GPS-координаты:

Всякий раз, когда какая-либо пространственная функция вызываются каждый раз, когда геометрический объект строится в запросе или считывается с диска или памяти, MySQL просматривает SRID этой геометрии, чтобы понять, что означают координаты. Первый раз MySQL встречает SRID, он находит SRID в столбце SRS_ID и считывает и анализирует соответствующее определение из столбца DEFINITION. Остальные столбцы носят только справочную информацию для нас, людей. Определение SRS кэшируются так, что последующие поиски SRID происходят быстро.

Строка определения в формате, называемом Well-Known Text (WKT). WKT используется для определения точек, линий и многоугольников с функцией ST_GeomFromText, но определение SRS является другой частью этого языка. Это довольно длинная строка с несколькими уровнями вложенности блоков. Это легче читать, если мы распечатаем ее:

Все географические определения SRS начинаются со строкой «GEOGCS» (строка 1), коротким для географической системы координат. Далее следует имя (строка 2), которая является только для человека в качестве ссылки. В общем, большинство строк только для информации и не используется MySQL. MySQL заботится о цифрах, потому что те влияют на вычисления.

DATUM(строки 3-12) является определение модели Земли. Это тоже имеет имя (строка 4), а затем определение эллипсоида . Термины сфероида и эллипсоида  часто используются как взаимозаменяемые в ГИС. Если вы читали определение Википедии, вы увидите, что сфероид является типом эллипсоида, в частности, эллипсоид вращения. При работе с Землей, мы заинтересованы в сплющенных эллипсоидов, т.е. СФЕРОИДОВ где ось север-юг немного короче оси, проходящей через экватор.

Сфероида также имеет название (строка 6), а затем первые реальные цифры в строке определения: большую полуось (линия 7) и обратный уплощения (строка 8). В этом случае эллипсоидальная модель Земли имеет большую полуось (расстояние от центра до экватора) от 6378137 метров, а малая полуось (половины расстояния между Северным и Южными поляками) является 1 / 298.257223563th короче чем большая полуось. Если обратное уплощение установлено в 0 (теоретически недопустимое значении), Земля является идеальной сферой.

Код AUTHORITY (строка 9) говорит о том, что источник этого определения сфероида является EPSG Dataset, и идентификатор EPSG для сфероида 7030. Аналогичным образом, пункт органа для опорной точки (линия 11) говорит, что это EPSG точка привязка 6326. вы можете посмотреть эти коды в EPSG Online реестре, и вы увидите, что определения там соответствуют определениям MySQL в. Вы также обнаружите, что существует преобразование координат с EPSG кодом 7030, в дополнение к сфероида 7030. Эти номера являются уникальными только в пределах типа элемента, так что эти коды EPSG власти не должны быть ошибочно приняты за НИПИ .

PRIMEM (строки 13-17) указывает, где мы начинаем отсчет значений долготы. Опять же, простое имя меридиана (строка 14) игнорируются MySQL. Что важно, так это количество угловых единиц к востоку от Гринвича (строка 15). В этом случае мы определяем Гринвичский меридиан, который, конечно, является 0 градусов к востоку от Гринвича. Предложение власти (строка 16) говорит, что это EPSG меридиан 8901.

Направление меридиональных мер является всегда Postive номера на востоке от Гринвича, но блок меняется с блоком SRS определением (строки 18-22). Опять же, не обращая внимания на имя UNIT (строка 19), мы получаем коэффициент преобразования в радианы (строка 20). Поскольку 2П радиан приведет вас вокруг всей окружности и 360 градусов делают то же самое, мы имеем 2π / 360 = +0,017453292519943278. Это устройство используется для указания меридиана. Кроме того, устройство используется в координаты широты и долготы геометрий в этом SRS. Код органа (строка 21) представляет собой код, который использует EPSG для угловых градусов.

Первая AXIS (линии 23-26) имеет NAME (строка 24), что MySQL игнорирует. Но мы можем найти то, что другие люди называют широту. Направление AXIS (линия 25) говорит MySQL, что это является широта ось, с положительными числами к северу от экватора. Направление говорит только «Север», что означает положительные значения, идущие на север, но MySQL знает, что это географическая SRS, поэтому север и юг являются угловые меры, то есть широта.

Вторая AXIS (линии 27-30) также имеет удобный для пользователя NAME (строка 28) и направление (линия 29). На этот раз направление на востоке, а это означает, что это долгота измеряется с положительными числами к востоку от меридиана мы видели выше (линии 13-17). Порядок этих двух определений оси является то, что определяет порядок по оси SRS, то есть, что это система широта-долгота, а не система широты долготы.

Окончательный код AUTHORITY (строка 31) является кодом AUTHORITY всей географической SRS. Так как это SRID 4326 и каталог MySQL по SRSS является подмножеством EPSG Dataset, это не удивительно, что это EPSG SRS номер 4326. В MySQL, можно предположить, что EPSG коды SRSS такие же, как SRIDsMySQL,. EPSG Dataset Инструкция 7-1 (п. 5.9) сохраняет за собой два диапазона идентификационных номеров для EPSG SRSS. MySQL зарезервировал те же диапазоны для SRIDs и намерен использовать их только для SRSS из EPSG Dataset.

Все коды AUTHORITY не являются обязательными. Мы могли бы указать тот же SRS без каких-либо кодов authority, и никакие расчеты не изменятся. Тем не менее, коды authority могут быть использованы в будущем для выявления конкретных элементов.

Теперь мы знаем, как анализировать географические определения SRS, как MySQL делает это. Если вы были не уверены в порядке используемых осей или блоков, теперь вы знаете, где найти и как их читать!

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

Спасибо!

Теперь редакторы в курсе.