postgis kullanım kılavuzu
postgis
, PostgreSQL'ün coğrafi uzantı modülüdür, PostgreSQL'e coğrafi uzamsal veri depolama ve sorgulama yeteneklerini kazandıran geometrik ve coğrafi uzamsal türler ve işlevler sağlar. Bu makale, ServBay'da postgis
'in nasıl kurulacağını ve kullanılacağını ayrıntılı olarak açıklayacaktır.
postgis'in kurulumu
ServBay, postgis
uzantı modülüyle birlikte gelir; tek yapmanız gereken, bu uzantıyı veritabanınızda etkinleştirmektir. İşte postgis
'i etkinleştirme adımları:
PostgreSQL veritabanına bağlanın:
bashpsql -U your_username -d your_database
1Uzantıyı oluşturun:
sqlCREATE EXTENSION postgis;
1Kurulumu doğrulayın:
sql\dx
1
postgis'in yapılandırılması
postgis
'i etkinleştirdikten sonra, coğrafi uzamsal veri türlerini oluşturabilir ve yönetebilir ve çeşitli coğrafi uzamsal işlevler kullanabilirsiniz.
Coğrafi uzamsal tablo oluşturma
İşte coğrafi uzamsal veri içeren bir tablo oluşturmanın örneği.
Tablo oluşturma:
sqlCREATE TABLE locations ( id SERIAL PRIMARY KEY, name VARCHAR(100), geom GEOMETRY(Point, 4326) );
1
2
3
4
5Örnek veri ekleme:
sqlINSERT INTO locations (name, geom) VALUES ('Location A', ST_GeomFromText('POINT(116.4074 39.9042)', 4326)), ('Location B', ST_GeomFromText('POINT(121.4737 31.2304)', 4326));
1
2
3
Coğrafi uzamsal indeks oluşturma
Sorgu performansını artırmak için coğrafi uzamsal sütunlara indeks oluşturmanız önerilir.
- GIST indeksi oluşturma:sql
CREATE INDEX idx_geom ON locations USING GIST (geom);
1
postgis ile coğrafi uzamsal sorgulama
İşte bazı yaygın coğrafi uzamsal sorgu örnekleri.
Mesafe sorgulama
- İki nokta arasındaki mesafeyi sorgulama:sql
SELECT ST_Distance( ST_GeomFromText('POINT(116.4074 39.9042)', 4326), ST_GeomFromText('POINT(121.4737 31.2304)', 4326) );
1
2
3
4
İçerme ilişkisi sorgulama
- Bir noktanın belirli bir alanda olup olmadığını sorgulama:sql
SELECT name FROM locations WHERE ST_Contains( ST_GeomFromText('POLYGON((116.0 39.0, 117.0 39.0, 117.0 40.0, 116.0 40.0, 116.0 39.0))', 4326), geom );
1
2
3
4
5
En yakın komşu sorgulama
- Bir nokta yakınında bulunan yerleri sorgulama:sql
SELECT name FROM locations ORDER BY geom <-> ST_GeomFromText('POINT(116.4074 39.9042)', 4326) LIMIT 5;
1
2
3
postgis ile coğrafi uzamsal analiz
postgis
, zengin coğrafi uzamsal analiz işlevleri sağlar; işte bazı yaygın analiz işlevleri.
Alan analizi
- Bir alan oluşturma:sql
SELECT ST_Buffer(geom, 0.01) FROM locations WHERE name = 'Location A';
1
Kesişim analizi
- İki geometrik nesnenin kesişimini sorgulama:sql
SELECT ST_Intersection( ST_GeomFromText('POLYGON((116.0 39.0, 117.0 39.0, 117.0 40.0, 116.0 40.0, 116.0 39.0))', 4326), geom ) FROM locations WHERE name = 'Location A';
1
2
3
4
Birleştirme analizi
- Birden fazla geometrik nesneyi birleştirme:sql
SELECT ST_Union(geom) FROM locations;
1
Coğrafi uzamsal verileri görselleştirme
postgis
'teki coğrafi uzamsal verileri görselleştirmek için çeşitli GIS araçlarını (QGIS gibi) veya web harita servislerini (Leaflet, OpenLayers gibi) kullanabilirsiniz.
QGIS kullanma
PostgreSQL veritabanına bağlanma:
- QGIS'i açın
- "Veri Kaynağı Yöneticisi" -> "PostGIS" i seçin
- Veritabanı bağlantı bilgilerini girin ve bağlanın
Coğrafi uzamsal verileri yükleme:
- Yüklemek istediğiniz tabloyu veya görünümü seçin
- "Ekle" düğmesine tıklayın
Leaflet kullanma
- Web haritası oluşturun:html
<!DOCTYPE html> <html> <head> <title>Leaflet PostGIS Example</title> <link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" /> <script src="https://unpkg.com/leaflet/dist/leaflet.js"></script> </head> <body> <div id="map" style="width: 600px; height: 400px;"></div> <script> var map = L.map('map').setView([39.9042, 116.4074], 10); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' }).addTo(map); // PostGIS verilerinden bir işaret ekleyin var marker = L.marker([39.9042, 116.4074]).addTo(map) .bindPopup('Location A') .openPopup(); </script> </body> </html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sonuç
postgis
, PostgreSQL'de yüksek performanslı coğrafi uzamsal veri depolama ve sorgulama olanağı sağlayan güçlü bir coğrafi uzantı modülüdür. ServBay, postgis
uzantı modülü ile birlikte gelir; kurulum ve yapılandırma adımlarını izledikten sonra kullanmaya başlayabilirsiniz. Çeşitli coğrafi uzamsal sorgulama ve analiz işlevleri ile coğrafi uzamsal verilerinizi daha verimli kullanarak uygulamalarınıza güvenilir veri tabanı desteği sağlayabilirsiniz.