[RouterGeocoder] Poly line features

Stephen Woodbridge woodbri at swoodbridge.com
Sat Mar 28 17:13:49 EDT 2009


Ashraf Hossain wrote:
> I was studying the Boost Graphics library, this is a huge project with
> a big man power.
> I think developing a huge graph library should not be our target.
> 
> In my mind I was thinking developing a graph builder (independent
> application) along with a graph library which can be very easily

Yes definitely we need a graph builder first. So that all the 
preprocesing that you can do before solving only gets done once and not 
on every request.

> usable in mapserver. The library not only solve the shortest path but
> also the text driving direction along with navigation support.
> I alredy developed almost same library for a organization in my
> previous experience which is being used professionally.Though their
> requirement was not too big.

pgRouting already handles modest sized problems. I think one of the 
challenges for OpenRouter is to develop a commercial grade router that 
can handle graphs with 25-30 million edges. This is how big Navteq data 
is for North America or Europe and I assume TeleAtlas is of a similar size.

> Beside this I want to develop a library where the weight of a edge is
> changeable through a request. Because in the modern world all kind of
> service provider want to change the traffic information dynamically.

Yes there are a lot of provides in US and Europe that supply traffic 
data encoded with Navteq LINK_ID values. The LINK_ID is the unique edge 
identifier.

> And more or less I am too much motivated and inerested to contribute
> in routergeocoder library development.

I'm sorry does this mean you are interested? If so that would be really 
great.

> If I am wrong please let me know.

Well you as the one that is putting a lot of the effort in has the say 
in want gets done. There are a lot of smaller implementations that can 
handle city, county or state wide sized data sets. The real challenge 
that I would think would be of interest to potential partners that might 
contribute funding would be a router that can do the things you want to 
do but for large data sets, like all of US and Canada or all of Europe. 
And regardless of funding issues, it is these larger solutions that 
would make for an interesting OpenRouter project and I think will draw 
the attention of a wider audience.

I have thought a lot about these problems and Anton Patrushev and I have 
discussed them quite a bit. Anton, please jump into this discussion. You 
and I don't always agree but your thoughts and insights are always welcome.

Boost is a large comprehensive "collection" of algorithms, but you only 
need to use small pieces of it in any project. A good example is that 
pgRouting embeds a small part of it into the postgresql server. The same 
could be done for mapserver. Either way you go, I would encourage you to 
think about it as a library that can be called from mapserver, 
posgresql, wrapped via SWIG in perl, php, etc. Make is a module that can 
easily be reused and extended. Separate the logical data stores from the 
physical access to that storage, so that if someone want to store the 
data in a SQL engine they can easily rewrite the access routines to 
put/get the data from the appropriate place.

In the Boost libraries they use a concept of a "visitor" that can be 
associated with a node or an edge. The visitor can do things like look 
up dynamic cost information or modify behavior because of turn 
restrictions, etc. I learned a lot about Boost Graph just be reading 
through the Graph tutorial in a couple of hours. I guess one of the 
challenges might be that there is a learning curve around the Boost 
libraries vs build something that you are already familiar with.

Regardless, of the direction you choose to go, I'm sure you will get 
support and advice from the list and from me.


More information about the Routergeocoder mailing list