⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

PG扩展PostGIS空间数据库

学习PostGIS安装、空间数据类型与常见GIS查询 · 难度:入门 · +15XP

PostGIS概述

PostGIS是PostgreSQL的空间扩展,遵循OGC标准,支持地理空间数据存储、索引和查询。广泛用于GIS、LBS和地理分析系统。

安装与启用

CREATE EXTENSION postgis;
SELECT postgis_full_version();

核心数据类型

类型说明
GEOMETRY通用几何类型(点、线、面等)
GEOGRAPHY地理坐标系类型(基于WGS84)

创建空间表

CREATE TABLE locations (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    geom GEOMETRY(Point, 4326)
);

-- 插入数据(使用ST_GeomFromText) INSERT INTO locations (name, geom) VALUES ('北京天安门', ST_GeomFromText('POINT(116.397 39.908)', 4326));

空间查询示例

-- 计算距离
SELECT ST_Distance(
    (SELECT geom FROM locations WHERE name='北京天安门'),
    (SELECT geom FROM locations WHERE name='上海东方明珠')
) / 1000 AS distance_km;

-- 范围查询:查找100公里内的点 SELECT name FROM locations WHERE ST_DWithin( geom, ST_GeomFromText('POINT(116.4 39.9)', 4326), 100000 );

空间索引

CREATE INDEX idx_locations_geom ON locations USING GIST (geom);

练习提示

导入一个城市POI数据集,使用ST_Within查找特定多边形内的所有点。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 131 篇
0 完成
🔥 0