PostGIS ile Coğrafi Mekânsal INDEX'leme
PostGIS eklentisini ekleyin, geometri/coğrafya verilerini depolayın ve mekânsal ilişkileri GiST INDEX'leriyle sorgulayın.
PostGIS ile Coğrafi Mekânsal INDEX'leme, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
PostGIS Nedir?
Herhangi bir açık kaynaklı DB'deki en güçlü coğrafi uzamsal eklentidir. GEOMETRY/GEOGRAPHY türlerini, yüzlerce uzamsal işlevi ve hızlı uzamsal sorgular için GiST/SP-GiST dizinlerini ekler.
PostGIS'i Etkinleştirme
Bu bir contrib eklentisidir:
CREATE EXTENSION postgis;
SELECT PostGIS_Version();GEOMETRY ve GEOGRAPHY
- GEOMETRY — düzlemseldir, hızlıdır ve koordinat sisteminin birimlerini kullanır (genellikle metre / derece)
- GEOGRAPHY — küresel dünyayı temel alır, daha yavaştır ve birimleri her zaman metredir
Farklı bölgelerden gelen verilerle "dünya üzerindeki mesafeler" için GEOGRAPHY'yi; izdüşürülmüş koordinat sistemleri (bölgesel GIS, hızlı işlemler) için GEOMETRY'yi seçin.
Noktaları Depolama
Yaygın yaklaşım: enlem/boylamı bir GEOGRAPHY noktası olarak depolamaktır:
CREATE TABLE places (
id BIGSERIAL PRIMARY KEY,
name TEXT NOT NULL,
location GEOGRAPHY(POINT, 4326)
);
INSERT INTO places (name, location)
VALUES ('Berlin', ST_GeogFromText('SRID=4326;POINT(13.405 52.520)'));SRID
"Spatial Reference ID", koordinat sistemini tanımlar. WGS84 (4326 kimliği), GPS enlem/boylamı için standarttır.
GiST Uzamsal Dizini
GEOMETRY sütununuz için GiST ile dizin oluşturun:
CREATE INDEX places_location_idx ON places USING GIST (location);
-- Now spatial filters are fast.En Yakın Komşu: <->
Dizinle birlikte kullanılan <-> KNN işleci, en yakın sonuçları milisaniyeler içinde döndürür:
SELECT name, ST_Distance(location, ST_GeogFromText('SRID=4326;POINT(13.4 52.5)')) AS m
FROM places
ORDER BY location <-> ST_GeogFromText('SRID=4326;POINT(13.4 52.5)')
LIMIT 10;Mesafe İçinde
Bir noktanın 2 km içindeki yerleri bulun:
SELECT name FROM places
WHERE ST_DWithin(
location,
ST_GeogFromText('SRID=4326;POINT(13.4 52.5)'),
2000 -- meters
);Çokgenler ve Alanlar
Çokgenleri (şehir sınırları, teslimat bölgeleri) depolayın ve sorgulayın:
CREATE TABLE zones (
id BIGSERIAL PRIMARY KEY,
name TEXT,
area GEOGRAPHY(POLYGON, 4326)
);
-- Find places inside a zone:
SELECT p.name FROM places p
JOIN zones z ON ST_Within(p.location::GEOMETRY, z.area::GEOMETRY)
WHERE z.name = 'Mitte';Kesişen, İçeren, İçinde
Zengin bir uzamsal koşul kümesi: ST_Intersects, ST_Contains, ST_Within, ST_Touches, ST_Disjoint, ST_Equals.
GeoJSON Yükleme
GeoJSON'u doğrudan PostGIS'e aktarın:
INSERT INTO zones (name, area)
SELECT 'Mitte', ST_GeogFromGeoJSON('{"type":"Polygon","coordinates":[...]}');Vektör Döşemesi Oluşturma
PostGIS 3.0+, doğrudan ST_AsMVT ile Mapbox vektör döşemeleri oluşturabilir — harita arayüzlerini doğrudan DB'den güçlendirir.
Özet
PostGIS, Postgres'i ciddi bir GIS altyapısına dönüştürür.
- İzdüşürülmüş sistemler için GEOMETRY, dünya üzerindeki mesafeler için GEOGRAPHY
- Uzamsal filtreler ve KNN için GiST dizini
- ST_DWithin, ST_Distance, ST_Within
- SRID 4326 = WGS84 enlem/boylam
Hızlı Kontrol
Kullanıcı konumlarını GEOGRAPHY(POINT) olarak depoluyorsunuz. "5 km içindekileri bul" sorgularını hangi dizin türü hızlandırır?
Sıkça Sorulan Sorular
“PostGIS ile Coğrafi Mekânsal INDEX'leme” dersi ücretsiz mi?
Evet — “PostGIS ile Coğrafi Mekânsal INDEX'leme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“PostGIS ile Coğrafi Mekânsal INDEX'leme” dersinde ne öğreneceğim?
PostGIS eklentisini ekleyin, geometri/coğrafya verilerini depolayın ve mekânsal ilişkileri GiST INDEX'leriyle sorgulayın. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“PostGIS ile Coğrafi Mekânsal INDEX'leme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Benzerlik Eşleştirme için Üçlü Arama (pg_trgm)
- tsvector ve GIN ile Tam Metin Arama
- PostGIS ile Coğrafi Mekânsal INDEX'leme
- pgvector ile Vektör Araması