萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 空間數據類型全覽:Geometry 體系與單值/多值類型對照表

單值幾何類型(對應 OpenGIS 簡單要素)

多值集合類型

類型說明典型用途
GEOMETRY任意幾何值的通用容器列類型不確定、混合存儲
POINT單一坐標點GPS 定位、POI 標記
LINESTRING有序點序列形成的線道路、軌跡、管線
POLYGON外環 + 0~N 內環(洞)行政區劃、地塊、圍欄
類型成員限制典型用途
MULTIPOINT僅 POINT一組無序坐標點(如門店群)
MULTILINESTRING僅 LINESTRING路網、河流水系
MULTIPOLYGON僅 POLYGON多塊地塊(如離散行政區)
GEOMETRYCOLLECTION任意幾何類型混合異構幾何對象聚合

關鍵特性

  • 所有類型支援 **SRID (Spatial Reference System Identifier)**,預設 0(平面笛卡爾),常用 4326 (WGS84 經緯度)。
  • 空間索引(SPATIAL INDEX)僅支援 **MyISAM / InnoDB (5.7.5+)**,需列為 NOT NULL。
  • 函數族:ST_Contains、ST_Distance、ST_Intersection、ST_AsGeoJSON 等 100+ GIS 函數。

建表示例

CREATE TABLE pois (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100),
  location POINT NOT NULL SRID 4326,
  area POLYGON SRID 4326,
  SPATIAL INDEX idx_location (location)
) ENGINE=InnoDB;

插入與查詢

INSERT INTO pois (name, location)
VALUES ('Taipei 101', ST_GeomFromText('POINT(121.5645 25.0340)', 4326));

SELECT name, ST_AsText(location) FROM pois
WHERE ST_Distance(location, ST_GeomFromText('POINT(121.56 25.03)', 4326)) < 1000;
copyright © 萬盛學電腦網 all rights reserved