I am currently trying to implement rendering very low zoom-levels on the client in my navigation-app "Traveling Salesman". I would like to gather some feedback on how to do this best.
== What has been done== What I have done so far is to store 3 additional simplified maps LOD1, LOD2 and LOD3 on the client. (Compared to the full map LOD0 they need only insignificant storage.) * LOD1 only basically contains secondary and higher roads. * LOD2 only basically contains primary and higher roads. * LOD3 only basically contains motorways * each level has a minimum for the allowed bounding-boxes of ways * each level simplifies detailed curves by course-error with increasing thresholds See here for details: http://travelingsales.svn.sourceforge.net/viewvc/travelingsales/libosm/src/org/openstreetmap/osm/data/LODDataSet.java?view=markup == The issue == Long motorways and coastlines are broken up into small fragments. It seems that filtering on the length of the individual way is not enough as large parts of important motorways are filtered out. == What I intend to do == I would like to combine split-up roads before simplifying them. This is what I am currently working on and where I am not sure if my aproach is the best that can be done. requirements: * Ways, relations and nodes can be updated incrementaly without importing the complete planet/continent/country again. * Rendering must happen offline and realtime. No tile-rendering. my aproach: * I want to use existing "type=composite"-relations that already group long motorways and create them where they are missing (e.g. on long secondary ways for LOD1). * Add a simplified way(/ways) that combines all the ways of the relation as a new way to the relation using a special role-tag. * This simplified way is only used internally, never exported or uploaded and recreated whenever the releation or any contained way is changed, added or removed. * LOD1-3 store only the relation and the simplified way but not the individual ways referenced by the relation. (No referential integrity required.) * Also extend the simplification-algorithm to also remove nodes that are too near each other even of they introduce a significant course-error. pro: * realtime-rendering ways like the european costline should be possible * renderer need not care about anything but rendering all ways in the bounding-box at the current LOD-level and zoom-level. con: * may be slow while importing new ways (e.g. simplifying the european coastline) ** this may be relativated by only incremental updates to the simplified way What do you guys think of this aproach? It it a good way to do this? _______________________________________________ dev mailing list [email protected] http://lists.openstreetmap.org/listinfo/dev

