إن كانت لديك قاعدة PostgreSQL مثبتة، فأنت على بعد أمر واحد من قاعدة بيانات مكانية.
1. فعّل الامتداد
CREATE EXTENSION IF NOT EXISTS postgis;
SELECT postgis_full_version();
2. أنشئ جدولًا بعمود هندسي
CREATE TABLE places (
id serial PRIMARY KEY,
name text,
geom geometry(Point, 4326)
);
الرقم 4326 هو رمز نظام الإحداثيات WGS 84 (خطوط الطول والعرض).
3. أضف بعض النقاط
INSERT INTO places (name, geom) VALUES
('أ', ST_SetSRID(ST_MakePoint(35.50, 33.89), 4326)),
('ب', ST_SetSRID(ST_MakePoint(36.29, 33.51), 4326)),
('ج', ST_SetSRID(ST_MakePoint(35.93, 31.95), 4326));
لاحظ الترتيب: خط الطول أولًا ثم خط العرض (x ثم y).
4. احسب المسافات بالكيلومترات
SELECT a.name, b.name,
round((ST_Distance(a.geom::geography, b.geom::geography) / 1000)::numeric, 1) AS km
FROM places a JOIN places b ON a.id < b.id
ORDER BY km;
التحويل إلى geography يجعل PostGIS يحسب المسافة على سطح الأرض بالأمتار، بدل الدرجات.
5. اعرض الجدول في QGIS
من Browser افتح PostgreSQL، وأنشئ اتصالًا جديدًا بقاعدتك، ثم اسحب جدول places إلى الخريطة. أي تعديل تجريه في QGIS يُحفظ مباشرة في القاعدة.
إلى أين بعد ذلك؟
- ورشة «مقدمة إلى PostGIS» للتدرّب على بيانات حقيقية.
- دليل PostGIS الكامل مرجعًا لكل دالة.
