最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

[Day 25] 在資料庫中操作空間資料-PostGIS

XAMPP下载 admin 770浏览 0评论
 前言
PostGIS是PostgreSQL基於OpenGIS中的SFS規範(Simple Feature Specification for SQL)所實作出來的地理物件函式庫,而PostgreSQL則是一個關聯式資料庫的自由軟體(BSD license),

跟PostGIS類似的東西相當於MS SQL Server中的SQL Spatial、Oracle spatial、MySQL spatial。

PostGIS在地理空間運算的實作function非常多,也可以與QGIS等軟體做結合。

安裝
PostGIS安裝可以參考官網,各種OS有不同的安裝方法,例如Mac使用Homebrew、Windows則有安裝檔等等。
也可以在DockerHub找PostGIS的image,用Docker啟用一個PostGIS環境,做一些測試。

操作
PostGIS基於PostgreSQL當然可以使用psql或是pgadmin等工具及UI
tool,另外,QGIS對於PostGIS支援程度很高,有興趣者可以多研究喔!

建立table
產生一個table

CREATE TABLE tennis (
name VARCHAR(20),
city VARCHAR(10)
);
使用AddGeometryColumn增加空間欄位,指定坐標系統為EPSG:4326 2D。
SELECT AddGeometryColumn (‘topology’,’tennis’,’geom’,4326,’POINT’,2);

使用ST_GeomFromTextinset資料資料

例如

INSERT INTO topology.tennis(
name, city, geom)
VALUES (‘前鎮高中網球場’, ‘高雄市’, ST_GeomFromText(‘POINT(120.318735 22.589452)’, 4326));

查詢
PostGIS有很多空間格式的function,KML,geojson,GML等等

ST_AsGML
ST_AsGeoJSON
ST_AsKML
例如:

select name, city, ST_AsKML(geom)  FROM  topology.tennis
空間查詢會用到的常見方法舉幾個例子:

ST_Distance – 計算距離
ST_Intersection – 計算兩個幾何交會的部分
ST_Intersects: 判斷是否交會
ST_Length: 計算長度(polyline)
其實PostGIS的地理空間運算Funtion非常多,
涵蓋了raster及vector操作,可以參考官方文件喔!

转载请注明:XAMPP中文组官网 » [Day 25] 在資料庫中操作空間資料-PostGIS

您必须 登录 才能发表评论!