دليل استخدام pgRouting
pgRouting
هو وحدة تمديد ل PostgreSQL وPostGIS، توفر مجموعة متنوعة من خوارزميات التوجيه والوظائف، مثل أقصر مسار، مشكلة البائع المتجول، وتحليل مناطق الخدمة، وتستخدم في مجالات مثل النقل، والخدمات اللوجستية، وتحليل الشبكات. ستوضح هذه الوثيقة بالتفصيل كيفية تثبيت واستخدام pgRouting
في ServBay.
تثبيت pgRouting
يتم تضمين وحدة pgRouting
التوسعية بالفعل في ServBay؛ تحتاج فقط إلى تمكينها في قاعدة البيانات الخاصة بك. فيما يلي خطوات تمكين pgRouting
:
الاتصال بقاعدة بيانات PostgreSQL:
bashpsql -U your_username -d your_database
1إنشاء التمديد:
sqlCREATE EXTENSION pgrouting;
1التحقق من التثبيت:
sql\dx
1
إعداد pgRouting
بمجرد تمكين pgRouting
، يمكنك إنشاء وإدارة بيانات شبكة الطرق واستخدام خوارزميات التوجيه المختلفة لإجراء التحليل.
إنشاء جدول بيانات شبكة الطرق
فيما يلي مثال يوضح كيفية إنشاء جدول يحتوي على بيانات شبكة الطرق.
إنشاء الجدول:
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إدخال بيانات المثال:
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
إنشاء الطوبولوجيا
قبل إجراء تحليل التوجيه، تحتاج إلى إنشاء الطوبولوجيا لبيانات شبكة الطرق.
- إنشاء الطوبولوجيا:sql
SELECT pgr_createTopology('ways', 0.00001, 'geom', 'id');
1
استخدام pgRouting لإجراء تحليل التوجيه
فيما يلي بعض أمثلة تحليل التوجيه الشائعة.
أقصر مسار
- استعلام أقصر مسار:sql
SELECT * FROM pgr_dijkstra( 'SELECT id, source, target, cost FROM ways', 1, 4, directed := true );
1
2
3
4
مشكلة البائع المتجول
- حل مشكلة البائع المتجول: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
تحليل مناطق الخدمة
- تحليل مناطق الخدمة:sql
SELECT * FROM pgr_drivingDistance( 'SELECT id, source, target, cost FROM ways', 1, 2, directed := true );
1
2
3
4
تصور نتائج التوجيه
يمكنك استخدام أدوات GIS المختلفة (مثل QGIS) أو خدمات الخرائط عبر الويب (مثل Leaflet, OpenLayers) لتصور نتائج pgRouting
.
استخدام QGIS
الاتصال بقاعدة بيانات PostgreSQL:
- افتح QGIS
- اختر "مدير المصادر" -> "PostGIS"
- أدخل معلومات الاتصال بقاعدة البيانات واتصل بها
تحميل بيانات شبكة الطرق:
- اختر الجدول أو العرض الذي ترغب في تحميله
- اضغط على زر "إضافة"
استخدام Leaflet
- إنشاء خريطة ويب:html
<!DOCTYPE html> <html> <head> <title>Leaflet pgRouting 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], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' }).addTo(map); // Add a polyline from pgRouting data 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
الخلاصة
pgRouting
هي وحدة تمديد قوية للتوجيه، من خلال تكوين واستخدام بسيطين، يمكنك إجراء تحليل توجيه فعال في PostgreSQL. تم تضمين وحدة pgRouting
التوسعية بالفعل في ServBay، تحتاج فقط إلى اتباع خطوات التثبيت والتكوين المذكورة في هذه الوثيقة للبدء في استخدامها. من خلال مجموعة متنوعة من الخوارزميات والوظائف التحليلية للتوجيه، يمكنك تحقيق الاستفادة القصوى من بيانات شبكة الطرق لدعم التطبيقات الخاصة بك بقاعدة بيانات موثوقة.