×

Tạo đối tượng hình học từ chuỗi với hàm GEOMETRYFROMTEXT() trong MySQL

Trong hệ quản trị cơ sở dữ liệu MySQL, việc lưu trữ và xử lý dữ liệu hình học là một trong những tính năng mạnh mẽ được tích hợp sẵn. Để tạo ra các đối tượng hình học từ một chuỗi ký tự, hàm GEOMETRYFROMTEXT() có thể được sử dụng hiệu quả. Bài viết này sẽ giới thiệu cách sử dụng hàm này và các loại đối tượng hình học mà bạn có thể làm việc cùng trong MySQL.

Giới thiệu về GEOMETRYFROMTEXT()

Hàm GEOMETRYFROMTEXT() trong MySQL cho phép bạn tạo ra các đối tượng hình học từ một chuỗi ký tự được định dạng theo chuẩn Well-Known Text (WKT). Chuẩn WKT được sử dụng rộng rãi để mô tả các đối tượng không gian như điểm, đường thẳng và đa giác.

Các loại đối tượng hình học

Dưới đây là danh sách các loại đối tượng hình học mà bạn có thể tạo ra sử dụng hàm GEOMETRYFROMTEXT():

  • POINT: Đại diện cho một điểm trong không gian 2D.
  • LINESTRING: Một đường thẳng nối từ một điểm này đến một điểm khác.
  • POLYGON: Một đa giác được tạo ra từ nhiều điểm nối lại với nhau, trong đó đường biên của đa giác không được giao nhau.
  • MULTIPOINT: Một tập hợp các điểm.
  • MULTILINESTRING: Một tập hợp các đường thẳng.
  • MULTIPOLYGON: Một tập hợp các đa giác.
  • GEOMETRYCOLLECTION: Một tập hợp các đối tượng hình học khác nhau.

Cách sử dụng GEOMETRYFROMTEXT()

Ví dụ sau sẽ minh họa cách sử dụng hàm GEOMETRYFROMTEXT() để tạo ra các loại đối tượng hình học khác nhau.

Tạo đối tượng POINT

INSERT INTO geom_table (geom)
VALUES (ST_GeomFromText('POINT(1 1)'));

Tạo đối tượng LINESTRING

INSERT INTO geom_table (geom)
VALUES (ST_GeomFromText('LINESTRING(0 0, 1 1, 2 2)'));

Tạo đối tượng POLYGON

INSERT INTO geom_table (geom)
VALUES (ST_GeomFromText('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'));

Tạo đối tượng MULTIPOINT

INSERT INTO geom_table (geom)
VALUES (ST_GeomFromText('MULTIPOINT((0 0), (1 1))'));

Tạo đối tượng MULTILINESTRING

INSERT INTO geom_table (geom)
VALUES (ST_GeomFromText('MULTILINESTRING((0 0, 1 1), (2 2, 3 3))'));

Tạo đối tượng MULTIPOLYGON

INSERT INTO geom_table (geom)
VALUES (ST_GeomFromText('MULTIPOLYGON(((0 0, 0 1, 1 1, 1 0, 0 0)), ((2 2, 2 3, 3 3, 3 2, 2 2)))'));

Tạo đối tượng GEOMETRYCOLLECTION

INSERT INTO geom_table (geom)
VALUES (ST_GeomFromText('GEOMETRYCOLLECTION(POINT(1 1), LINESTRING(0 0, 1 1))'));

Kết hợp với các hàm khác

Ngoài GEOMETRYFROMTEXT(), MySQL còn cung cấp nhiều hàm khác để làm việc với dữ liệu hình học, như:

  • ST_AsText(): Chuyển một đối tượng hình học thành chuỗi WKT.
  • ST_Contains(): Kiểm tra xem một đối tượng hình học có chứa một đối tượng khác hay không.
  • ST_Within(): Kiểm tra xem một đối tượng hình học có nằm trong một đối tượng khác hay không.

Kết luận

Hàm GEOMETRYFROMTEXT() là một công cụ hữu ích cho việc tạo và quản lý dữ liệu hình học trong MySQL. Bằng cách hiểu và sử dụng đúng cách các chức năng của hàm này, bạn có thể dễ dàng làm việc với các loại dữ liệu không gian phức tạp, mang lại nhiều ứng dụng thực tế như hệ thống thông tin địa lý (GIS), phân tích không gian và nhiều hơn nữa.

Comments