OpenStreetMap Explorer Changelog

What's new in OpenStreetMap Explorer 1.0.4420.23885 Build 02.08.12

Feb 8, 2012
  • Fixed bugs in RoutingEngine when routing for Scooter/Moped (and route not found).
  • Improved A* heuristic, faster queries.

New in OpenStreetMap Explorer 1.0.4413.32325 Build 02.01.12 (Feb 2, 2012)

  • Cleaned up routing engine code. Removed thread locking that was put in place to support parallel bidirectional search (backward and forward searches running on their own threads). Since that algorithm turned out to perform worse than the single-thread version, I removed the code and extra locks on the database. The result is slightly improved query speed and less locking overhead on the DB. The routing engine code has also been more condensed and is a little easier to follow. The most-frequently called functions have also been streamlined and produce fewer new objects. - Routing engine will now initialize start and end road links and begin loading parts of the network right after a location is clicked on a background thread. Result is slightly faster queries as the algorithm will usually be primed with start and end location (on the actual road network) before calculate route is clicked. The routing engine must first resolve a clicked coordinate location to the closest traversable street, which can take up to 0.5 - 1s (depending on the amount cached in memory). Running this on background threads makes queries more efficient. - Tile manager now deletes tiles furthest from the current map view when the cache limit is reached. This eliminates weird flickering where tiles are removed from a previous location that is revisted (and the tiles re-downloaded and rendered). - Small changes to main map invalidation. Zoom and scrolling smoother. - Because I'm still making changes to the database and object design, I will include a data file with each version of the project. This is because any changes render previous data files unusable as old versions of the database won't be able to deserialize the new objects. When the data file parser is completed I will separate project files and data files and maintain version control and compatibility. Because even minor changes to the DB will make new files incompatible, I will only start separating them once I feel the DB design is reasonably good. As I add features to the DB I have to account for missing or erroneous map data so that both the DB and dependent programs know how to handle them.