Ví dụ mysql st_contains

Trong nhiều ứng dụng, ta phải làm việc với các địa lý dữ liệu, các dữ liệu thuộc hệ thống thông tin địa lý. Mysql cung cấp cho chúng tôi một loại dữ liệu để biểu diễn loại dữ liệu này. Spatial 1, Mysql giới thiệu có các kiểu dữ liệu tương ứng với các lớp của OpenGIS. Một số biểu tượng cho menu giá trị học tập

  • HÌNH HỌC
  • ĐIỂM
  • LINESTRING
  • POLYGON Kiểu Hình học có thể lưu trữ giá trị hình học của bất kỳ loại nào kể trên. Các loại giá trị khác nhau. Point, LineString, Polygon chỉ lưu trữ các loại giá trị cụ có thể thuộc loại đó. And other value type to save a compile file
  • ĐA ĐIỂM
  • MULTILINESTRING
  • ĐA GIÁC
  • GEOMETRYCOLLECTION Tương tự, GEOMETRYCOLLECTION có thể lưu trữ một tập hợp thuộc bất kỳ loại nào. Còn lại các loại khác chỉ lưu trữ dữ liệu cụ thể có thể thuộc loại đó

2, Hệ thống lớp HÌNH HỌC

Hệ thống lớp HÌNH HỌC được biểu diễn theo sơ đồ dưới đây

  • Hình học (không thể xác định)
    • Điểm (tức thời)
    • Đường cong (không thể xác định) + LineString (có thể ngay lập tức) _ Đường _ LinearRing
    • Bề mặt (không thể xác định) + Đa ​​giác (tức thời)
    • GeometryCollection (không thể thực hiện được) + MultiPoint (có thể thực hiện được) + MultiCurve (không thể thực hiện được) _ MultiLineString (có thể thực hiện được) + MultiSurface (không thể thực hiện được) _ MultiPolygon (có thể thực hiện được)

Không thể tạo các đối tượng thuộc các lớp noninstanceable mà chỉ tạo được các đối tượng thuộc các lớp có thể thực hiện được. Tất cả các lớp đều có các thuộc tính và các lớp thể hiện có thể có các xác nhận. Hình học là lớp cơ sở, nó là một lớp đối tượng. Các lớp có thể hiển thị của Hình học biểu diễn các đối tượng 0, ,1, 2 chiều trong không gian trục 2 chiều. Lớp cơ sở Hình học có các lớp con là Điểm, Đường cong, Bề mặt và Bộ sưu tập Hình học

  • Điểm. Đại diện cho các đối tượng vô hướng
  • Đường cong. Đại diện cho các đối tượng 1 chiều, có 1 lớp con là LineString có 2 lớp con là Line và LinearRing
  • Mặt. Được thiết kế cho các đối tượng 2 chiều, có 1 lớp con là Polygon
  • Hình HọcBộ Sưu Tập. Bao gồm các lớp chứa các đối tượng hình học 0, 1 ,2 chiều là. MultiPoint, MultiLineString, và MultiPolygon

a, Lớp hình học Hình học là lớp gốc của hệ thống, nó là 1 lớp không thể xác định được với danh sách các thuộc tính dưới đây

  • loại hình. Mỗi hình học thuộc về một lớp có thể thể hiện bất kỳ lớp nào trong hệ thống phân cấp
  • SRID. hệ thống quy chiếu cho các đối tượng hình học
  • tọa độ. level of object has been verify by the side reference system
  • bên trong, ranh giới, và bên ngoài. Mỗi hình học chiếm một vị trí bất kỳ trong không gian. ngoại thất là tất cả không gian không bị hình học này chiếm hữu, nội thất là không gian bị chiếm hữu bởi hình học này, ranh giới là bề mặt giữa nội thất và ngoại thất
  • MBR (hình chữ nhật giới hạn tối thiểu). là hình chữ nhật nhỏ nhất bao ngoài hình học được hình thành bởi các điểm. ((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))
  • kích thước. một hình học có thể các chiều. -1, 0, 1, 2
    • -1 cho một hình học rỗng
    • 0 cho một hình học không có chiều dài và không có diện tích
    • 1 cho một hình học có chiều dài khác không và diện tích bằng không
    • 2 cho một hình học với diện tích khác không

Các đối tượng Points có chiều là 0. LineString có chiều là 1, Polygon là 2

b, Lớp điểm Một điểm là một đại diện hình học cho một vị trí đơn lẻ trong không gian định vị. Ví dụ. Trong một bản đồ quy mô lớn của thế giới với nhiều thành phố, mỗi một đối tượng Điểm có thể đại diện cho 1 thành phố, trong bản đồ thành phố Điểm có thể đại diện cho một bến xe buýt Các thuộc tính của Điểm

  • X- tung value value
  • Y-giá trị hoành độ
  • Điểm được định nghĩa là một hình học vô hướng
  • Ranh giới của điểm bị trống

c, Lớp đường cong

Là hình học một chiều, được sử dụng để đại diện cho một tập hợp các điểm, Đường cong là một lớp không thể xác định được Các thuộc tính

  • Một đường cong có các tọa độ cho các điểm của nó
  • Một đường cong được định nghĩa là một hình học 1 chiều
  • Một đường cong là đơn giản nếu nó không đi qua một điểm nào đó của nó lần thứ 2, ngoại trừ trường hợp điểm bắt đầu chính là điểm cuối
  • Một đường cong bị đóng nếu điểm bắt đầu chính là điểm kết thúc
  • Một đường cong vừa là đơn giản vừa là đóng chính là một LinearRing

d, Lớp bề mặt Lớp bề mặt là một hình học 2 chiều, là một lớp không thể hiện được, nó chỉ có 1 lớp có thể thể hiện duy nhất là Đa giác. Một đa giác là một đa giác, là vùng không giới hạn bởi 1 đường ranh giới bên ngoài, bên ngoài, không hoặc nhiều ranh giới bên trong. Trong bản đồ khu vực, một đa giác có thể là 1 khu rừng, 1 quận hoặc một khu dân cư

3, Sử dụng dữ liệu không gian

a, Các định dạng dữ liệu không gian được hỗ trợ Có 2 cách để biểu diễn một đối tượng hình học trong truy vấn

  • Định dạng Văn bản Nổi tiếng (WKT). biểu diễn dữ liệu cấu hình học dưới dạng ASCII Ví dụ. MỘT ĐIỂM
    POINT(15 20)
    
    mysql> SELECT ST_X(Point(15, 20));
    +---------------------+
    | ST_X(POINT(15, 20)) |
    +---------------------+
    |                  15 |
    +---------------------+

    mysql> SELECT ST_X(ST_GeomFromText('POINT(15 20)'));
    +---------------------------------------+
    | ST_X(ST_GeomFromText('POINT(15 20)')) |
    +---------------------------------------+
    |                                    15 |
    +---------------------------------------+

Một LineString với 4 điểm

    LINESTRING(0 0, 10 10, 20 25, 50 60)

Một đa giác với 1 vòng ngoài và 1 vòng trong

    POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))

Một đa điểm với 3 điểm

    MULTIPOINT(0 0, 20 20, 60 60)
  • Định dạng nhị phân nổi tiếng (WKB). biểu diễn dữ liệu cấu hình học dưới dạng nhị phân Ví dụ
    0101000000000000000000F03F000000000000F03F
    Cụ thể:
    Byte order:   01
    WKB type:     01000000
    X coordinate: 000000000000F03F
    Y coordinate: 000000000000F03F

b, Xử lý các cột không gian Để tạo một bảng trong Mysql với 1 cột không gian

    CREATE TABLE geom (g GEOMETRY);

Để thêm hoặc xóa một cột không gian trong một bảng đang tồn tại

    ALTER TABLE geom ADD pt POINT;
    ALTER TABLE geom DROP pt;

Giá trị được lưu trữ trong cơ sở dữ liệu theo định dạng nội bộ của hình học, nhưng chúng ta có thể chuyển đổi chúng sang các định dạng khác như WKT hay WKB. Để chèn giá trị vào trong một cột không gian bằng cách chuyển đổi 1 giá trị WKT thành định dạng nội bộ của hình học

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

    SET @g = 'POINT(1 1)';
    INSERT INTO geom VALUES (ST_GeomFromText(@g));
    
    SET @g = ST_GeomFromText('POINT(1 1)');
    INSERT INTO geom VALUES (@g);
    
    SET @g = 'LINESTRING(0 0,1 1,2 2)';
    INSERT INTO geom VALUES (ST_GeomFromText(@g));

    SET @g = 'POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))';
    INSERT INTO geom VALUES (ST_GeomFromText(@g));

    SET @g =
    'GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))';
    INSERT INTO geom VALUES (ST_GeomFromText(@g));
    
    SET @g = 'POINT(1 1)';
    INSERT INTO geom VALUES (ST_PointFromText(@g));

    SET @g = 'LINESTRING(0 0,1 1,2 2)';
    INSERT INTO geom VALUES (ST_LineStringFromText(@g));

    SET @g = 'POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))';
    INSERT INTO geom VALUES (ST_PolygonFromText(@g));

    SET @g =
    'GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))';
    INSERT INTO geom VALUES (ST_GeomCollFromText(@g));

Convert from WKB value

________số 8

Giá trị hình học được lưu trữ có thể được tìm nạp theo đúng định dạng nội bộ của nó. You can also convert to WKT or WKB

    CREATE TABLE geom2 (g GEOMETRY) SELECT g FROM geom;

    SELECT ST_AsText(g) FROM geom;

    SELECT ST_AsBinary(g) FROM geom;

Trên đây là những khái niệm cơ bản khi làm quen với kiểu dữ liệu không gian trong Mysql. Ở bài tiếp theo chúng ta sẽ tìm hiểu về hàm và toán tử của kiểu dữ liệu này. Nguồn. https. // nhà phát triển. mysql. com/doc/refman/5. 7/vi/tiện ích mở rộng không gian. html