[pgrouting-dev] Gsoc 2013 Preliminary project proposal

Mukul priya mukul2047 at gmail.com
Mon Apr 22 23:41:13 PDT 2013


Hi Dave ,

Can I suggest that a 'test grid' be created for this project and be made
part of pgroute package.

In that way, when somebody is having a problem, they can be asked to run a
problem basied on the 'test gird' and it can be discovered very quickly if
there is problem with the pgroute package or something else.
 Can you be a bit more elaborate about this??

Sorry for replying late.


Mukul




On Tue, Apr 16, 2013 at 9:00 PM, Stephen Woodbridge <woodbri at swoodbridge.com
> wrote:

> 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<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<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<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<woodbri at swoodbridge.com>
>> >
>>             <mailto:woodbri at swoodbridge.__**com
>>             <mailto:woodbri at swoodbridge.**com <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>
>> >
>>
>>
>>                  <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>
>> >
>>
>>
>>                  <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 <woodbri at swoodbridge.com>>
>>             <mailto:woodbri at swoodbridge.__**com
>>             <mailto:woodbri at swoodbridge.**com <woodbri at swoodbridge.com>>>
>>                      <mailto:woodbri at swoodbridge.
>>             <mailto:woodbri at swoodbridge.>_**___com
>>                      <mailto:woodbri at swoodbridge.__**com
>>             <mailto:woodbri at swoodbridge.**com <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 <woodbri at swoodbridge.com>>
>>                      <mailto:woodbri at swoodbridge.__**com
>>             <mailto:woodbri at swoodbridge.**com <woodbri at swoodbridge.com>>>
>>                      <mailto:woodbri at swoodbridge.
>>             <mailto:woodbri at swoodbridge.>_**___com
>>             <mailto:woodbri at swoodbridge.__**com
>>             <mailto:woodbri at swoodbridge.**com <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 <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<pgrouting-dev at lists.osgeo.org>
>> >
>>             <mailto:pgrouting-dev at lists.__**osgeo.org <http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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<http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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<http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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>
>> **>__>__>
>>
>>
>>
>>
>>
>>             <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<pgrouting-dev at lists.osgeo.org>
>> >
>>             <mailto:pgrouting-dev at lists.__**osgeo.org <http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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<http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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<http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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>
>> **>__>__>
>>
>>
>>
>>
>>
>>             <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<pgrouting-dev at lists.osgeo.org>
>> >
>>                      <mailto:pgrouting-dev at lists.__**osgeo.org<http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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<http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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<pgrouting-dev at lists.osgeo.org>
>> >
>>                      <mailto:pgrouting-dev at lists.__**osgeo.org<http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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<http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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<pgrouting-dev at lists.osgeo.org>
>> >
>>             <mailto:pgrouting-dev at lists.__**osgeo.org <http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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<pgrouting-dev at lists.osgeo.org>
>> >
>>             <mailto:pgrouting-dev at lists.__**osgeo.org <http://osgeo.org>
>>             <mailto:pgrouting-dev at lists.**osgeo.org<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<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 <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
>> 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<http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgrouting-dev/attachments/20130423/dd96b871/attachment-0001.html>


More information about the pgrouting-dev mailing list