×

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

Trong MySQL, nếu bạn đang làm việc với dữ liệu không gian, rất có thể bạn sẽ gặp nhu cầu tạo ra các đối tượng hình học từ các chuỗi định dạng văn bản. Một trong những cách hiệu quả để thực hiện điều này là sử dụng hàm GEOMCOLLFROMTEXT(). Đây là hàm tiện lợi cho phép bạn chuyển đổi một chuỗi văn bản thành đối tượng hình học để thực hiện các thao tác không gian khác trong MySQL.

Cú pháp chi tiết của hàm

Cú pháp của hàm GEOMCOLLFROMTEXT như sau:

GEOMCOLLFROMTEXT(wkt, [srid]);
  • wkt: Là chuỗi định dạng Well-Known Text (WKT) miêu tả đối tượng hình học.
  • srid (tuỳ chọn): Là hệ tọa độ không gian hình học. Nếu không được cung cấp, MySQL sẽ mặc định là 0.

Well-Known Text (WKT) là gì?

WKT là một định dạng văn bản đơn giản để miêu tả các đối tượng hình học. Ví dụ, một điểm có thể được thể hiện như POINT(30 10), một đường thẳng có thể là LINESTRING(30 10, 10 30, 40 40), và một đa giác có thể là POLYGON((30 10, 40 40, 20 40, 10 20, 30 10)).

Các loại đối tượng hỗ trợ

Hàm GEOMCOLLFROMTEXT() có thể làm việc với nhiều loại đối tượng hình học khác nhau, bao gồm:

  • POINT
  • LINESTRING
  • POLYGON
  • MULTIPOINT
  • MULTILINESTRING
  • MULTIPOLYGON
  • GEOMETRYCOLLECTION

Ví dụ cụ thể

Dưới đây là một số ví dụ minh họa cách sử dụng hàm GEOMCOLLFROMTEXT() trong thực tế.

1. Tạo đối tượng hình học từ chuỗi POINT

SELECT GEOMCOLLFROMTEXT('POINT(10 20)');

2. Tạo đối tượng hình học từ chuỗi LINESTRING

SELECT GEOMCOLLFROMTEXT('LINESTRING(10 20, 20 30, 40 50)');

3. Tạo đối tượng hình học từ chuỗi POLYGON

SELECT GEOMCOLLFROMTEXT('POLYGON((30 10, 40 40, 20 40, 10 20, 30 10))');

4. Tạo GEOMETRYCOLLECTION từ nhiều đối tượng khác nhau

SELECT GEOMCOLLFROMTEXT('GEOMETRYCOLLECTION(POINT(10 20), LINESTRING(10 20, 20 30))');

Sử dụng kết hợp với hàm khác

Hàm GEOMCOLLFROMTEXT() có thể được sử dụng kết hợp với các hàm khác như ST_AsText(), ST_GeometryType() để truy vấn và xử lý dữ liệu không gian.

Ví dụ: Chuyển đối tượng hình học thành văn bản

SELECT ST_AsText(GEOMCOLLFROMTEXT('POINT(10 20)'));

Ví dụ: Lấy loại hình học của đối tượng

SELECT ST_GeometryType(GEOMCOLLFROMTEXT('LINESTRING(10 20, 20 30, 40 50)'));

Kết luận

Sử dụng hàm GEOMCOLLFROMTEXT() trong MySQL giúp bạn dễ dàng làm việc với các đối tượng hình học và dữ liệu không gian. Bằng cách này, bạn có thể tạo ra và quản lý các cấu trúc không gian phức tạp từ các chuỗi định dạng WKT một cách hiệu quả.

Comments