- Timestamp:
- 02/04/2012 02:38:35 (13 years ago)
- Location:
- trunk/workshop-routing-foss4g/web
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/workshop-routing-foss4g/web/php/pgrouting.php
r76 r80 1 1 <?php 2 2 3 // Database connection settings3 // Paramétrage de la connexion à la base de données 4 4 define("PG_DB" , "routing"); 5 5 define("PG_HOST", "localhost"); … … 8 8 define("TABLE", "ways"); 9 9 10 // R etrieve start point10 // Récupérer le point de départ 11 11 $start = split(' ',$_REQUEST['startpoint']); 12 12 $startPoint = array($start[0], $start[1]); 13 13 14 // R etrieve end point14 // Récupérer le point d'arrivée 15 15 $end = split(' ',$_REQUEST['finalpoint']); 16 16 $endPoint = array($end[0], $end[1]); … … 20 20 <?php 21 21 22 // Find the nearest edge22 // Trouver le tronçon le plus proche 23 23 $startEdge = findNearestEdge($startPoint); 24 24 $endEdge = findNearestEdge($endPoint); 25 25 26 // F UNCTION findNearestEdge26 // FONCTION findNearestEdge 27 27 function findNearestEdge($lonlat) { 28 28 29 // Conne ct to database29 // Connexion à la base de données 30 30 $con = pg_connect("dbname=".PG_DB." host=".PG_HOST." user=".PG_USER); 31 31 … … 48 48 $edge['the_geom'] = pg_fetch_result($query, 0, 3); 49 49 50 // Close database connection50 // Fermer la connexion 51 51 pg_close($con); 52 52 … … 58 58 <?php 59 59 60 // Select the routing algorithm60 // Choisir un algorithme de parcours 61 61 switch($_REQUEST['method']) { 62 62 … … 106 106 break; 107 107 108 } // closeswitch108 } // fin switch 109 109 110 // Conne ct to database110 // Connexion à la base de données 111 111 $dbcon = pg_connect("dbname=".PG_DB." host=".PG_HOST." user=".PG_USER); 112 112 113 // Perform database query113 // Exécuter une requête 114 114 $query = pg_query($dbcon,$sql); 115 115 … … 118 118 <?php 119 119 120 // Re turn route asGeoJSON120 // Renvoit un chemin au format GeoJSON 121 121 $geojson = array( 122 122 'type' => 'FeatureCollection', … … 124 124 ); 125 125 126 // A dd edges to GeoJSON array126 // Ajouter un tronçon au tableau GeoJSON 127 127 while($edge=pg_fetch_assoc($query)) { 128 128 … … 140 140 ); 141 141 142 // A dd feature array to feature collection array142 // Ajouter un tableau d'éléments au tableau de collection d'éléments 143 143 array_push($geojson['features'], $feature); 144 144 } 145 145 146 146 147 // Close database connection147 // Fermeture de la connexion 148 148 pg_close($dbcon); 149 149 150 // Re turn routing result150 // Renvoyer le résultat 151 151 header('Content-type: application/json',true); 152 152 echo json_encode($geojson); -
trunk/workshop-routing-foss4g/web/routing-0.html
r76 r80 2 2 <head> 3 3 4 <title> A Basic GeoExt Page</title>4 <title>Une page GeoExt de base</title> 5 5 <script src="ext/adapter/ext/ext-base.js" type="text/javascript"></script> 6 6 <script src="ext/ext-all.js" type="text/javascript"></script> -
trunk/workshop-routing-foss4g/web/routing-final.html
r76 r80 2 2 <head> 3 3 4 <title> A Basic GeoExt Page</title>4 <title>Une page GeoExt de base</title> 5 5 <script src="ext/adapter/ext/ext-base.js" type="text/javascript"></script> 6 6 <script src="ext/ext-all.js" type="text/javascript"></script> … … 17 17 <script type="text/javascript"> 18 18 19 // global projection objects (uses the proj4js lib)19 // Objets globaux projection (utilise la librairie proj4js) 20 20 var epsg_4326 = new OpenLayers.Projection("EPSG:4326"), 21 21 epsg_900913 = new OpenLayers.Projection("EPSG:900913"); … … 23 23 function pgrouting(store, layer, method) { 24 24 if (layer.features.length == 2) { 25 // erase the previous route25 // Effacer le chemin précédent 26 26 store.removeAll(); 27 27 28 // transform the two geometries from EPSG:900913 toEPSG:432628 // Re-projÚte les deux géométries de EPSG:900913 et EPSG:4326 29 29 var startpoint = layer.features[0].geometry.clone(); 30 30 startpoint.transform(epsg_900913, epsg_4326); … … 32 32 finalpoint.transform(epsg_900913, epsg_4326); 33 33 34 // load to route34 // Charge le chemin 35 35 store.load({ 36 36 params: { … … 44 44 45 45 Ext.onReady(function() { 46 // create the map panel46 // Création du paneau carte 47 47 var panel = new GeoExt.MapPanel({ 48 48 renderTo: "gxmap", … … 58 58 var map = panel.map; 59 59 60 // create the layer where the route will be drawn60 // Création de la couche où le chemin sera dessiné 61 61 var route_layer = new OpenLayers.Layer.Vector("route", { 62 62 styleMap: new OpenLayers.StyleMap(new OpenLayers.Style({ … … 66 66 }); 67 67 68 // create the layer where the start and final points will be drawn68 // Création de la couche où le point de départ et d'arrivée sront dessinés 69 69 var points_layer = new OpenLayers.Layer.Vector("points"); 70 70 71 // when a new point is added to the layer, call the pgrouting function71 // Lorsqu'un nouveau point est ajouté à la couche, appeler la fonction pgrouting 72 72 points_layer.events.on({ 73 73 featureadded: function() { … … 76 76 }); 77 77 78 // add the layers to the map78 // Ajouter la couche à la carte 79 79 map.addLayers([points_layer, route_layer]); 80 80 81 // create the control to draw the points (see the DrawPoints.js file)81 // Création du control pour dessiner les point (voir le fichier DrawPoints.js) 82 82 var draw_points = new DrawPoints(points_layer); 83 83 84 // create the control to move thepoints84 // Création du control pour déplacer les points 85 85 var drag_points = new OpenLayers.Control.DragFeature(points_layer, { 86 86 autoActivate: true 87 87 }); 88 88 89 // when a point is moved, call the pgrouting function89 // Lorsqu'un point est déplacé, appeler la fonction pgrouting 90 90 drag_points.onComplete = function() { 91 91 pgrouting(store, points_layer, method.getValue()); 92 92 }; 93 93 94 // add the controls to the map94 // Ajouter les controls à la carte 95 95 map.addControls([draw_points, drag_points]); 96 96 97 // create the store to query the web service97 // Création du store pour interroger le service web 98 98 var store = new GeoExt.data.FeatureStore({ 99 99 layer: route_layer, … … 112 112 }); 113 113 114 // create the method combo box114 // Création de la liste déroulante 115 115 var method = new Ext.form.ComboBox({ 116 116 renderTo: "method", … … 129 129 } 130 130 }); 131 // default method is Shortest Path Dijkstra131 // Définir Disjkstra comme méthode par défaut 132 132 method.setValue("SPD"); 133 133 });
Note: See TracChangeset
for help on using the changeset viewer.