Routing takes big amount of data and processing time. I think option 1 is the 
best one.
Why someone else' server would afford for your users ?

Check osrm or pgrouting.

----- Reply message -----
De : "Matt Hoover" <[email protected]>
Pour : <[email protected]>
Objet : [OSM-dev] Seeking advice for OSM based routing application
Date : dim., mars 17, 2013 22:52
I recently developed a fairly simple open-source application for 
creating/editing/analyzing GPX files.  It relies heavily on OSM tiles and 
JMapViewer (a JOSM component).  If interested, the beta version is hosted at 
http://www.gpxcreator.com.


Currently the only way to create a GPX file is by pointing and clicking on the 
map repeatedly, for each point in the route.  My ultimate goal though is to 
have start-to-end routing, and I'd like it to work for backcountry 
hiking/biking/etc trails.  OSM seems to be the best map system I've found yet 
as far as having a lot of these trails included in its maps (in USA west coast 
at least, where I've looked so far).  I haven't worked much with actual OSM 
data yet (only tiles), but I understand the main way to download the data is in 
an XML format.  In trying to accomplish my goal of adding routing to my 
application, I'm faced with what I see as a few limited options, and none of 
them seem ideal.  I'd appreciate insight/advice from people more experienced 
both with OSM data and routing implementations.  Here are the options as I see 
them:


1) Host OSM data myself and run a routing algorithm on the server.  This would 
be ideal in theory, but in reality I doubt I can afford to do something so big.
2) Have the routing algorithm run on client machine, and request the data it 
needs from OSM with each routing attempt.  This seems bad for a number of 
reasons.  Even to do a relatively short route ( < 100 miles), it seems like a 
pretty big chunk of data would need to be downloaded to the client (like 50MB 
at least in some quick tests I did).  This is not ideal for the client, nor is 
it nice to the OSM server.  Plus all that XML would need to be parsed on the 
client and re-structured into some format the routing algorithm could use, 
which would be time consuming for the client.

3) Use one of the existing servers which has its own data, routing 
implementation, and public API.  This sounds like a very promising idea at 
first.  However, I'm running into some weird issues, and I've tried every 
single option listed in OSM wiki.  I first tried YOURS.  See the linked image 
here, an attempted route near [38.198108, -119.883907].  The routing algorithm 
refuses to jump from the road to the trail, instead choosing to do a long 
roundabout trip.  I tried several other online routers, and they all made the 
same choice, so I naturally assumed maybe there was a problem with the OSM data 
at this point.  But I examined it up close with JOSM and the ways seem 
connected properly (though I could be mistaken since I haven't used JOSM much). 
 To make matters stranger, I finally found a single service (out of all the 
many I tried), which is able to route correctly across that junction!  This 
service is BRouter, which the linked image here shows performing as desired.  
However, BRouter does not have a public API, so I would seem to be out of luck 
for all options here.

4) Client side routing logic using OSM server-side data?  The routing algorithm 
would make many single element requests to the server, as it runs, downloading 
individual nodes/ways needed for the routing, rather than all data in vicinity 
as in option 2 above.  I don't even think this is a legitimate idea, since I 
would guess that there would be way too many messages sent back and forth 
between client and server, and communication cost would be far too expensive 
(though overall amount of data downloaded would be far less than option 2 
above).  But the idea crossed my mind so I figured I'd add it to the list.  
Maybe I'm wrong here though and the communication cost is affordable?


Are the any other options I've missed?  Are any of my considerations of these 4 
options wrong?  Which is the best option for my situation, in your opinion?

Thanks in advance for any advice anybody can offer.  I really appreciate it.
_______________________________________________
dev mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/dev

Reply via email to