кодесурса
«MySQL

MySQL Spatial Data Types

script1adsense2code
script1adsense3code

Расширения для пространственных данных

Open Geospatial Consortium (OGC) - это международный консорциум из более чем 250 компаний, агентств и университетов, участвующих в разработке общедоступных концептуальных решений, которые могут быть полезны для всех видов приложений, которые управляют пространственными данными.

Спецификация, опубликованная Open Geospatial Consortium Publishing (OGC), определяет, как MySQL реализует пространственные расширения как подмножество SQL со средой Geometry Types. Этот термин относится к среде SQL, которая была расширена с помощью набора типов геометрии. Геометрический столбец SQL реализован в виде столбца с типом геометрии. Спецификация описывает набор типов геометрии SQL, а также функции этих типов для создания и анализа значений геометрии.

Особенности MySQL пространственных типов данных

Пространственные расширения MySQL позволяют создавать, хранить и анализировать географические объекты:

  • Типы данных для представления пространственных значений
  • Функции для манипулирования пространственными значениями
  • Пространственная индексация для улучшения времени доступа к пространственным столбцам

MySQL поддерживает несколько пространственных типов данных

MySQL имеет типы данных, которые соответствуют классам OpenGIS. Некоторые из этих типов содержат отдельные значения геометрии:

  • ГЕОМЕТРИЯ
  • POINT
  • LINESTRING
  • ПОЛИГОН

Другие типы данных содержат наборы значений:

  • MULTIPOINT
  • MultiLineString
  • MultiPolygon
  • GEOMETRYCOLLECTION

Тип геометрии

Геометрия - это слово, которое обозначает географический объект. Первоначально слово геометрия означало измерение земли. Другое значение исходит от картографии, ссылаясь на геометрические особенности, которые картографы используют для составления карты мира. Это непостижимый класс, но он обладает рядом свойств, которые приведены ниже и являются общими для всех значений геометрии, созданных из любого из подклассов Geometry.

название Описание
тип Каждая геометрия принадлежит одному из инстанцируемых классов в иерархии.
SRID Полная форма SRID - Идентификатор пространственной привязки. Эта система описывает координатное пространство, в котором определяется объект геометрии. В MySQL значение SRID - это просто целое число, связанное со значением геометрии.
координаты Все непустые геометрии включают в себя хотя бы одну пару (X, Y) координат. Пустые геометрии не содержат координат. Координаты связаны с SRID.
интерьер, граница, экстерьер. Каждая геометрия занимает какую-то позицию в пространстве. Внешность геометрии - это все пространство, не занимаемое геометрией. Интерьер - это пространство, занимаемое геометрией. Граница является интерфейсом между внутренней и внешней частью геометрии.
MBR Его MBR (минимальный ограничивающий прямоугольник) или конверт. Это ограничивающая геометрия, образованная минимальной и максимальной (X, Y) координатами:
простой или непростой. Является ли значение простым или непростым. Значения геометрии типов (LineString, MultiPoint, MultiLineString) являются простыми или непростыми. Каждый тип определяет свои собственные утверждения простоты или непростости.
закрыт или не закрыт Является ли значение закрытым или не закрытым. Значения геометрии типов (LineString, MultiString) либо закрыты, либо не закрыты. Каждый тип определяет свои собственные утверждения для того, чтобы быть закрытым или не закрытым.
пустой или непустой Является ли значение пустым или непустым. Геометрия пуста, если у нее нет точек. Экстерьер, интерьер и граница пустой геометрии не определены. Пустая геометрия определяется как всегда простая и имеет площадь 0.
измерение Его размерность. Геометрия может иметь размерность –1, 0, 1 или 2:
- 1 для пустой геометрии.
0 для геометрии без длины и без области.
1 для геометрии с ненулевой длиной и нулевой площадью.
2 для геометрии с ненулевой площадью.

пример

Используйте инструкцию CREATE TABLE, чтобы создать таблицу с пространственным столбцом:

CREATE TABLE geotest (code int(5),descrip varchar(50), g GEOMETRY);
 

Вот структура таблицы:

Пример вывода:

 MySQL> опишите геотест;
+ --------- + ------------- + ------ + ----- + --------- + - ----- +
| Поле | Тип | Null | Ключ | По умолчанию | Extra |
+ --------- + ------------- + ------ + ----- + --------- + - ----- +
| код | int (5) | ДА | | NULL | | 
| описание | Варчар (50) | ДА | | NULL | | 
| г | геометрия | ДА | | NULL | | 
+ --------- + ------------- + ------ + ----- + --------- + - ----- +
3 ряда в наборе (0,01 с)

Используйте инструкцию ALTER TABLE, чтобы добавить или удалить пространственный столбец в или из существующей таблицы:

ALTER TABLE geotest ADD pt_loca POINT; 
ALTER TABLE geotest DROP pt_loca ;

Тип точки

Точка - это геометрия, которая представляет отдельное место в координатном пространстве.

Использование Point

На карте города объект Point может представлять железнодорожную станцию.

Point Properties

  • Значение X-координаты.
  • Y-координата
  • Точка определяется как нульмерная геометрия.
  • Граница Точки - это пустое множество.

пример

 MySQL> SELECT X (POINT (18, 23));
+ ------------------ +
| X (ТОЧКА (18, 23)) |
+ ------------------ +
| 18 | 
+ ------------------ +
1 ряд в наборе (0,00 сек)
MySQL> SELECT X (GeomFromText ('POINT (18 23)'));
+ --------------------------------- +
| X (GeomFromText ('POINT (18 23)')) |
+ --------------------------------- +
| 18 | 
+ --------------------------------- +
1 ряд в наборе (0,00 сек)

Тип кривой

Кривая - это одномерная геометрия, в общем, она представлена последовательностью точек. Отдельные подклассы кривой определяют тип интерполяции между точками. Кривая является непостоянным классом.

Свойства кривой

  • Кривая имеет координаты своих точек.
  • Кривая определяется как одномерная геометрия.
  • Кривая проста, если она не проходит через одну и ту же точку дважды.
  • Кривая закрыта, если ее начальная точка равна конечной точке.
  • Граница замкнутой кривой пуста.
  • Граница незамкнутой кривой состоит из двух ее конечных точек.
  • Простая и замкнутая кривая - это Линейное кольцо.

Тип LineString

LineString - это кривая с линейной интерполяцией между точками.

Использование LineString

Объекты LineString могут представлять реку на карте страны.

Свойства LineString

  • Строка LineString имеет координаты сегментов, определенные каждой последовательной парой точек.
  • LineString - это Линия, если она состоит ровно из двух точек.
  • LineString - это LinearRing, если она одновременно замкнута и проста.

пример

 MySQL> SET @g = 'LINESTRING (0 0,1 2,2 4)';
Запрос в порядке, затронуто 0 строк (0,00 с)
MySQL> INSERT INTO Geotest VALUES (123, «Тестовые данные», GeomFromText (@g));
Запрос в порядке, затрагивается 1 строка (0,00 с)

Тип поверхности

Поверхность - это двумерная геометрия. Это непостижимый класс. Его единственный инстанцируемый подкласс - Polygon.

Свойства поверхности

  • Поверхность определяется как двумерная геометрия.
  • Спецификация OpenGIS определяет простую поверхность как геометрию, которая состоит из одного «патча», который связан с одной внешней границей и нулем или несколькими внутренними границами.
  • Граница простой поверхности - это множество замкнутых кривых, соответствующих ее внешней и внутренней границам.

Тип полигона

Полигон - это плоская поверхность, представляющая многогранную геометрию. Он определяется одной внешней границей и нулем или несколькими внутренними границами, где каждая внутренняя граница определяет отверстие в многоугольнике.

Использование многоугольника

Объекты Polygon могут представлять районы, блоки и т. Д. На карте состояний.

Утверждения многоугольника

  • Граница многоугольника состоит из набора объектов LinearRing (то есть объектов LineString, которые являются простыми и закрытыми), которые составляют его внешние и внутренние границы.
  • У многоугольника нет колец, которые пересекаются. Кольца на границе многоугольника могут пересекаться в точке, но только как касательная.
  • Полигон не имеет линий, шипов или проколов.
  • Полигон имеет внутреннюю часть, которая является множеством связанных точек.
  • Полигон может иметь отверстия. Внешность многоугольника с отверстиями не связана. Каждое отверстие определяет связанный компонент экстерьера.

пример

 MySQL> SET @g = 'POLYGON ((0 0,8 0,12 9,0 9,0 0), (5 3,4 5,7 9,3 7, 2 5))';
Запрос в порядке, затронуто 0 строк (0,00 с)
MySQL> INSERT INTO Geotest VALUES (123, «Тестовые данные», GeomFromText (@g));
Запрос в порядке, затрагивается 1 строка (0,03 сек)

GeometryCollection Type

Коллекция GeometryCollection - это геометрия, которая представляет собой набор из одной или нескольких геометрий любого класса.

Все элементы в GeometryCollection должны находиться в одной и той же пространственной системе отсчета. Других ограничений на элементы GeometryCollection не существует, хотя подклассы GeometryCollection, описанные в следующих разделах, могут ограничивать членство. Ограничения могут быть основаны на:

  • Тип элемента (например, MultiPoint может содержать только элементы Point)
  • измерение
  • Ограничения на степень пространственного перекрытия между элементами

пример

 MySQL> SET @g = 'GEOMETRYCOLLECTION (POINT (3 2), LINESTRING (0 0,1 3,2 5,3 5,4 7))';
Запрос в порядке, затронуто 0 строк (0,00 с)
MySQL> INSERT INTO Geotest VALUES (123, «Тестовые данные», GeomFromText (@g));
Запрос в порядке, затрагивается 1 строка (0,00 с)

Тип MultiPoint

MultiPoint - это геометрическая коллекция, состоящая из элементов Point. Точки никак не связаны или не упорядочены.

Использование MultiPoint

На карте мира MultiPoint может представлять собой цепочку маленьких островков.

MultiPoint Properties

  • MultiPoint - это нульмерная геометрия.
  • MultiPoint является простым, если нет двух равных ему значений Point (имеют одинаковые значения координат).
  • Граница MultiPoint - это пустое множество.

Тип MultiCurve

MultiCurve - это геометрическая коллекция, состоящая из элементов Curve. MultiCurve - это непостоянный класс.

MultiCurve Properties

  • MultiCurve - это одномерная геометрия.
  • MultiCurve прост тогда и только тогда, когда все его элементы просты; единственные пересечения между любыми двумя элементами происходят в точках, которые находятся на границах обоих элементов.
  • Границу MultiCurve можно получить, применив «правило объединения mod 2» (также известное как «правило нечетного четности»): точка - это граница MultiCurve, если она находится в пределах нечетного числа элементов MultiCurve.
  • MultiCurve закрывается, если все его элементы закрыты.
  • Граница замкнутой MultiCurve всегда пуста.
MySQL> SET @g ='MULTIPOINT(0 0, 15 25, 45 65)';
Query OK, 0 rows affected (0.00 sec)
MySQL> INSERT INTO geotest VALUES (123,"Multipoint",GeomFromText(@g));
Query OK, 1 row affected (0.00 sec)

Тип MultiLineString

MultiLineString - это геометрическая коллекция MultiCurve, состоящая из элементов LineString.

Использование MultiLineString

  • На карте региона MultiLineString может представлять речную систему или систему магистралей.

пример

 MySQL> SET @g = 'MULTILINESTRING ((12 12, 22 22), (19 19, 32 18))';
Запрос в порядке, затронуто 0 строк (0,00 с)
MySQL> INSERT INTO Geotest VALUES (123, "Multistring", GeomFromText (@g));
Запрос в порядке, затрагивается 1 строка (0,00 с)

Тип MultiSurface

MultiSurface - это геометрическая коллекция, состоящая из элементов поверхности. MultiSurface - это непостоянный класс. Его единственный инстанцируемый подкласс - MultiPolygon.

Многоповерхностные утверждения

  • Две поверхности MultiSurface не имеют внутренних поверхностей, которые пересекаются.
  • Два элемента MultiSurface имеют границы, которые пересекаются не более чем в конечном количестве точек.

Тип мультиполигона

MultiPolygon - это объект MultiSurface, состоящий из элементов Polygon.

Использование MultiPolygon

Мультиполигон может представлять систему озер на карте региона.

MultiPolygon Assertions

  • MultiPolygon не имеет двух элементов Polygon с внутренностями, которые пересекаются.
  • У MultiPolygon нет двух элементов Polygon, которые пересекаются (пересечение также запрещено предыдущим утверждением) или касаются бесконечного числа точек.
  • MultiPolygon может не иметь линий разрезов, шипов или проколов. MultiPolygon - это регулярное множество с замкнутой точкой.
  • MultiPolygon, имеющий более одного Polygon, имеет внутреннюю часть, которая не связана. Количество связанных компонентов внутренней части MultiPolygon равно количеству значений Polygon в MultiPolygon.

MultiPolygon Properties

  • MultiPolygon - это двумерная геометрия.
  • Граница MultiPolygon - это набор замкнутых кривых (значений LineString), соответствующих границам его элементов Polygon.
  • Каждая кривая на границе многоугольника находится на границе ровно одного элемента многоугольника.
  • Каждая кривая на границе элемента Polygon находится на границе MultiPolygon.

пример

 MySQL> SET @g = 'MULTIPOLYGON (((0 0,11 0,12 11,0 9,0 0)), ((3 5,7 4,4 7,7 7,3 5)))';
Запрос в порядке, затронуто 0 строк (0,00 с)
MySQL> INSERT INTO Geotest VALUES (123, «Multipolygon», GeomFromText (@g));
Запрос в порядке, затрагивается 1 строка (0,00 с)

Описание: типы данных MySQL

«MySQL

Предыдущая: Типы данных MySQL
Далее: Подключение к MySQL и отключение от него

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code