[pgrouting-dev] Gsoc 2013 Preliminary project proposal

Stephen Woodbridge woodbri at swoodbridge.com
Tue Apr 16 08:30:16 PDT 2013


On 4/15/2013 6:36 AM, Mukul priya wrote:
> Hi Steve ,
>                Just to clear things i would prefer item 2 ( partitioning
> graph and then routing ) over item1 ( multi point routing ) .Its kind of
> exciting and challenging too. what are your thoughts regarding this??

I am fine with this preference. I think it is more important that 
whatever you work on will be exciting and keep you interested through 
out the course of the project.

>             I went through the mail archive of previous years and it was
> quite useful .  For now i am trying to get familiar with the development
> framework whenever i get time  using this link
> (https://github.com/pgRouting/pgrouting/wiki/Developer---Getting-Started).
> Once i am done with my semester by 23rd of this month i will speed up
> significantly.
>
>               Meanwhile feedbacks and suggestions are welcome.

As you have time learning the development environment and github are 
critical so you can focus on your project and not the infrastructure.

You should also look over:
https://github.com/pgRouting/pgrouting/wiki/2.0-Development-Guidelines-and-Standards

Thanks,
   -Steve

> Thanks
>
> Mukul
>
>
>
>
> On Sun, Apr 14, 2013 at 7:11 PM, Mukul priya <mukul2047 at gmail.com
> <mailto:mukul2047 at gmail.com>> wrote:
>
>     Thanks  for the reply Steve , clarifies all the issues that i raised
>     , Proposed data structures cover  what we need , quad tree should
>     work too ,  I am right now looking into the last part which
>     describes the method of appending our graph with new cells , seems
>     fine and very much implementable , will post something in case some
>     new ideas strike me . :)
>
>
>       Thanks.
>
>
>     On Sun, Apr 14, 2013 at 10:59 AM, Stephen Woodbridge
>     <woodbri at swoodbridge.com <mailto:woodbri at swoodbridge.com>> wrote:
>
>         On 4/13/2013 11:12 PM, Mukul priya wrote:
>
>             Thanks Steve for clearly mentioning the two proposals.
>
>             For Item 1 , upgrading all the algorithms will certainly
>             require a lot
>             of work and since i will be having my summer vacation i
>             don't have any
>             issue with it :).
>
>
>             For item 2 , i am looking into the idea that you have
>             proposed , It is
>             very much doable , there are however some concerns of mine like
>
>             - how do we decide what should be the grid size . this can
>             vary for
>             suburban area and urban area based on netwrok density.
>
>
>         This might be done with a quad tree approach. You start with a
>         square and some condition like maximum number of node. If you
>         exceed that number you quarter it into 4 squares and divide the
>         point into each of them.
>
>
>             - how do we classify the nodes lying on the junction of two
>             or more
>             grids . should it be assigned to all the grids??
>
>
>         A node can only lie in one square or the edge boundary of a
>         square it does not matter which one it is put in. Edges need to
>         be flagged if the cross a square boundary.
>
>
>             - how do we decide the grid that needs to be loaded in the
>             memory ,
>             connectivity with the previous grid seems legit here but i
>             guess we need
>             to discuss some corner cases too.
>
>
>         We could probably do something like
>
>         typedef struct pair {
>            int a;
>            int b;
>         } PAIR;
>
>         typedef struct edge_type {
>            int node_a;
>            int node_b;
>            PAIR *squares; // NULL if it does not cross square edge
>            float cost;
>            float rcost;
>         } EDGE;
>
>         Where PAIR can be assign the gridcell for the a and b ends.
>
>         If we number the grid cells by their quadtree numbers like:
>
>         +---+---+
>         | 1 | 2 |
>         +---+---+
>         | 3 | 4 |
>         +---+---+
>
>         So you start, with the above for your coverage area. So all
>         nodes would fall into cells 1-4. If you had to split cell 1
>         above, then those 4 new cells would be number 11, 12, 13, 14 and
>         the remaining unsplit cells would still be 2, 3, 4. If you had
>         to further split cell 14, then the new cells would be numbered
>         141, 142, 143, 144. So each time a cell gets subdivided, it gets
>         another digit added.
>
>         This is the challenge of design good algorithms, if we have
>         millions of edges and node, we need to be efficient memory wise
>         with our data structures but still be fast. In the database, you
>         need to think about where the data is coming from (ie: tables
>         using queries) and when it gets moved into memory. You can't
>         think just C code or database code, you have to use both.
>
>         The idea being that we want to prepare our data in tables, then
>         issue queries from C to get the new edges we need to append
>         cell(s) to our graph. So I'm thinking that we have a recursive
>         plpgsql procedure that splits the nodes into the appropriate
>         quadtree cells based on some rules. So for example we have a
>         vertices_tmp table that we use to assign node numbers to nodes,
>         we could add a cell column like this:
>
>         CREATE TABLE vertices_tmp
>         (
>            id serial NOT NULL,
>            cell bigint,
>            the_geom geometry,
>         );
>
>         and after we run the quadtree analysis each node is assigned a
>         cell number. The edge table has node_a and node_b assigned to it
>         also.
>
>         If we want all edges related to cell 114 then we can do a query
>         like:
>
>         select b.*
>            from vertices_tmp a, edges b
>           where a.cell=114 and (a.id <http://a.id>=b.node_a or a.id
>         <http://a.id>=b.node.b);
>
>         Thoughts?
>
>         -Steve
>
>
>             Thanks.
>
>
>
>
>             On Sat, Apr 13, 2013 at 6:20 AM, Stephen Woodbridge
>             <woodbri at swoodbridge.com <mailto:woodbri at swoodbridge.com>
>             <mailto:woodbri at swoodbridge.__com
>             <mailto:woodbri at swoodbridge.com>>> wrote:
>
>                  On 4/11/2013 3:24 PM, Mukul priya wrote:
>
>                      Hi Steve and Daniel,
>
>
>                                You suggested extending the present
>             algorithms such
>                      that its
>                      input  can take more points and not only the source and
>                      destination . i
>                      think this can be implemented and i will soon come
>             up with
>                      implementation details( kind of more technical ) .
>
>                                Can you be a liitle bit more elaborate about
>                      partioning data
>                      into spatial chunks or even suggest some readings .
>             I can then
>                      come up
>                      with some better ideas about implementing it.
>
>
>                  This is just me thinking out loud :)
>
>                  Lets say we construct a grid of one degree squares, you can
>                  visualize it by drawing a grid over your map.
>
>                  Then you can associate all the nodes with the grid they
>             fall in. We
>                  might also need to associate edges to the grids also
>             and an edge the
>                  crosses over a grid boundary might need to be
>             associated with two
>                  grids. This could be done with some simple relational
>             tables like:
>
>                  node_id|grid_id  or  edge_d|grid_id
>
>                  So my idea would be to do the routing like this:
>
>                  1. get the start node or edge
>                  2. build the graph based on loading the items in the
>             related grid
>                  3. mark the boundary nodes (we might want to do this
>             when we grid them)
>                  4. run the algorithm until we find the target node or
>             hit a boundary
>                  node
>                  5. on hitting a boundary:
>                     a. we check if the connected grid is loaded and
>             continue if it is
>                     b. or we extent the graph with the new grid
>                  6. continue with the routing
>
>                  We might want to be able to dynamically change the size
>             of the grid
>                  cell based on the number of items in it. This would
>             give us better
>                  performance when transitioning from rural areas into
>             urban areas
>                  where there is a greater density of road segments.
>             Think of a
>                  quadtree where we split it based on number of entities.
>
>
>                                Daniel , i took a look at the oracle link
>             that you
>                      provided but
>                      there was no details about how it has been
>             implemented , it was more
>                      about how one can use it. May be a bit  more search
>                and luck might
>                      take me to its implementation document :) .
>
>
>                  Right, it is useful if you look at the documentation
>             and ask why did
>                  they do it that way and what does it imply about how it
>             works behind
>                  the scenes.
>
>
>                                 The other thing that you mentioned was
>             about contraction
>                      Hierarchy . Still the nodes have to be ordered
>             based on some
>                      criteria or
>                      according to their importance . We can  use natural
>             hierarchy
>                      present in
>                      the network for doing that .
>
>
>                  This is not related to what you proposed. It is an
>             algorithm that
>                  does a lot of precompuation, that is LOTS in capitals,
>             but it can
>                  get results in milliseconds for cross country routes.
>
>
>                                  i will be really grateful if anyone can
>             correct me
>                      in case if
>                      my thought process in not on the right lane and
>             sorry for the
>                      late reply
>                      as my academic session  is in progress too
>             .Meanwhile  i am
>                      trying to
>                      get fluent with git ,cmake and other tools.
>
>
>                  So read over our wiki:
>
>             https://github.com/pgRouting/____pgrouting/wiki
>             <https://github.com/pgRouting/__pgrouting/wiki>
>
>                  <https://github.com/pgRouting/__pgrouting/wiki
>             <https://github.com/pgRouting/pgrouting/wiki>>
>
>                  The way I see it at the moment there are two unrelated
>             proposals on
>                  the table (I'm leaving out the contraction hierarchy):
>
>                  1. multi point routing
>                  2. partition JIT graph building while routing
>
>                  Item 1 is fairly trivial technically, I think, but if
>             you were to
>                  upgrade all the algorithms to do this it would be a lot
>             of work and
>                  a useful contribution to pgrouting.
>
>                  Item 2 is more of a design and code a new algorithm and
>             you would
>                  probably want to focus on using astar or trsp algorithm
>             to do this
>                  with. This one is more technically challenging and has
>             more unknowns
>                  in it but I think it should be doable.
>
>                  If you are interested in reading about contraction
>             hierarchies:
>             https://www.google.com/#q=____contraction
>             <https://www.google.com/#q=__contraction>
>
>                  <https://www.google.com/#q=__contraction
>             <https://www.google.com/#q=contraction>> hierarchies
>
>                  Thanks,
>                     -Steve
>
>                      Thanks .
>
>                      Mukul
>
>
>
>
>                      On Thu, Apr 11, 2013 at 6:47 PM, Stephen Woodbridge
>                      <woodbri at swoodbridge.com
>             <mailto:woodbri at swoodbridge.com>
>             <mailto:woodbri at swoodbridge.__com
>             <mailto:woodbri at swoodbridge.com>>
>                      <mailto:woodbri at swoodbridge.
>             <mailto:woodbri at swoodbridge.>____com
>                      <mailto:woodbri at swoodbridge.__com
>             <mailto:woodbri at swoodbridge.com>>>> wrote:
>
>                           With pgRouting, we do most things dynamically,
>             here is the
>                      basic flow:
>
>                           1. Given a collection of input, points, nodes,
>             or edges
>                           map these to nodes or edges depending on
>             algorithm.
>
>                           2. Select the edges we need to build the graph
>
>                           3. build the graph and solve it
>
>                           4. return the results
>
>                           All our algorithms today only take start and
>             end points.
>                      They could
>                           be extended to take points. Each "point" (I
>             use "point" as
>                      a generic
>                           term because it might be a lat/lon, node id,
>             edge id and
>                      offset,
>                           etc) would need to be mapped to the
>             appropriate input need
>                      for any
>                           given algorithm.
>
>                           So for node based algorithms like Dijkstra,and
>             astar it
>                      would get
>                           resolved to a node. For TRSP it would get
>             mapped to the
>                      nearest edge
>                           and offset along that edge. Postgis has lots
>             of handy tools for
>                           doing this.
>
>                           -Steve
>
>
>                           On 4/10/2013 10:50 PM, Mukul priya wrote:
>
>                               Thanks for the reply steve . i have
>             already cloned the
>                      github
>                               repository
>                               and looking into various aspects of it .
>
>                               For IRNN querry implementation i think it
>             is a good
>                      idea to sub
>                               divide
>                               the whole route and generate n+1 routes
>             separately ,
>                      say from S
>                               to F1 ,
>                               F1-F2 ,..... F(n-1)-Fn , Fn to D . i
>             wanted to know if
>                      we have
>                               that kind
>                               of a data where each and every facility is
>             mentioned on
>                      the map as a
>                               point (node ) . even if it is not directly
>             connected to
>                      the road
>                               network
>                               we can basically treat it a pseudo node
>             and then call
>                      the router
>                               . The
>                               other thing about optimization yes we can
>             do that using
>                      spatial
>                               range
>                               querries suppose there are several
>             instances of the same
>                               facility that a
>                               user wants to access then we can use
>             spatial range
>                      querries to
>                               locate
>                               that facility which is the nearest.
>
>
>                               On Thu, Apr 11, 2013 at 1:42 AM, Stephen
>             Woodbridge
>                               <woodbri at swoodbridge.com
>             <mailto:woodbri at swoodbridge.com>
>                      <mailto:woodbri at swoodbridge.__com
>             <mailto:woodbri at swoodbridge.com>>
>                      <mailto:woodbri at swoodbridge.
>             <mailto:woodbri at swoodbridge.>____com
>             <mailto:woodbri at swoodbridge.__com
>             <mailto:woodbri at swoodbridge.com>>>
>                               <mailto:woodbri at swoodbridge
>             <mailto:woodbri at swoodbridge>.
>                      <mailto:woodbri at swoodbridge
>             <mailto:woodbri at swoodbridge>.>______com
>
>
>                               <mailto:woodbri at swoodbridge.
>             <mailto:woodbri at swoodbridge.>____com
>                      <mailto:woodbri at swoodbridge.__com
>             <mailto:woodbri at swoodbridge.com>>>>> wrote:
>
>                                    On 4/10/2013 3:23 PM, Mukul priya wrote:
>
>
>                                        Hi ,
>
>
>                                    Hi Mukul,
>
>                                    Thank you for your interest in pgRouting.
>
>                                                       I am a  B.tech
>             fourth year
>                      student at
>                               IIIT-Hyderabad
>                                        pursuing a degree in computer
>             science and
>                      engineering
>                               and i will
>                                        be soon
>                                        pursuing a Masters Degree in the
>             field of Spatial
>                               Informatics
>                                        and the
>                                        research topic that i have been
>             working on is *"In
>                               route nearest
>                                        neighbour querries".*
>
>
>                                                       Last year i worked
>             on a project
>                      that was
>                               funded by
>                                        Honeywell technology solutions
>             and it gave me
>                      a lot of
>                               insight about
>                                        open source programming and
>             industrial work
>                      culture.
>
>                                        I was introduced to pgrouting by
>             *Prof. Venkatesh
>                               Raghavan* who
>                                        visited
>
>                                        our college last summer. i have
>             also used
>                      pgrouting for
>                                        implementing one
>                                        of my Honors project.
>
>                                        i have gone through the updated
>             ideas page and
>                      i am
>                               listing out
>                                        a topic
>                                        that i feel i can contribute to.
>
>                                        *Idea *
>
>                                        Network Partitioning
>
>                                        A very simple method using which
>             it can be
>                      done is :
>
>                                           * *Existence of a natural
>             Hierarchy*
>
>
>                                                   Generally road
>             networks are
>                      organized such
>                               that there
>                                        is some
>                                        natural hierarchy for example if
>             we look at
>                      the road
>                               network of
>                                        USA we
>                                        observe that there are national
>             highways which
>                      connect
>                               multiple
>                                        large
>                                        regions , inter state roads
>             connect places
>                      within these
>                               regions
>                                        , multi
>                                        lane roads connect city areas and
>             then there
>                      are small
>                               roads to
>                                        connect
>                                        individual houses.
>
>                                                     so what we can do is
>             first rank these
>                               classes that
>                                        constitute the road network and
>             then use the
>                      highest
>                               level roads to
>                                        divide the road network into
>             large regions
>                      enclosed by
>                               these
>                                        roads. each
>                                        of the divided regions can
>             further be divided
>                      again
>                               using next lower
>                                        level road.
>
>                                                     so suppose we have a
>             road network
>                      which n
>                               classes of
>                                        different roads then we can
>             create a tree of
>                      depth n-1
>                               where the
>                                        root of
>                                        the tree will represent the
>             entire road
>                      network and
>                               children of
>                                        the the
>                                        root node will represent the area
>             formed by
>                               partitioning the
>                                        root using
>                                        the level 1 ( highest ) edges and
>             so on . the
>                      nodes
>                               will basically
>                                        represent a smaller part of the
>             road network.
>
>                                                      The idea seems to
>             be very naive
>                      right now
>                               but if
>                                        anyone can
>                                        give some feedback whether it is
>             achievable or
>                      not or
>                               may be suggest
>                                        some modifications.
>
>
>                                    Yes this is the basics of how this
>             could work.
>                      Because we
>                               build our
>                                    graphs dynamically for each route
>             request, we can do
>                               something like
>                                    this today. Typically you have to
>             feed the route
>                      request
>                               and SQL
>                                    query that provides the edges needed
>             to build the
>                      graph and
>                               this can
>                                    be simply the bounding box of the
>             start and end
>                      point of
>                               the route
>                                    expanded slightly to allow the route
>             move outside that
>                               bounds by a
>                                    little if needed. A case in point are
>             start and
>                      end points
>                               that form
>                                    a vertical of horizontal line.
>
>                                    So for the natural hierarchy, you can
>             for a SQL
>                      query like:
>
>                                    select * from edges where
>             st_dwithin(the_geom,
>                      start_pnt,
>                               radius)
>                                    union
>                                    select * from edges where
>             st_dwithin(the_geom,
>                      end_pnt, radius)
>                                    union
>                                    select * from edges
>                                       where
>             st_expand(st_makeline(start_________pnt,
>
>                      end_pnt), pct)
>
>
>                                         and road_class < 4;
>
>                                    So this gets all edges regardless of
>             class at the
>                      start and
>                               end and
>                                    then gets all the major roads and
>             highways between the
>                               start and end
>                                    points. We can dynamically select the
>             edges that
>                      we want
>                               when we
>                                    build the graph.
>
>                                    Regardless of how you implement the
>             routing, the
>                      problem is all
>                                    about the data. If you have a road
>             segment the is
>                               misqualified, you
>                                    might end up with a network that is
>             broken between
>                      start
>                               and end.
>                                    This can alsoo happen if ramps are
>             not coded
>                      correctly.
>
>                                    One of the challenges we have today
>             is that we
>                      have to be
>                               able to
>                                    construct the whole graph in memory
>             before we can
>                      start
>                               routing.
>                                    This is ok for small areas but it is
>             a problem if
>                      you want to
>                                    generate a route between say Miami,
>             Florida and
>                      Seattle,
>                               Washington.
>                                    An interesting problem would be the
>             ability to
>                      partition
>                               the data in
>                                    spatial chucks and only load them as
>             the solver
>                      needed them.
>
>                                    If you think about your edges sorted
>             into say 1
>                      degree grid
>                               partitions,
>                                    then you load the partition for the
>             start point
>                      and start
>                               routing
>                                    using A* search, when you frontier
>             get to an edge
>                      of the
>                               grid you
>                                    are in, then you load the adjacent
>             grid and
>                      continue, if
>                               you bump
>                                    into another grid boundary that is
>             not loaded yet, you
>                               load, if it
>                                    is already loaded you continue.
>             Anyway food for
>                      thought! :)
>
>
>                                                       In route nearest
>             neighbour
>                      querries(
>                               IRNN) which
>                                        handle
>                                        querries like computation of
>             shortest path ,
>                      provided
>                               that the user
>                                        wants to visit facilities F1 , F2
>             ,.....FN
>                      while he/she
>                               drives
>                                        or walks
>                                        from source to destination. Network
>                      partitioning can
>                               optimize these
>                                        computations  too as the search
>             space reduces
>                               significantly once
>                                        we have
>                                        the partitions. Handling such
>             querries have
>                      not been
>                               implemented
>                                        yet. It
>                                        will be very helpful if we can
>             have some
>                      discussion
>                               about whether
>                                        implementing it is feasible or not.
>
>
>                                    What is we just added via support to
>             routing? Then
>                      we could do
>                                    something like say generate a route:
>             Start, F1,
>                      F2, ... Fn, End
>                                    This would allow us to build a graph
>             one time and
>                      then generate
>                                    multiple sub-routes with in the
>             graph. Today if
>                      you want to
>                               do that
>                                    you have to generate n+1 routes and
>             build the
>                      graph n+1
>                               times. We
>                                    could also do some preliminary
>             optimization of the via
>                               points based
>                                    on Euclidean distance using something
>             like TSP before
>                               calling the
>                                    router.
>
>
>
>                                                       It would be great
>             if someone
>                      could give
>                               a general
>                                        idea
>                                        how  to go about learning more
>             about the areas
>                               mentioned  with
>                                        respect
>                                        to the organization's
>             projects.Specially
>                      suggest those
>                               ideas
>                                        which the
>                                        developers think are achievable
>             for now . I
>                      will also
>                               be grateful if
>                                        somebody can guide me regarding
>             the development
>                               framework of
>                                        pgrouting
>                                        so that i get familiar with the whole
>                      framework in the
>                               coming days.
>
>
>                                    I would clone the github repository
>             and look at branch
>                               sew-devel-2_0
>                                    this is our new tree structure and it
>             has code,
>                      doc, and
>                               test all
>                                    organized in a nice way that makes it
>             easy to multiple
>                               contributors
>                                    work with the tree.
>
>                                    Ask questions, There is a tutorial
>             floating around
>                      and lots of
>                                    people that are will to help.
>
>                                    -Steve
>
>                                        Thank you .
>
>                                        Mukul Priya
>                                        Lab for spatial Informatics
>                                        IIIT-Hyderabad
>
>
>
>
>             _______________________________________________________
>
>
>                                        pgrouting-dev mailing list
>             pgrouting-dev at lists.osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>
>             <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>
>                               <mailto:pgrouting-dev at lists.
>             <mailto:pgrouting-dev at lists.>____osgeo.org <http://osgeo.org>
>                      <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>>
>                               <mailto:pgrouting-dev at lists
>             <mailto:pgrouting-dev at lists>.
>                      <mailto:pgrouting-dev at lists
>             <mailto:pgrouting-dev at lists>.>______osgeo.org
>             <http://osgeo.org> <http://osgeo.org>
>                               <mailto:pgrouting-dev at lists.
>             <mailto:pgrouting-dev at lists.>____osgeo.org <http://osgeo.org>
>                      <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>>>
>             http://lists.osgeo.org/________mailman/listinfo/pgrouting-dev <http://lists.osgeo.org/______mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/______mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev>__>
>
>
>             <http://lists.osgeo.org/______mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>__>__>
>
>
>
>
>             <http://lists.osgeo.org/______mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>__>
>
>
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>__>__>__>
>
>
>
>             _______________________________________________________
>
>
>                                    pgrouting-dev mailing list
>             pgrouting-dev at lists.osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>
>             <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>
>                               <mailto:pgrouting-dev at lists.
>             <mailto:pgrouting-dev at lists.>____osgeo.org <http://osgeo.org>
>                      <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>>
>                               <mailto:pgrouting-dev at lists
>             <mailto:pgrouting-dev at lists>.
>                      <mailto:pgrouting-dev at lists
>             <mailto:pgrouting-dev at lists>.>______osgeo.org
>             <http://osgeo.org> <http://osgeo.org>
>                               <mailto:pgrouting-dev at lists.
>             <mailto:pgrouting-dev at lists.>____osgeo.org <http://osgeo.org>
>                      <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>>>
>             http://lists.osgeo.org/________mailman/listinfo/pgrouting-dev <http://lists.osgeo.org/______mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/______mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev>__>
>
>
>             <http://lists.osgeo.org/______mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>__>__>
>
>
>
>
>             <http://lists.osgeo.org/______mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>__>
>
>
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>__>__>__>
>
>
>
>
>
>
>
>               _____________________________________________________
>                               pgrouting-dev mailing list
>             pgrouting-dev at lists.osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>
>                      <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>
>                      <mailto:pgrouting-dev at lists.
>             <mailto:pgrouting-dev at lists.>____osgeo.org <http://osgeo.org>
>                      <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>>
>             http://lists.osgeo.org/______mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>__>
>
>
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>__>__>
>
>
>
>               _____________________________________________________
>                           pgrouting-dev mailing list
>             pgrouting-dev at lists.osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>
>                      <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>
>                      <mailto:pgrouting-dev at lists.
>             <mailto:pgrouting-dev at lists.>____osgeo.org <http://osgeo.org>
>                      <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>>
>             http://lists.osgeo.org/______mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>__>
>
>               <http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>__>__>
>
>
>
>
>                      ___________________________________________________
>                      pgrouting-dev mailing list
>             pgrouting-dev at lists.osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>
>             <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>
>             http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>__>
>
>
>                  ___________________________________________________
>                  pgrouting-dev mailing list
>             pgrouting-dev at lists.osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>
>             <mailto:pgrouting-dev at lists.__osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>>
>             http://lists.osgeo.org/____mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev>
>
>             <http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>__>
>
>
>
>
>             _________________________________________________
>             pgrouting-dev mailing list
>             pgrouting-dev at lists.osgeo.org
>             <mailto:pgrouting-dev at lists.osgeo.org>
>             http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev
>             <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>
>
>         _________________________________________________
>         pgrouting-dev mailing list
>         pgrouting-dev at lists.osgeo.org <mailto:pgrouting-dev at lists.osgeo.org>
>         http://lists.osgeo.org/__mailman/listinfo/pgrouting-dev
>         <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>
>
>
>
>
> _______________________________________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-dev
>



More information about the pgrouting-dev mailing list