Home › Roadmap › GIS Fundamentals › Part 11

PostGIS Spatial SQL

📘 ডাটাবেসে স্পেশিয়াল কুয়েরি।

🌐 Spatial queries inside a database.

🗺️ জিআইএস মৌলিক🎚 Advanced📍 Part 11 / 12🧩 3 সাব-টপিক
🗺️
1

ধারণা · Concept

কী এবং কেন
📘 বাংলা ব্যাখ্যা:
ডাটাবেসে স্পেশিয়াল কুয়েরি।
🌐 English:
Spatial queries inside a database.

🗂 কোথায় পড়ে

৫. জিওএআই → জিআইএস মৌলিক → PostGIS Spatial SQL

🎯 এই শাখার লক্ষ্য

Handle CRS, vector/raster data, spatial SQL and web maps

🧰 টুলস

QGIS, GeoPandas, PostGIS, Leaflet

🪜

ধাপে ধাপে শিখুন · Step-by-step

কেন শিখবেন → কীভাবে শিখবেন → উদাহরণ → সাধারণ ভুল
💡 কেন গুরুত্বপূর্ণ?

বড় স্থানিক ডেটা ডাটাবেসে রেখে SQL দিয়ে দ্রুত বিশ্লেষণ।

  1. ধাপ 1
    PostgreSQL-এ CREATE EXTENSION postgis; geometry কলাম
  2. ধাপ 2
    ফাংশন: ST_Within, ST_Intersects, ST_Distance, ST_Buffer, ST_Area
  3. ধাপ 3
    স্পেশিয়াল ইনডেক্স: CREATE INDEX ... USING GIST(geom)
  4. ধাপ 4
    QGIS ও GeoPandas (read_postgis) সরাসরি সংযোগ

🧪 বাস্তব উদাহরণ

SELECT d.name, COUNT(h.*) FROM districts d JOIN hospitals h ON ST_Within(h.geom, d.geom) GROUP BY d.name;

⚠️ সাধারণ ভুল

GIST ইনডেক্স ছাড়া বড় টেবিলে স্থানিক JOIN—অত্যন্ত ধীর।

🔑 মূল শব্দ (Key terms)

PostGISspatial SQLST_WithinST_DistanceGiST index

3

সাব-টপিক ও বিস্তারিত · Sub-topics

টপিক → সাব-টপিক → সাব-সাব টপিক
11.1 ST_Distance, ST_Within, ST_Buffer
11.2 স্পেশিয়াল ইনডেক্স (GiST)
11.3 PostGIS + QGIS সংযোগ
🎬

ভিডিও · Videos (বাংলা ও English)

ক্লিক করলে সাইটের ভেতরেই ফ্লোটিং প্লেয়ারে চলবে · ভিডিও MySQL-এ সংরক্ষিত
💻

হাতে-কলমে · Try it (GIS Fundamentals)

এডিট করে Run চাপুন · Ctrl+Enter
import numpy as np, matplotlib.pyplot as plt
# Buffer & point-in-polygon without GIS libs
poly=np.array([[90.3,23.7],[90.5,23.7],[90.5,23.9],[90.3,23.9]])  # Dhaka bbox (lon,lat)
pts=np.random.default_rng(1).uniform([90.2,23.6],[90.6,24.0],(60,2))
inside=(pts[:,0]>=90.3)&(pts[:,0]<=90.5)&(pts[:,1]>=23.7)&(pts[:,1]<=23.9)
print("Points inside polygon:",inside.sum(),"/",len(pts))
plt.fill(*poly.T,alpha=.25); plt.scatter(*pts.T,c=np.where(inside,"#059669","#ef4444"),s=18)
plt.gca().set_aspect(1); plt.title("Point-in-polygon (spatial join idea)"); plt.show()
❓

সেল্ফ-চেক · Self check

🔗

সংযুক্ত কনসেপ্ট · Connected concepts

← আগের টপিকWeb Mapping Leaflet Foliumপরের টপিক →Cartography & Map Design
🎬 Video