<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.gmail-std
        {mso-style-name:gmail-std;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Consolas",serif;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1876427329;
        mso-list-template-ids:942812720;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>The Roadmap looks good to me.  Should make some sections of pgRouting book obsolete and allow us to cover other topics.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>*withPoints functions are very popular, but I think there has to be a simpler way of coming up with the  point/frac  as that's where I think most people struggle.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>But unfortunately I don't have any thoughts about that yet and haven't looked at recent functions added.  <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>As far as getting rid of CGAL not sure how important that is.  I think a lot of package maintainers are used to having that dependency now and for Windows, I need to include CGAL anyway to support PostGIS SFCGAL.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>There is also some talk of expanding CGAL use in PostGIS.  That said, if the alpha shape rewriting is a lot of work, I'd put it off, as the gain would have been useful a couple of years ago, but not so much today.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Regina<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> pgrouting-dev [mailto:pgrouting-dev-bounces@lists.osgeo.org] <b>On Behalf Of </b>Vicky Vergara<br><b>Sent:</b> Tuesday, April 03, 2018 11:37 AM<br><b>To:</b> pgRouting developers mailing list <pgrouting-dev@lists.osgeo.org><br><b>Subject:</b> [pgrouting-dev] A roadmap<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><o:p> </o:p></p><div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'><o:p> </o:p></span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'><span style='font-family:"Arial",sans-serif'>Hello fellow developers,<o:p></o:p></span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'><span style='font-family:"Arial",sans-serif'>As you know we are rewriting pgRouting, since v2.1, to remove all "bugs", like the non standard way of constructing a graph, and using more C++ features.<o:p></o:p></span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'><span style='font-family:"Arial",sans-serif'>The rewrite is "almost done":<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>**First pair of functions**<o:p></o:p></span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:1.0in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-size:10.0pt;font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>        </span></span></span><![endif]><span class=gmail-std><span style='font-family:"Arial",sans-serif'>pgr_alphaShape</span></span><span style='font-family:"Arial",sans-serif'> - Alpha shape computation<o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:1.0in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-size:10.0pt;font-family:Symbol'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>        </span></span></span><![endif]><span class=gmail-std><span style='font-family:"Arial",sans-serif'>pgr_pointsAsPolygon</span></span><span style='font-family:"Arial",sans-serif'> - Polygon around a set of points<o:p></o:p></span></p><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'><span style='font-family:"Arial",sans-serif'>Both functions are tightly dependant, and I believe that they should be a postGIS function as is a geometry function, and the closest one that resembles this pair of functions is  ST_ConcaveHull [1] Some time ago I compared both functions on [2] <br><br>I went to see how to add that function to postGIS, and for the moment that is not possible, it sould be done first in GEOS, and  GEOS is so big, right now I dont feel is the time to do that, but rewriting to use boost:Geometry would eliminate the need of CGAL, so one less pre-requisite to build pgRouting would be needed. or they can stay as they are now.<br><br><o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>**The other function is pgr_trsp**<br><br>Which has so many problems at postgres level [4], Last year on GSoC, Vidham tried to do a rewrite, confirming that the problem is much harder than expected for the 3 month program. But as far as I know many people use them because it has the "points" version.<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>The C++ code is not well designed [5], just a look at that, my_dijkstra calls my_dijkstra and that calls my_dijkstra, it still uses pointers, so great chance of memory leaks, etc.<o:p></o:p></span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'><span style='font-family:"Arial",sans-serif'>Basically is **Use at your own risk**<br><br><br>Beside those functions mentioned above, now we are in the moment where there are  more proposed functions [7] than official functions. and a lot of deprecated functions that have to be maintained and tested because of backwards compatibility.<o:p></o:p></span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'><span style='font-family:"Arial",sans-serif'>** So, here is my road map #1 **<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>Version 2.7 to be released on September 2018 where fix bug of pgr_withPoints [8] is a must have, and the possibilities of what other things it could have:<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>- New functionality done by GSoC students on "experimental section"<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>- Write a substitution (with a different name maybe pgr_dijkstraTR) for pgr_trsp (one vertex to one vertex) based on dijkstra<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>- Rewrite pgr_alphaShape to use boost:graph instead of CGAL<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>- move some experimental functions up to proposed<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'><o:p> </o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>Version 3.0 I would like it to be on September 2019<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>Where a complete cleanup of the deprecated functions would be done,<o:p></o:p></span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'><span style='font-family:"Arial",sans-serif'>Move proposed functions to official pgRouting functions.<br><br>** So, here is my road map #2 **<o:p></o:p></span></p><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>Version 3.0 to be released on March 2019 where fix bug of pgr_withPoints [8] and Complete cleanup of the deprecated functions are a must have, and the possibilities of what other things it could have:<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>- New functionality done by GSoC students on "experimental section"<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>- Write a substitution (with a different name maybe pgr_dijkstraTR) for pgr_trsp (one vertex to one vertex) based on dijkstra<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>- Rewrite pgr_alphaShape to use boost:graph instead of CGAL<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>- move some experimental functions up to proposed<o:p></o:p></span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'><span style='font-family:"Arial",sans-serif'>- Move proposed functions to official pgRouting functions.<o:p></o:p></span></p></div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>Probably this second road map will make the second version of the pgRouting book a little easier to write, (please Robe, comment on this)<o:p></o:p></span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'><span style='font-family:"Arial",sans-serif'><o:p> </o:p></span></p></div><div><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in'><span style='font-family:"Arial",sans-serif'>We would like comments from the community about both road maps and if possible  to test proposed functions and experimental functions to help decide which proposed functions can go up one level. (don't forget to open issues)<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>Regards<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>pgRouting team<o:p></o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'><o:p> </o:p></span></p></div><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'><br>[1] <a href="https://postgis.net/docs/ST_ConcaveHull.html">https://postgis.net/docs/ST_ConcaveHull.html</a><br>[2] <a href="https://github.com/cvvergara/pgrouting/issues/57">https://github.com/cvvergara/pgrouting/issues/57</a><br>[3] <a href="https://github.com/pgRouting/pgrouting/blob/master/sql/alpha_shape/alpha_shape.sql#L62">https://github.com/pgRouting/pgrouting/blob/master/sql/alpha_shape/alpha_shape.sql#L62</a><br>[4] <a href="https://github.com/pgRouting/pgrouting/tree/master/doc/trsp">https://github.com/pgRouting/pgrouting/tree/master/doc/trsp</a><br clear=all><o:p></o:p></span></p></div><p class=MsoNormal style='margin-left:.5in'>[<o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>​5] <a href="https://github.com/pgRouting/pgrouting/blob/master/include/trsp/GraphDefinition.h#L94">https://github.com/pgRouting/pgrouting/blob/master/include/trsp/GraphDefinition.h#L94</a>​<o:p></o:p></span></p></div><p class=MsoNormal style='margin-left:.5in'><br>[<o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>​6] <a href="https://github.com/pgRouting/pgrouting/tree/master/sql/pickDeliver">https://github.com/pgRouting/pgrouting/tree/master/sql/pickDeliver</a>​<o:p></o:p></span></p></div><p class=MsoNormal style='margin-left:.5in'><br>[<o:p></o:p></p><div><p class=MsoNormal style='margin-left:.5in'><span style='font-family:"Arial",sans-serif'>​7] <a href="http://docs.pgrouting.org/latest/en/proposed.html">http://docs.pgrouting.org/latest/en/proposed.html</a><br>[8] <a href="https://github.com/pgRouting/pgrouting/issues/760">https://github.com/pgRouting/pgrouting/issues/760</a>​<o:p></o:p></span></p></div><p class=MsoNormal style='margin-left:.5in'><br>-- <o:p></o:p></p><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><pre style='margin-left:.5in'>Georepublic UG (haftungsbeschränkt)<o:p></o:p></pre><pre style='margin-left:.5in'>Salzmannstraße 44, <o:p></o:p></pre><pre style='margin-left:.5in'>81739 München, Germany<o:p></o:p></pre><pre style='margin-left:.5in'><o:p> </o:p></pre><pre style='margin-left:.5in'>Vicky Vergara<o:p></o:p></pre><pre style='margin-left:.5in'>Operations Research<o:p></o:p></pre><pre style='margin-left:.5in'><o:p> </o:p></pre><pre style='margin-left:.5in'>eMail: vicky@<a href="http://georepublic.de" target="_blank">georepublic.de</a><o:p></o:p></pre><pre style='margin-left:.5in'>Web: <a href="https://georepublic.info" target="_blank">https://georepublic.info</a><o:p></o:p></pre><pre style='margin-left:.5in'><o:p> </o:p></pre><pre style='margin-left:.5in'>Tel: +49 (089) 4161 7698-1<o:p></o:p></pre><pre style='margin-left:.5in'>Fax: +49 (089) 4161 7698-9<o:p></o:p></pre><pre style='margin-left:.5in'><o:p> </o:p></pre><pre style='margin-left:.5in'>Commercial register: Amtsgericht München, HRB 181428<o:p></o:p></pre><pre style='margin-left:.5in'>CEO: Daniel Kastl<o:p></o:p></pre><pre style='margin-left:.5in'><o:p> </o:p></pre></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></body></html>