﻿{"id":3238,"date":"2016-05-27T08:34:12","date_gmt":"2016-05-27T07:34:12","guid":{"rendered":"http:\/\/www.sigterritoires.fr\/?p=3238"},"modified":"2025-08-25T09:14:54","modified_gmt":"2025-08-25T07:14:54","slug":"developper-une-application-avec-pgrouting-sous-windows-1","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/","title":{"rendered":"D\u00e9velopper une application avec pgrouting sous Windows (1)"},"content":{"rendered":"\n<p>Voici une s\u00e9rie d&rsquo;articles permettant de mettre en place une application web de routage (calcul d&rsquo;itin\u00e9raires) totalement autonome, c&rsquo;est \u00e0 dire n&rsquo;utilisant aucun service web ni api pour le calcul de l&rsquo;itin\u00e9raire.<br>Nous mettrons en place la base de donn\u00e9es contenant le r\u00e9seau routier (ou fluvial, etc.) avec Postgresql, puis nous mettrons en place un flux wms avec <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/debuter-avec-geoserver\/\">Geoserver<\/a> et, enfin, nous d\u00e9velopperons une page de calcul avec OpenLayers 3. Le tout sous Windows.<\/p>\n\n\n\n<p>Dans ce premier article nous verrons la mise en place de la base de donn\u00e9es du r\u00e9seau.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p><br>Vous devrez avoir une installation op\u00e9rationnelle de PostreSQL\/Postgis. Si ce n&rsquo;est pas le cas, reportez vous \u00e0 l&rsquo;article <a href=\"http:\/\/wp.me\/p6XU0A-LQ\">D\u00e9buter avec PostgreSQL\/Postgis .<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installation de pgrouting<\/h2>\n\n\n\n<p>Pour les calculs de routage, nous utiliserons l&rsquo;extension de <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/debuter-avec-postgrespostgis\/\">Postgis<\/a> pgrouting. Elle est install\u00e9e, en principe, avec les nouvelles versions de Postgis. Pour vous en assurer, ouvrez pgAdmin III et ex\u00e9cutez la requ\u00eate SQL suivante:<\/p>\n\n\n\n<p>SELECT pgr_version();<\/p>\n\n\n\n<p>Vous devez avoir un r\u00e9sultat de ce type:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg5.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"591\" height=\"394\" data-attachment-id=\"3243\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/pg5-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg5.png?fit=591%2C394&amp;ssl=1\" data-orig-size=\"591,394\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pg5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg5.png?fit=591%2C394&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg5.png?resize=591%2C394\" alt=\"v\u00e9rification de la version de pgrouting \" class=\"wp-image-3243\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg5.png?w=591&amp;ssl=1 591w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg5.png?resize=300%2C200&amp;ssl=1 300w\" sizes=\"auto, (max-width: 591px) 100vw, 591px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Si pgrouting n&rsquo;est pas install\u00e9 :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>T\u00e9l\u00e9chargez le fichier zip de pgRouting zip file pour votre syst\u00e8me (32 or 64 bit) \u00e0 partir de Winnie.<\/li>\n\n\n\n<li>D\u00e9compressez le fichier. Vous trouverez trois r\u00e9pertoires : bin, lib et share folders et deux fichiers texte.<\/li>\n\n\n\n<li>Copiez ces fichiers et ces r\u00e9pertoires dans le r\u00e9pertoire de votre installation Postgres (dans mon cas <code>C:\\Programmes\\PostgreSQL\\9.5<\/code>)<\/li>\n\n\n\n<li>Dans pgAdmin III s\u00e9lectionnez votre base de donn\u00e9es Postgis et ex\u00e9cutez la requ\u00eate SQL suivante:<\/li>\n<\/ol>\n\n\n\n<div class=\"line number1 index0 alt2\"><code class=\"sql keyword\">CREATE<\/code> <code class=\"sql plain\">EXTENSION pgrouting;<\/code><\/div>\n\n\n\n<div class=\"line number1 index0 alt2\">&nbsp;<\/div>\n\n\n\n<p>V\u00e9rifiez avec la requ\u00eate suivante que l&rsquo;installation s&rsquo;est bien termin\u00e9e<\/p>\n\n\n\n<div class=\"line number1 index0 alt2\"><code class=\"sql keyword\">SELECT<\/code> <code class=\"sql plain\">pgr_version();<\/code><\/div>\n\n\n\n<div class=\"line number1 index0 alt2\">&nbsp;<\/div>\n\n\n\n<div class=\"line number1 index0 alt2\"><span style=\"color: #ff0000;\">Si la version que vous avez n&rsquo;est pas la derni\u00e8re (2.2.3), t\u00e9l\u00e9chargez et mettez \u00e0 jour votre version. Toute la s\u00e9rie de ces articles est r\u00e9alis\u00e9e avec cette version et sachez que la syntaxe de nombreuses commandes de pgrouting a \u00e9t\u00e9 modifi\u00e9e. Si vous essayez d&rsquo;ex\u00e9cuter les requ\u00eates indiqu\u00e9es ici avec d&rsquo;anciennes versions vous risquez des messages d&rsquo;erreur comme celui-ci:<\/span><\/div>\n\n\n\n<h2 class=\"wp-block-heading line number1 index0 alt2\"><figure><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/s2.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"3401\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/s2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/s2.png?fit=734%2C345&amp;ssl=1\" data-orig-size=\"734,345\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"s2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/s2.png?fit=640%2C301&amp;ssl=1\" class=\"aligncenter size-full wp-image-3401\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/s2.png?resize=640%2C301\" alt=\"s2\" width=\"640\" height=\"301\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/s2.png?w=734&amp;ssl=1 734w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/s2.png?resize=300%2C141&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure> Mise en place des donn\u00e9es<\/h2>\n\n\n\n<p>Nous allons prendre le cas le plus simple, mais si vous avez d\u00e9j\u00e0 une base de donn\u00e9es de r\u00e9seau, vous devrez vous inspirer de cet exemple pour faire le n\u00e9cessaire \u00e0 son utilisation avec pgrouting.<\/p>\n\n\n\n<p>Dans notre cas, nous allons t\u00e9l\u00e9charger les donn\u00e9es openStreetMap de la Bretagne.<\/p>\n\n\n\n<p>Nous les t\u00e9l\u00e9chargeons \u00e0 partir de Geofabrik (<a href=\"http:\/\/download.geofabrik.de\/europe\/france\/bretagne.html\">http:\/\/download.geofabrik.de\/europe\/france\/bretagne.html<\/a>).<\/p>\n\n\n\n<p>Vous avez plusieurs formats disponibles (osm,shp,pbf). Quel qu&rsquo;il soit votre choix, il y aura du travail \u00e0 faire pour rendre utilisable les donn\u00e9es une fois charg\u00e9es dans votre base Postgis. Le format qui donne le moins de travail et les meilleurs r\u00e9sultats finaux est le format osm. De plus, il y a un outil (osm2pgrouting) qui permet le chargement et la cr\u00e9ation de la <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/topologie-vous-avez-dit-topologie\/\">topologie<\/a> en une seule passe.<\/p>\n\n\n\n<p>&nbsp;<\/p>\n\n\n<div class='stb-container stb-style-warning stb-caption-box'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAACOZJREFUeNrsmntsleUZwH\/f5Zy25\/QU2sMopXYOochVRBdgkwxrqIhiqamZl8kGgQyCxqGYIXJTJlRQxCguC8aZbE4WxDkCKhKpuBWdFFgQy1qVS7nIRWihtOd81\/fZH1+FGgq0UpA53uRJTs753rfv732u79NPExG+D0PnezIug1wGuQzyfwJitvSlpmntc0q6zoABA3IjkUj69u3bd9bV1bntsW5LKcO8UCc0cODAbvfcc8+dhYWFBdFoNLOiouKjlStXrl6+fHnZBfmDInKanO+YMmXKWNu2a6WFsWLFipczMzMj7b7n9gaZMWPGg8037iePiFdfI6rZd+vXr18VDof1Sxak+I47bhYJ9uy7CUlsmC51L+dK7dK41K+8VbzaqpMwS5YseeqSBMnOzo7v379\/p4iIL0pOvHOfHHkWqX2xg9T+vqMcfc6QuleuFu\/47q9Z1LBhwwa3F0i7hd\/p06c\/0rVr124C2P9+EXv7MrRwJiIGonQwO+LXfk6i\/DFUU3BcvHjxs6mpqeFLJo9cd911fSdOnPiAAP6JL7E+XoBmREBpoGgSQQt1wKl6A+fzlaggsv10zJgxd7XHHrSWTKmteaSsrGxNQUHBCF+ExNsTsCv\/jJYSg5NLC9C0pm+hZ\/Uidu96jJQYhw8d3j948KBBNTU1X55PHjlvjYwZM+bOgoKCET7g7l6PU7kMzUwPtOHaiJ0Ax0HsxkAzWhr+wa1YG5\/DB7KzO+fOnDlz+neqkVgsFq2srNyal5fX3XFtGpeNxN\/\/MYQi4CUwulxP6g2\/RUuL41a9ib1lKegGKB8tlEb6Lzdgxq9CPM8uKCgYWl5evuk70cj0xx57OC8vr7sLOFtextv9TzDSwHXRIl2JFL+GmT8KPfcnpA5fiJl3I2InARPVUIv1wRx85WOaZkppaelCXde1i+7s1157bZ+pD0+d4Qn4tTVYG54BI4L4oFwLo8sgtI5XoGwHcWwE0LMHIq6L+ICZjr3tddzqd3CAoUOHFkyaNGnsRQeZM+fxueFwKMUHrH+Uoo7tBS0U+IEPaGFEfR3zQQS0tM6g9KYopqFhYn8wD5WoRwnMmDnzd1lZWZkXDaSk5M6i4uLRJbYCb9eHOJ8sByOG+ASbVzoqURd8BgRBAGWfQHxpegZET8XdW4Fd8RKOBl1zcnJnzpo17aKAZGZmxubOfWKeL6CcJNbaGWBbIEagCT84bXEsxPc4qQ4BaTh6SmNNohkxnA3P4x+owvbh\/smTpwwaNGjgBQeZ+sgjU\/v06dPPFnA2v4q36yMwoifNBaWhiY5YjSjPbsqFglIgyXpQxsnnUBoQQh0\/iL1uHj4QDodTnpw3b35bHb9NID169Lhy0sSJD9oeqKN7sN9fAHpKYFLNRWmIa4PymmxLQAkqcTz47RvPC5gx3MpVeFVrSXhQOHz4Lfe1MeO3CeSpBQsWxuPxTBdwypegju4FLdysDPladMRKIJ6DoAWivEAjorXwvAauh712LspqwPWFRx99dE5WVlZGu4OMGjVqRPHo4p83uOB\/VoazYSmE0ps5eDMRDbGTKLvxlEI8G5U8EUCqFuYYaXi7K3A\/WoqtNHr36tVr9uzZc9oVJCMjIzp\/fukiXwTlWjhlixDHAdFbOF1AdCTZgCTrEE0PopbnIMnGM89RoBkR7LLF+IeqSTg+Y8eO+3X\/\/v17txvI+PHjx\/fv36+vpQy8ja\/i\/qcMzOjpvnHSR3TEsVGNtYjWZFpOIoAT\/czztBCq\/iuc9c\/jiU4sFkt\/8sl5T7cLSM+ePbtPmzZtVqPtour24ax7rskvtLOKWDbqSA0YJoRSUUd2IccOg5hnnueDZsbwPv4L3vZ3aXCFkbeOvK2kpGT0eYPMmj378R90zu7kKh1n7dOog18EkaolO28uWghv0wpU7T6ksRbn\/RcR1wn852zzRENcD+fdhfhWA56nmF9a+mw8ntXhW4OMHDlyeElJyb31SRdVsxnvX8sglH5aUjtNFGhGGt72dVhP30jymZvwNv0tKCjPNdcHzAjq8w\/xyv+IhUmP7j2umjz5gQe+VRlvhkLGuvfWlQ8aMmRIImnjvPQL\/O3vQUq0dWHESWIMHE1oxFQIR\/A3\/hV33QvBBas11wTPQevQhZSH1hDq2AWr8cTxYcN+9uOqqqov2lTGjy4qKh48ZPCQhAf+ljfxt60FM3ru0\/QB20bP6Ufo3hcgpzd0zMUsmoMxoBiSja1bQw8jh2vwVpfiCsQ7deowfsKE+9tsWnfdffcYQUcl6nHX\/QEhFGTlc\/mGAnE96JyPpEQRO0iMyvfQcnojnrRuDR\/EjOJuXoU6UE3Cdhkx4pbbYhkZ6a0GycjIyOjbp+9AW4GqLkfVfHrKvs8RrVBaUMLvr4bkicAUzTAYJmpPZVBctmYNpQEGnDiG2rIaVzRyc3O75\/fI793qJnZ+fv4Pu+Tk5HhKUF9WB8nPSG1D4RPG31eF86eHMG+aAGYK6pN38Ta\/FVyDVVuaWDr+vioM3yOSmqp3u6rbj4CKVoE0NDT4lmV5KSnRkBhhcBWk0Kwr0ophpOJv\/Dt+xargnu5akBIJHL0tIJ4C9CCxiuDYtrTatHbs2LFn7549+0Liow8YgZbdA2mo\/+alqDU2bqQheijI5qHoqcq3tWs4Qd7Rry9CE6GhocGvrv5sd6tBPM9rfOONFStTwwbEryB0\/ysY\/YYHdZKVhGRbxALLauOcJFgWWkYXQr9ahDagkGhIo6Ji46adO3dUtimPhMPh+GuvLVt9e1HRkGMNieCSd\/ALpO4g+N6F\/xdUSgStaz7EOhE1Nb766lB90e2331FZWVnW4p7P1tdKT0+\/8okn5i4aN25cSWpaGo4SXF+h1IV\/ycA0dMK6hmlobN68ZcekSRN\/8+m2bW+dqa\/VmgZd2jXXXHNzYeHNhTcMvWFIz55X58ViseiFemNCC2KKOnDgwNFPtm6tWrNmzftvv\/3W67Zt7zpbg66tncYO8Xi8SywWizXNkwvE4h86dOioZVmHALs1nUbt8rsol0Eug1wG+Z8a\/x0A3thDl\/BwJ7kAAAAASUVORK5CYII=' alt='img'\/><\/div><div class='stb-caption-content'>Mise \u00e0 jour (2025) <\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<p>Depuis la r\u00e9daction de cet article, Geofabrik ne propose plus de fichiers au format <code>.osm<\/code>, mais uniquement des fichiers compress\u00e9s <code>.osm.pbf<\/code>.<br>Le probl\u00e8me est que la version Windows de <strong>osm2pgrouting<\/strong> utilis\u00e9e en 2019 ne sait pas lire directement le format <code>.pbf<\/code> et renvoie l\u2019erreur : <em>\u201cnot well formed (invalid token)\u201d<\/em>.<\/p>\n\n\n\n<p>Deux solutions possibles :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Convertir le fichier <code>.osm.pbf<\/code> en <code>.osm<\/code><\/strong><br>Avec un outil comme <a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/Osmconvert\">Osmconvert<\/a> ou <a href=\"https:\/\/osmcode.org\/osmium-tool\/\">Osmium<\/a> :<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>   osmconvert bretagne-latest.osm.pbf -o=bretagne-latest.osm<\/code><\/pre>\n\n\n\n<p>Vous pourrez ensuite utiliser <code>osm2pgrouting<\/code> sur le fichier <code>.osm<\/code>.<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Utiliser une version r\u00e9cente d\u2019osm2pgrouting<\/strong><br>Les versions r\u00e9centes (fournies avec <strong>pgRouting \u2265 2.6<\/strong> ou via <strong>OSGeo4W<\/strong> sous Windows) prennent en charge directement le format <code>.pbf<\/code>.<br>Dans ce cas, il n\u2019est plus n\u00e9cessaire de convertir le fichier.<\/li>\n<\/ol>\n\n\n\n<p>En r\u00e9sum\u00e9 : si vous avez une ancienne installation, convertissez <code>.pbf<\/code> \u2192 <code>.osm<\/code>.<br>Sinon, mettez \u00e0 jour votre environnement pgRouting\/osm2pgrouting pour lire directement le <code>.pbf<\/code>.<\/p>\n\n\n\n<p>\u00a0<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Import des donn\u00e9es OSM avec osm2pgrouting<\/h3>\n\n\n\n<p>Dans les derni\u00e8res versions de Postgis, cet outil est install\u00e9 automatiquement. V\u00e9rifiez que le fichier C:\\Program Files\\PostgreSQL\\9.5\\bin\\osm2pgrouting.exe est bien pr\u00e9sent dans votre installation.<\/p>\n\n\n\n<p>Si ce n&rsquo;est pas le cas, t\u00e9l\u00e9chargez la version de l&rsquo;outil correspondante \u00e0 votre installation&nbsp; \u00e0 partir de winnie. D\u00e9compressez le fichier et suivez les instructions d&rsquo;installation contenues dans le fichier osm2pgrouting_Readme.txt.<\/p>\n\n\n\n<p>Pour simplifier vos lignes de commande, ajoutez le r\u00e9pertoire \\Program Files\\PostgreSQL\\9.5\\bin \u00e0 votre variable d&rsquo;environnement PATH.<\/p>\n\n\n\n<p>Pour utiliser l&rsquo;outil vous devrez ouvrir une fen\u00eatre d&rsquo;invites de commande.<\/p>\n\n\n\n<p>Pour avoir la syntaxe compl\u00e8te de l&rsquo;outil vous pouvez rentrer<\/p>\n\n\n\n<p><em><strong>osm2pgrouting.exe &#8211;help<\/strong><\/em><\/p>\n\n\n\n<p>Les \u00e9l\u00e9ments indispensables pour lancer l&rsquo;outil:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>le nom du fichier osm \u00e0 charger (<em>bretagne-latest.osm<\/em>)<\/li>\n\n\n\n<li>le nom de la base de donn\u00e9es postgis (<em>postgis_22_sample<\/em>)<\/li>\n\n\n\n<li>le port d&rsquo;\u00e9coute de votre installation Postgresql (<em>5432<\/em>)<\/li>\n\n\n\n<li>le nom de l&rsquo;h\u00f4te (<em>localhost<\/em>)<\/li>\n\n\n\n<li>le nom du fichier config xml : deux fichiers sont fournis avec l&rsquo;outil <em>mapconfig.xml<\/em> (g\u00e9n\u00e9rique) et <em>mapconfif_for_cars.xml<\/em> (pour les automobiles)<\/li>\n<\/ul>\n\n\n\n<p>Voici donc un exemple de ligne de commande<\/p>\n\n\n\n<p>osm2pgrouting.exe &#8211;clean=1 -f <em>bretagne-latest.osm<\/em> -d <em>postgis_22_sample<\/em> -p <em>5432<\/em> -h <em>localhost<\/em> -c <em>mapconfig_for_cars.xml<\/em><\/p>\n\n\n\n<p>Le param\u00e8tre clean=1 indique d&rsquo;\u00e9craser les tables existantes. Cette commande charge les donn\u00e9es dans plusieurs tables, mais g\u00e9n\u00e8re aussi la topologie correspondante. Pour pgrouting la table de base est la table <em>ways<\/em> (routes) et la topologie cr\u00e9\u00e9e la table <em>ways_vertices_pgr.<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg4.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"594\" data-attachment-id=\"3244\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/pg4-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg4.png?fit=945%2C877&amp;ssl=1\" data-orig-size=\"945,877\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pg4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg4.png?fit=640%2C594&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg4.png?resize=640%2C594\" alt=\"ex\u00e9cution de osm2pgrouting\" class=\"wp-image-3244\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg4.png?w=945&amp;ssl=1 945w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg4.png?resize=300%2C278&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg4.png?resize=768%2C713&amp;ssl=1 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Une fois la commande ex\u00e9cut\u00e9e, vous trouverez une s\u00e9rie de nouvelles tables dans votre base<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg7.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"484\" data-attachment-id=\"3246\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/pg7-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg7.png?fit=972%2C735&amp;ssl=1\" data-orig-size=\"972,735\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pg7\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg7.png?fit=640%2C484&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg7.png?resize=640%2C484\" alt=\"pg7\" class=\"wp-image-3246\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg7.png?w=972&amp;ssl=1 972w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg7.png?resize=300%2C227&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg7.png?resize=768%2C581&amp;ssl=1 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Les seules tables que vous utiliserez pour votre application de routage sont <strong><em>ways<\/em> <\/strong>(r\u00e9seau lin\u00e9aire) et <strong><em>ways_vertices_pg<\/em><\/strong>r (n\u0153uds du r\u00e9seau).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Import de donn\u00e9es sans osm2pgrouting<\/h3>\n\n\n\n<p>Si vous t\u00e9l\u00e9chargez les donn\u00e9es de Geofabrik au format <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/frshapefile-vs-geopackage-quel-format-choisir\/\">shapefile<\/a> ou si vous avez des donn\u00e9es avec ce format, c&rsquo;est un peu plus long.<\/p>\n\n\n\n<p>Vous devez commencer par charger votre shapefile contenant le r\u00e9seau lin\u00e9aire dans votre base PostgreSQL\/Postgis. Si n\u00e9cessaire, reprojetez vos donn\u00e9es en G\u00e9ographique WGS84 car tous les outils de routage de pgrouting fonctionnent sur des donn\u00e9es en latitude\/longitude.<\/p>\n\n\n\n<p>R\u00e9f\u00e9rez-vous \u00e0 l&rsquo;article <a href=\"http:\/\/wp.me\/p6XU0A-Mx\">D\u00e9buter avec PostgrSQL\/Postgis -Introduction \u00e0 pgAdmin3 <\/a>pour le chargement d&rsquo;un shape dans Postgis.<\/p>\n\n\n\n<p>La table cr\u00e9\u00e9e correspond \u00e0 la table <strong><em>ways<\/em> <\/strong>du chapitre pr\u00e9c\u00e9dent. Il faut cr\u00e9er donc la table des noeuds (<strong><em>ways_vertices_pg<\/em><\/strong>r) \u00e0 travers la g\u00e9n\u00e9ration de la topologie du r\u00e9seau. Pour que la suite soit plus simple, on consid\u00e9rera que vous avez d\u00e9nomm\u00e9 votre table <em><strong>ways <\/strong><\/em>et que vous l&rsquo;avez plac\u00e9e dans le sch\u00e9ma<em><strong> public.<\/strong><\/em><\/p>\n\n\n\n<p>Ceci se fait par la commande SQL <code class=\"sql plain\">pgr_createTopology<\/code>. Mais cette commande assume que votre table contient deux colonnes d\u00e9nomm\u00e9es <em><strong>source<\/strong> <\/em>et <strong><em>target<\/em><\/strong>.<\/p>\n\n\n\n<p>Voici donc les commandes \u00e0 rentrer dans la fen\u00eatre SQL de pgAdmin III .<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg8.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"364\" data-attachment-id=\"3248\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/pg8-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg8.png?fit=690%2C392&amp;ssl=1\" data-orig-size=\"690,392\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pg8\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg8.png?fit=640%2C364&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg8.png?resize=640%2C364\" alt=\"commande sql de g\u00e9n\u00e9ration de la topologie\" class=\"wp-image-3248\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg8.png?w=690&amp;ssl=1 690w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg8.png?resize=300%2C170&amp;ssl=1 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>La valeur de 0.00001 correspond \u00e0 la tol\u00e9rance en degr\u00e9s, <em>geom<\/em> au nom du champ g\u00e9om\u00e9trie et <em>gid<\/em> au champ identifiant de la table.<\/p>\n\n\n\n<p>A l&rsquo;issue de cette commande vous trouverez la table <strong><em>ways_vertices_pg<\/em><\/strong>r dans votre base PostgreSQL.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Validation de vos donn\u00e9es dans Postgis<\/h2>\n\n\n\n<p>Dans un monde id\u00e9al, vous pourriez passer directement \u00e0 la mise en place de votre serveur de donn\u00e9es sous Geoserver. Mais, il y a de fortes chances pour que les choses ne marchent pas comme il faut&#8230;<\/p>\n\n\n\n<p>Nous allons voir les probl\u00e8mes les plus courants, en vous laissant le soin d&rsquo;en d\u00e9couvrir par vous m\u00eames un tas d&rsquo;autres probl\u00e8mes!<\/p>\n\n\n\n<p>Tout d&rsquo;abord, nous allons utiliser QGis pour tester notre base et le fonctionnement des diff\u00e9rents algorithmes de routage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tests de pgrouting avec QGis<\/h3>\n\n\n\n<p>Vous commencerez par vous connecter sur votre base Postgis et charger la couche <strong><em>ways<\/em><\/strong>:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg10.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"333\" data-attachment-id=\"3249\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/pg10-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg10.png?fit=1175%2C612&amp;ssl=1\" data-orig-size=\"1175,612\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pg10\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg10.png?fit=640%2C333&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg10-1024x533.png?resize=640%2C333\" alt=\"connexion \u00e0 la base postgis \u00e0 partir de qgis\" class=\"wp-image-3249\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg10.png?resize=1024%2C533&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg10.png?resize=300%2C156&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg10.png?resize=768%2C400&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg10.png?w=1175&amp;ssl=1 1175w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg11.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"358\" data-attachment-id=\"3250\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/pg11-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg11.png?fit=1378%2C771&amp;ssl=1\" data-orig-size=\"1378,771\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pg11\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg11.png?fit=640%2C358&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg11-1024x573.png?resize=640%2C358\" alt=\"couche ways charg\u00e9e dans QGis\" class=\"wp-image-3250\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg11.png?resize=1024%2C573&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg11.png?resize=300%2C168&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg11.png?resize=768%2C430&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg11.png?resize=1200%2C671&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg11.png?w=1378&amp;ssl=1 1378w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg11.png?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Pour ex\u00e9cuter les commandes sql de pgrouting sur votre base, \u00e0 partir de QGis, ouvrez le gestionnaire de bases de donn\u00e9es<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg12.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"102\" data-attachment-id=\"3252\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/pg12-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg12.png?fit=823%2C131&amp;ssl=1\" data-orig-size=\"823,131\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pg12\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg12.png?fit=640%2C102&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg12.png?resize=640%2C102\" alt=\"gestionnaire de bases de donn\u00e9es de qgis\" class=\"wp-image-3252\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg12.png?w=823&amp;ssl=1 823w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg12.png?resize=300%2C48&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg12.png?resize=768%2C122&amp;ssl=1 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Puis, s\u00e9lectionnez votre base de donn\u00e9es Postgis dans la liste des bases de donn\u00e9es et ouvrez une fen\u00eatre SQL<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg13.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"431\" data-attachment-id=\"3253\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/pg13-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg13.png?fit=949%2C639&amp;ssl=1\" data-orig-size=\"949,639\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pg13\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg13.png?fit=640%2C431&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg13.png?resize=640%2C431\" alt=\"fen\u00eatre sql du gestionnaire de bases de donn\u00e9es de qgis\" class=\"wp-image-3253\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg13.png?w=949&amp;ssl=1 949w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg13.png?resize=300%2C202&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg13.png?resize=768%2C517&amp;ssl=1 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>C&rsquo;est dans cette fen\u00eatre sup\u00e9rieure que nous allons rentrer les commandes sql de pgrouting.<\/p>\n\n\n\n<p>La fen\u00eatre inf\u00e9rieure listera les enregistrements de la table r\u00e9sultant de la commande sql.<\/p>\n\n\n\n<p>En cochant la case du bas <em>Charger en tant que nouvelle couche<\/em>, on chargera le r\u00e9sultat dans la fen\u00eatre cartographique de QGis.<\/p>\n\n\n\n<p>Exemple:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg14.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"459\" data-attachment-id=\"3254\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/pg14-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg14.png?fit=949%2C681&amp;ssl=1\" data-orig-size=\"949,681\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pg14\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg14.png?fit=640%2C459&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg14.png?resize=640%2C459\" alt=\"exemple d'utilisation de la fen\u00eatre sql du gestionnaire de bases de donn\u00e9es de qgis\" class=\"wp-image-3254\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg14.png?w=949&amp;ssl=1 949w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg14.png?resize=300%2C215&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg14.png?resize=768%2C551&amp;ssl=1 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>La commande SQL correspond \u00e0 la recherche d&rsquo;itin\u00e9raire dans pgrouting avec l&rsquo;algorithme A*, en partant du n\u0153ud 69072 et arrivant au n\u0153ud 64204<\/p>\n\n\n\n<p>Le bouton <strong>Ex\u00e9cuter<\/strong> envoie la commande \u00e0 la base Postgres et r\u00e9cup\u00e8re le nombre de lignes (30 lignes dans cet exemple) correspondantes \u00e0 l&rsquo;itin\u00e9raire et affiche dans la fen\u00eatre du bas ces lignes dans l&rsquo;ordre de l&rsquo;itin\u00e9raire.<\/p>\n\n\n\n<p>Si on demande maintenant de charger la couche dans QGis, c&rsquo;est bien les donn\u00e9es de cette fen\u00eatre inf\u00e9rieure qui seront affich\u00e9es dans la fen\u00eatre cartographique.<\/p>\n\n\n\n<p>Probl\u00e8me : il n&rsquo;y a pas de colonne g\u00e9om\u00e9trie dans le r\u00e9sultat. Nous ne pourrons pas afficher l&rsquo;itin\u00e9raire en tant que couche.<\/p>\n\n\n\n<p>Pour contourner ce probl\u00e8me, nous allons ajouter la g\u00e9om\u00e9trie dans les r\u00e9sultats de la commande. C&rsquo;est un peu compliqu\u00e9 \u00e0 expliquer, alors passons directement \u00e0 comment le faire:<\/p>\n\n\n\n<p>Nous allons faire une <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/jointure-table-qgis\/\">jointure<\/a> entre le r\u00e9sultat de l&rsquo;algorithme pgr_astar(&#8230;) (Tout ce qui est entre parenth\u00e8ses sont les param\u00e8tres de l&rsquo;algorithme), qui ne renvoie pas dans le r\u00e9sultat les g\u00e9om\u00e9tries mais seulement les identifiants des n\u0153uds (edges), et la table des n\u0153uds, puis avec la table des routes (ways):<\/p>\n\n\n\n<p>SELECT seq, id1 AS node, id2 AS <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/cartes-enc-dans-qgis-avec-postgis1\/\">edge<\/a>,&nbsp; the_geom<br>FROM pgr_astar( &lsquo;SELECT gid as id, source, target,cost, x1, y1, x2, y2&nbsp; FROM public.ways&rsquo;, 69072, 64204, false, false ) <em><strong>as res<\/strong><\/em><br><em><strong>&nbsp; JOIN public.ways ways_vertices_pgr<\/strong><\/em><br><em><strong>&nbsp; ON res.id2 = ways_vertices_pgr.gid ;<\/strong><\/em><\/p>\n\n\n\n<p>En clair, on cherche le n\u0153ud correspondant au edge du r\u00e9sultat et on r\u00e9cup\u00e8re le tron\u00e7on lin\u00e9aire qui lui est joint par la topologie. Maintenant on peut ajouter dans les champs r\u00e9sultat du select le champ the_geom qui nous permettra de tracer le r\u00e9sultat dans QGis.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg15.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"461\" data-attachment-id=\"3256\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/pg15-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg15.png?fit=949%2C683&amp;ssl=1\" data-orig-size=\"949,683\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pg15\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg15.png?fit=640%2C461&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg15.png?resize=640%2C461\" alt=\"r\u00e9sultat de la jointure avec la topologie\" class=\"wp-image-3256\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg15.png?w=949&amp;ssl=1 949w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg15.png?resize=300%2C216&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg15.png?resize=768%2C553&amp;ssl=1 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Pour charger la couche dans QGis, cochez la case <em><strong>Charger en tant que nouvelle couche<\/strong><\/em>, s\u00e9lectionnez le champ g\u00e9om\u00e9trie, puis cliquez sur le bouton <em><strong>Charger<\/strong><\/em>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg16.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"350\" data-attachment-id=\"3257\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/developper-une-application-avec-pgrouting-sous-windows-1\/pg16-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg16.png?fit=1859%2C1017&amp;ssl=1\" data-orig-size=\"1859,1017\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pg16\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg16.png?fit=640%2C350&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg16-1024x560.png?resize=640%2C350\" alt=\"r\u00e9sultat du chargement du r\u00e9sultat de pgrouting dans qgis\" class=\"wp-image-3257\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg16.png?resize=1024%2C560&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg16.png?resize=300%2C164&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg16.png?resize=768%2C420&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg16.png?resize=1200%2C656&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg16.png?w=1859&amp;ssl=1 1859w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2016\/05\/pg16.png?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Maintenant que nous avons vu comment tester notre base de donn\u00e9es, nous verrons les principaux algorithmes propos\u00e9s par pgrouting, et quelles modifications dans les donn\u00e9es on doit faire pour que ceux-ci fonctionnent correctement&#8230; mais tout ceci dans le prochain article.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici une s\u00e9rie d&rsquo;articles permettant de mettre en place une application web de routage (calcul d&rsquo;itin\u00e9raires) totalement autonome, c&rsquo;est \u00e0 dire n&rsquo;utilisant aucun service web ni api pour le calcul de l&rsquo;itin\u00e9raire.Nous mettrons en place la&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[311,62],"tags":[327,326,227,312,58,328],"class_list":["post-3238","post","type-post","status-publish","format-standard","hentry","category-postgresql","category-qgis-2","tag-itineraire","tag-pgrouting","tag-postgis","tag-postgresql","tag-qgis","tag-windows"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-Qe","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/3238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=3238"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/3238\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=3238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=3238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=3238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}