pgRouting Kullanım Kılavuzu
pgRouting
, PostgreSQL ve PostGIS'in bir genişletme modülüdür ve trafik, lojistik ve ağ analizleri gibi alanlarda kullanılan çeşitli yönlendirme algoritmaları ve işlevsellikler sunar. Bu rehberde, ServBay üzerinde pgRouting
'in nasıl kurulacağı ve kullanılacağı detaylı bir şekilde anlatılmaktadır.
pgRouting Kurulumu
ServBay, pgRouting
genişletme modülü ile birlikte gelir, sadece veritabanında etkinleştirmeniz gerekmektedir. İşte pgRouting
'i etkinleştirmenin adımları:
PostgreSQL veritabanına bağlanın:
bashpsql -U your_username -d your_database
1Genişletme oluşturun:
sqlCREATE EXTENSION pgrouting;
1Kurulumu doğrulayın:
sql\dx
1
pgRouting Yapılandırması
pgRouting
etkinleştirildikten sonra, yol ağı verilerini oluşturabilir ve çeşitli yönlendirme algoritmalarını kullanarak analiz yapabilirsiniz.
Yol Ağı Veri Tablosu Oluşturma
Aşağıda, yol ağı verilerini içeren bir tablonun nasıl oluşturulacağını gösteren bir örnek bulunmaktadır.
Tablo oluşturun:
sqlCREATE TABLE ways ( id SERIAL PRIMARY KEY, source INTEGER, target INTEGER, cost DOUBLE PRECISION, reverse_cost DOUBLE PRECISION, geom GEOMETRY(LineString, 4326) );
1
2
3
4
5
6
7
8Örnek verileri ekleyin:
sqlINSERT INTO ways (source, target, cost, reverse_cost, geom) VALUES (1, 2, 1.0, 1.0, ST_GeomFromText('LINESTRING(116.4074 39.9042, 116.4084 39.9052)', 4326)), (2, 3, 1.0, 1.0, ST_GeomFromText('LINESTRING(116.4084 39.9052, 116.4094 39.9062)', 4326)), (3, 4, 1.0, 1.0, ST_GeomFromText('LINESTRING(116.4094 39.9062, 116.4104 39.9072)', 4326));
1
2
3
4
Topoloji Oluşturma
Yönlendirme analizi yapmadan önce, yol ağı verileri için bir topoloji oluşturmanız gerekmektedir.
- Topoloji oluşturun:sql
SELECT pgr_createTopology('ways', 0.00001, 'geom', 'id');
1
pgRouting Kullanarak Yönlendirme Analizi
Aşağıda bazı yaygın yönlendirme analizi örnekleri bulunmaktadır.
En Kısa Yol
- En kısa yolu sorgulayın:sql
SELECT * FROM pgr_dijkstra( 'SELECT id, source, target, cost FROM ways', 1, 4, directed := true );
1
2
3
4
Gezgin Satıcı Problemi
- Gezgin satıcı problemini çözün:sql
SELECT * FROM pgr_tsp( 'SELECT id, x::float8 AS x, y::float8 AS y FROM ways_vertices_pgr', start_id := 1 );
1
2
3
4
Hizmet Alanı Analizi
- Hizmet alanı analizi:sql
SELECT * FROM pgr_drivingDistance( 'SELECT id, source, target, cost FROM ways', 1, 2, directed := true );
1
2
3
4
Yönlendirme Sonuçlarını Görselleştirme
pgRouting
'in sonuçlarını görselleştirmek için çeşitli GIS araçları (ör. QGIS) veya web harita hizmetleri (ör. Leaflet, OpenLayers) kullanabilirsiniz.
QGIS Kullanarak
PostgreSQL veritabanına bağlanın:
- QGIS'i açın
- "Veri Kaynağı Yöneticisi" -> "PostGIS" seçin
- Veritabanı bağlantı bilgilerini girin ve bağlanın
Yol ağı verilerini yükleyin:
- Yüklemek istediğiniz tablo veya görünümü seçin
- "Ekle" düğmesine tıklayın
Leaflet Kullanarak
- Web harita oluşturun:html
<!DOCTYPE html> <html> <head> <title>Leaflet pgRouting Örneği</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], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' }).addTo(map); // pgRouting verilerinden bir çokgen ekleyin var polyline = L.polyline([ [39.9042, 116.4074], [39.9052, 116.4084], [39.9062, 116.4094], [39.9072, 116.4104] ]).addTo(map); </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
23
24
25
Özet
pgRouting
, PostgreSQL ile yüksek verimli yönlendirme çözümleri sunan güçlü bir genişletme modülüdür. ServBay, pgRouting
genişletme modülü ile birlikte gelir; sadece bu kılavuzdaki adımları izleyerek kurulum ve yapılandırmayı yapmanız yeterlidir. Çeşitli yönlendirme algoritmaları ve analiz işlevsellikleri ile yol ağı verilerinden en iyi şekilde faydalanabilir, uygulamalarınıza güvenilir veritabanı desteği sağlayabilirsiniz.