2010-10-30 Andrew M. Bishop Version 1.5 released 2010-10-30 Andrew M. Bishop * doc/README.txt, doc/NEWS.txt: Updated for version 1.5. 2010-10-18 Andrew M. Bishop * src/profiles.c: Use sqrt() function to reduce the effect of property preferences close to 50%. Ensure that preferences cannot equal zero (error on division). * doc/ALGORITHM.txt, doc/INSTALL.txt, doc/USAGE.txt: Updated with information about the new features. * doc/CONFIGURATION.txt, doc/TAGGING.txt: Add in the footroute and bicycleroute configuration options and route relation tag processing. 2010-10-16 Andrew M. Bishop * src/files.c: Fixed some comments for recent changes. 2010-10-09 Andrew M. Bishop * xml/routino-profiles.xml: Add footroute and bicycleroute to the profiles. * src/files.c, src/files.h, src/relationsx.c: The ReOpenFile() function cannot be read/write because it stops the router running with read-only access to the database. * src/nodesx.c, src/relationsx.c, src/segmentsx.c, src/superx.c: Fix previous check-in on this set of files. * src/xmlparse.l: Ensure that comparisons are made with unsigned chars. 2010-10-03 Andrew M. Bishop * src/nodesx.c, src/relationsx.c, src/segmentsx.c, src/superx.c: Don't try mapping a file if it is zero length (e.g. no super-segments). * src/files.c, src/files.h, src/relationsx.c: Add a function to map a file writeable and use it for updating the ways when processing route relations. * src/relationsx.c: Avoid self-recursion and adding route information to relations that already have it. 2010-09-25 Andrew M. Bishop * src/osmparser.c, src/relationsx.c, src/relationsx.h, src/waysx.h: Apply the route=bicycle or route=foot tags from the relation to all ways contained in it and to all ways in all sub-relations of it (including recursion to depth 5). This requires all relations to be stored even if not routes because they might be included by another relation that is. * src/segmentsx.c: Don't sort the (super-)segments if there are none. * src/nodesx.c, src/functions.h, src/sorting.c: Rename the heapsort() function to filesort_heapsort(). 2010-09-19 Andrew M. Bishop * src/files.c, src/files.h, src/nodesx.c, src/segmentsx.c, src/sorting.c, src/waysx.c: Change the names of the functions used to open files, change the ReOpen function to open R/W. * src/relationsx.c: Remove the sorting of the route relations. 2010-09-17 Andrew M. Bishop * src/nodesx.c, src/segmentsx.c: Zero the NodesFile and SegmentsFile data structures before writing them (zeros unused bytes). * src/planetsplitter.c, src/waysx.c, src/waysx.h: Split the sorting of waysx from the compacting so that the route relation information can be included before compacting. * xml/routino-tagging.xml, src/functionsx.h, src/osmparser.c, src/planetsplitter.c: Parse relations and extract foot and bicycle routes to be added as properties to the ways. * src/types.c, src/types.h: Add footroute and bicycleroute properties. * src/relationsx.c, src/relationsx.h: New file. * src/typesx.h, src/Makefile: Add files and datatypes for processing relations. * xml/routino-tagging-nomodify.xml, xml/routino-tagging.xsd, src/tagging.c: Process tags for relations. 2010-09-16 Andrew M. Bishop * src/waysx.c, src/segmentsx.c, src/nodesx.c: Fix the comment for the Append...() function. 2010-09-15 Andrew M. Bishop * xml/routino-profiles.xml, xml/routino-tagging.xml, xml/routino-translations.xml, src/output.c, src/translations.c, src/types.c, src/types.h: Add routing on ferries. * src/filedumper.c, src/planetsplitter.c, src/router.c: Bug fix for last change. * src/filedumper.c, src/planetsplitter.c, src/router.c: Improve the usage information to tell which command line argument was in error. * src/profiles.c: Fix --help-profile-perl option and make perl and JSON outputs more pretty. * src/router.c, src/planetsplitter.c: Usage message has wrong option name. * src/xmlparse.l: Fix last change to make UTF-8 parsing more strict, also added strict conversion to XML-safe character references. * src/translations.c: Convert translations read from file into XML-safe encodings before using them. * src/output.c: HTML file has UTF-8 meta-tag. * xml/routino-translations.xml: Revert to UTF-8 multi-byte representations instead of character references. 2010-09-14 Andrew M. Bishop * src/xmlparse.l: Stricter checking on XML data (Unicode). 2010-09-05 Andrew M. Bishop * xml/Makefile, src/Makefile, doc/Makefile, Makefile: Move all of the installation pathnames to the top level Makefile and include it into the lower level makefiles. * src/planetsplitter.c, src/router.c, src/tagmodifier.c: Use the installed tagging.xml, profiles.xml or translations.xml files as the fallback option if no other given. 2010-09-04 Andrew M. Bishop * xml/routino-translations.xml: Change German translations from named HTML character encodings to numeric ones (works in GPX files as well as HTML). * xml/routino-translations.xml: Added Dutch translations (from Jan Jansen). 2010-08-30 Andrew M. Bishop * xml/routino-translations.xml: Change German translation to UTF-8, add comments indicating the origin of the two translations. * xml/routino-tagging-nomodify.xml: Relation rules are not allowed at all. * xml/Makefile, src/Makefile, doc/Makefile, Makefile: Added 'install' to top level (and lower) Makefiles. * src/ways.h, src/output.c: Change the names of the functions used to get the highway names. * src/filedumper.c: Only print the way name in OSM output when the way has a name. Change the names of the functions used to get the highway names. * src/profiles.c: Fix bug with writing out JSON profile information. 2010-08-30 Andrew M. Bishop * src/ways.h, src/output.c: Change the names of the functions used to get the highway names. * src/filedumper.c: Only print the way name in OSM output when the way has a name. Change the names of the functions used to get the highway names. * src/profiles.c: Fix bug with writing out JSON profile information. 2010-08-04 Andrew M. Bishop * src/output.c, src/segmentsx.c, src/types.h, src/fakes.c, src/functions.h, src/nodesx.c, src/optimiser.c: Change the way that fake nodes and segments are recognised (allows nearly 4G nodes to be stored instead of 2G nodes). 2010-08-03 Andrew M. Bishop * src/filedumper.c, src/nodes.h, src/nodesx.c, src/optimiser.c, src/types.h: Rename the variables that hold the node allowed transports and flags. 2010-08-02 Andrew M. Bishop * xml/routino-tagging-nomodify.xml, xml/routino-tagging.xml, xml/routino-tagging.xsd, src/filedumper.c, src/nodesx.c, src/nodesx.h, src/optimiser.c, src/osmparser.c, src/superx.c, src/tagging.c, src/types.h: Understand node traffic type restrictions. 2010-07-31 Andrew M. Bishop * src/profiles.h, src/types.c, src/types.h, src/ways.h, src/waysx.c: Rename the wayallow_t type to allow_t (since it applies to nodes as well now). * src/filedumper.c, src/nodes.h, src/nodesx.c, src/segmentsx.c, src/types.h: Add extra information to a node to store turn restrictions and properties. (Move the super-node bit from the first segment to here.) * src/nodesx.c, src/segmentsx.c, src/waysx.c: Assert if the number of nodes, segments or ways exceeds the legal range of the index counters. * src/nodes.h, src/nodesx.h, src/segments.h, src/segmentsx.h, src/ways.h, src/waysx.h: Change the data types to index_t where they are counting nodes/segments/ways. * src/nodes.h, src/nodesx.h, src/segments.h, src/segmentsx.h, src/ways.h, src/waysx.c, src/waysx.h: Ensure that seeking within a file uses a 64-bit offset. * src/nodesx.c, src/segmentsx.c, src/superx.c, src/waysx.c: Remove the assert statements that check the order of calling the functions. 2010-07-26 Andrew M. Bishop * src/filedumper.c, src/nodes.c, src/nodes.h, src/visualiser.c: Final part of slim mode for the router (node offsets). 2010-07-24 Andrew M. Bishop * src/nodesx.c, src/segmentsx.c, src/waysx.c: Some tidying up of the writing of the file headers. * src/ways.c, src/ways.h, src/waysx.c, src/filedumper.c, src/nodes.c, src/optimiser.c, src/output.c, src/profiles.c, src/visualiser.c: Finished slim mode for the router by adding ways. 2010-07-23 Andrew M. Bishop * src/filedumper.c, src/nodes.c, src/nodes.h, src/output.c, src/segments.c, src/segments.h, src/segmentsx.c: Added slim mode to the router for segments. * src/Makefile: Add the fakes.c file. * src/optimiser.c, src/results.c, src/results.h: Change the results structure to hold the index of the segment instead of a pointer to it. * src/types.h, src/router.c, src/functions.h: Move the fake nodes and segments to a new file. * src/fakes.c: New file. 2010-07-19 Andrew M. Bishop * xml/routino-profiles.xml: Reduce the "multilane" preference for motor vehicles. Gives too much bias with previous setting. 2010-07-15 Andrew M. Bishop * src/Makefile, src/filedumper.c, src/nodes.c, src/nodes.h, src/nodesx.c, src/visualiser.c: Added a slim mode to the router (just for nodes to start with). 2010-07-14 Andrew M. Bishop * src/segmentsx.h, src/superx.c, src/waysx.c, src/waysx.h, src/Makefile, src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c: Replaced the runtime selection of slim mode / non-slim mode with compile time selection that gives no runtime overhead but gives two executables. 2010-07-13 Andrew M. Bishop * src/nodesx.c, src/nodesx.h, src/segmentsx.c, src/segmentsx.h, src/waysx.c, src/waysx.h: Move the functions for slim mode out into the header file and make it inline. 2010-07-12 Andrew M. Bishop * src/files.h: New file. * src/segmentsx.h, src/sorting.c, src/superx.c, src/tagging.c, src/tagmodifier.c, src/translations.c, src/ways.c, src/waysx.c, src/waysx.h, src/filedumper.c, src/files.c, src/functions.h, src/nodes.c, src/nodesx.c, src/nodesx.h, src/optimiser.c, src/output.c, src/planetsplitter.c, src/profiles.c, src/router.c, src/segments.c, src/segmentsx.c: Create a files.h header and put some of the most heavily used files.c functions into it and make them inline. 2010-07-11 Andrew M. Bishop * src/segmentsx.c, src/segmentsx.h, src/files.c, src/nodesx.c, src/nodesx.h: Made the planetsplitter slim mode handle the output node and segment data in a slim way as well as in the input data. * src/nodesx.c, src/segmentsx.c, src/waysx.c: Change the names of the temporary files. 2010-07-10 Andrew M. Bishop Version 1.4.1 released 2010-07-10 Andrew M. Bishop * doc/NEWS.txt: Update NEWS for release. * doc/ALGORITHM.txt: Update documentation for slight modification to algorithm, also add more information about how preferences etc are handled. 2010-07-09 Andrew M. Bishop * src/Makefile: Default compilation flags include optimisation and not debugging symbols. 2010-07-08 Andrew M. Bishop * src/nodes.c: Fix error with finding closest segment to the specified point. * src/optimiser.c: Bug fix for not crashing when finding the middle part of the route. 2010-07-07 Andrew M. Bishop * src/results.c, src/optimiser.c: Changed the amount of memory allocated for intermediate results => routes much faster. * src/output.c: Remove compilation warning. * src/Makefile: Copy files to web directory like done in other Makefiles. * doc/Makefile: Change location of HTML files in web directory and clean up web directory on distclean. * src/xml/Makefile: Stop message being printed when make runs. * xml/Makefile: Fix error from last checkin and clean up web directory on distclean. 2010-07-06 Andrew M. Bishop * src/optimiser.c: Don't crash if the middle part of the route can't be found but exit cleanly. 2010-07-05 Andrew M. Bishop * src/superx.c: Change the algorithm used to determine supernodes. 2010-07-03 Andrew M. Bishop * xml/routino-translations.xml: Added German translation [patch from Christoph Eckert]. * src/translations.c: Don't crash if more than one language is in translations.xml but --language option is not used. 2010-06-28 Andrew M. Bishop * src/router.c: Don't crash if start and finish are the same point. 2010-06-27 Andrew M. Bishop * doc/DATA.txt: New file. * doc/ALGORITHM.txt, doc/CONFIGURATION.txt, doc/INSTALL.txt, doc/OUTPUT.txt, doc/README.txt, doc/TAGGING.txt, doc/USAGE.txt: Updated documentation to match new web site. * doc/Makefile: New file. * xml/Makefile: Add some new variables. 2010-06-26 Andrew M. Bishop * xml/routino-profiles.xml, xml/routino-tagging-nomodify.xml, xml/routino-tagging.xml, xml/routino-translations.xml, src/translations.c: Changed URLs to http://www.routino.org/ * doc/README.txt: *** empty log message *** * doc/OUTPUT.txt: Changed URLs to http://www.routino.org/ 2010-05-31 Andrew M. Bishop Version 1.4 released 2010-05-31 Andrew M. Bishop * doc/INSTALL.txt, doc/NEWS.txt, doc/README.txt: Update for version 1.4. * src/xml/Makefile: Make sure that distclean really cleans up. * Makefile: Make sure that xml sub-directory is made. * src/router.c: Fix the code that should stop routing if no segment is found. 2010-05-30 Andrew M. Bishop * doc/USAGE.txt: Add the planetsplitter tagging rules option (and remove the unnecessary options that it replaces), add the filedumper OSM dump option and add the tagmodifier program. * doc/TAGGING.txt: Describe the new tagging rules. * doc/OUTPUT.txt: Note that the HTML and GPX outputs are translated. * doc/CONFIGURATION.txt: Add the tagging rules configuration file. * doc/ALGORITHM.txt: An update to the current size of the UK database. * xml/routino-tagging-nomodify.xml: New file. * src/tagmodifier.c: A tagging XML file must be read (just like planetsplitter). * src/filedumper.c: Add the option to dump a region rather than all and to not output super segments. * src/optimiser.c: Fix printing the number of super-segments tried. 2010-05-29 Andrew M. Bishop * xml/routino-translations.xml, xml/routino-translations.xsd, src/ways.h, src/filedumper.c, src/osmparser.c, src/output.c, src/translations.c, src/translations.h: Translate the names given to unnamed roads (the highway type). * src/profiles.c, src/profiles.h, src/router.c: Stricter check on specified profile before routing. * src/router.c: Ensure that if no segment is found the routing stops. * src/nodes.c: When finding a closest segment one of the nodes must be within the search distance. 2010-05-28 Andrew M. Bishop * src/router.c: Make sure that some profiles are loaded. 2010-05-27 Andrew M. Bishop * src/optimiser.c, src/profiles.c: Fix bug with profile preferences (used incorrectly in route optimisation). * src/Makefile, src/filedumper.c, src/types.c, src/types.h: Add an option to filedumper to dump an OSM format file. 2010-05-25 Andrew M. Bishop * src/xmlparse.l: Fix bug with encoding XML strings. 2010-05-23 Andrew M. Bishop * xml/Makefile: Make sure that modified files are copied to web directory. * src/tagmodifier.c: Fix bug when filename is specified on command line. * src/tagging.c, src/tagging.h, src/tagmodifier.c, src/xmlparse.l, src/osmparser.c: Fix some memory leaks. * src/tagmodifier.c, xml/osm.xsd, xml/routino-osm.xsd, src/osmparser.c: Add the 'bound' element to the XML parser. 2010-05-22 Andrew M. Bishop * src/functionsx.h, src/osmparser.c, src/planetsplitter.c, src/ways.h, src/waysx.c, src/waysx.h: Remove the --transport=, --not-highway= and --not-property= options from planetsplitter because they can be done by the tagging.xml file now. 2010-05-18 Andrew M. Bishop * src/Makefile: Add tagmodifier program. * src/xmlparse.l: Handle floating point numbers in scientific notation. * src/planetsplitter.c: Read in the tag transformation rules before calling the OSM parser. * src/functionsx.h, src/osmparser.c: Almost completely re-written OSM parser using tagging transformations. * src/tagmodifier.c, src/tagging.h, src/tagging.c: New file. * xml/Makefile: Copy the tagging rules to the web directory. * xml/routino-tagging.xml, xml/routino-tagging.xsd, xml/routino-osm.xsd: New file. * xml/osm.xsd: Small fix for OSM schema. 2010-05-14 Andrew M. Bishop * src/types.c: Remove highway type aliases from HighwayType() function. * src/xmlparse.h, src/xmlparse.l: Allow empty strings to be returned. 2010-05-10 Andrew M. Bishop * src/xmlparse.h, src/xmlparse.l: The line number is now a long integer. * src/xml/Makefile: Running 'make test' now compiles everything first. 2010-04-28 Andrew M. Bishop * src/xml/Makefile: Delete zero length file if xsd-to-xmlparser fails. * src/nodes.c, src/nodesx.c, src/segments.c, src/segmentsx.c, src/ways.c, src/waysx.c: Change file format to allow 64-bit off_t type with 32 bit void* type. * src/Makefile, src/filedumper.c, src/xml/Makefile: Compile with _FILE_OFFSET_BITS=64 to get 64-bit fopen() and stat(). 2010-04-27 Andrew M. Bishop * src/output.c: Fix mistake of writing GPX information to wrong file. * doc/OUTPUT.txt, doc/CONFIGURATION.txt: New file. * doc/TAGGING.txt, doc/USAGE.txt, doc/ALGORITHM.txt, doc/INSTALL.txt, doc/NEWS.txt, doc/README.txt: Interim checkin of updated documentation. 2010-04-24 Andrew M. Bishop * src/router.c: Merged the three functions to output the head/body/tail of the results back into a single function. Added the '--output-none' option. * src/functions.h, src/output.c: Merged the three functions to output the head/body/tail of the results back into a single function. * xml/routino-translations.xml, xml/routino-translations.xsd, src/output.c, src/translations.c, src/translations.h: Added translations for the HTML output. * src/xmlparse.h, src/xmlparse.l: Changed functions from const. * src/output.c: Add the copyright information into the translations.xml file instead of the separate copyright.txt file. Add the translated copyright strings into the outputs. * src/functions.h, src/router.c, src/translations.c, src/translations.h: Add the copyright information into the translations.xml file instead of the separate copyright.txt file. * src/xmlparse.h, src/xmlparse.l: Add an option to not convert the XML strings into decoded representations (saves converting them back later for the translated strings). 2010-04-23 Andrew M. Bishop * src/xml/xsd-to-xmlparser.c, src/translations.c, src/xmlparse.h, src/xmlparse.l, src/profiles.c: Pass the tag name to the tag function. 2010-04-22 Andrew M. Bishop * Makefile: Fix bug in makefile. * xml/Makefile: Move the translations into the web directory. * xml/routino-translations.xml, xml/routino-translations.xsd: New file. * src/output.c: Changed HTML output to be useful in web pages. * src/xmlparse.l: Restart properly so that a different file can be read. 2010-04-13 Andrew M. Bishop * src/xml/xsd-to-xmlparser.c, src/profiles.c, src/translations.c: Name the tag variables and functions after the XSD data type and not the tag name that uses it. 2010-04-12 Andrew M. Bishop * src/profiles.c, src/translations.c, src/xmlparse.h, src/xmlparse.l, src/xml/xsd-to-xmlparser.c, src/xml/Makefile: Change the last parameter to the ParseXML function to be general options. * src/Makefile, src/types.h, src/ways.c, src/ways.h: Move the type checking/printing functions from way.c to type.c. * src/types.c: New file. 2010-04-11 Andrew M. Bishop * src/xml/xsd-to-xmlparser.c, src/profiles.c, src/translations.c, src/xmlparse.h, src/xmlparse.l: Added helper functions for parsing strings into numbers. Added macros to perform common error checking. Change XML parser callback functions to return an error status. 2010-04-10 Andrew M. Bishop * src/router.c: Fix usage information. * src/translations.h, src/translations.c: New file. * src/output.c: Added translations for GPX and turn/heading. * src/Makefile, src/router.c: Added file of translations and language selection. 2010-04-09 Andrew M. Bishop * src/functions.h, src/planetsplitter.c, src/sorting.c: Add an option '--sort-ram-size' to specify the RAM to use for sorting - defaults to 256MB if not using slim mode. 2010-04-08 Andrew M. Bishop * src/xml/Makefile: Fix test program generation and running. * src/xmlparse.h, src/xmlparse.l: Make the strings const and add the number of attributes to the xmltag structure. Add functions to convert character entities and character references. * src/profiles.c, src/xml/xsd-to-xmlparser.c: Make the strings const and add the number of attributes to the xmltag structure. 2010-04-07 Andrew M. Bishop * xml/Makefile: New file. 2010-04-06 Andrew M. Bishop * src/Makefile: Remove special lex/flex flags. Remove profiles.o from planetsplitter. * src/xml/xsd-to-xmlparser.c: Don't print anything for attributes that are not set. * src/xmlparse.l: Change error message for bad character in a quoted string. Make sure attribute values are cleared before calling tag function (for end-tags). 2010-04-04 Andrew M. Bishop * src/xml/Makefile: Add some XML parsing test cases. * src/xml/xsd-to-xmlparser.c: Rename the XML handling function. * src/xmlparse.h, src/xmlparse.l, src/profiles.c: Added error checking. 2010-04-03 Andrew M. Bishop * src/functionsx.h, src/osmparser.c, src/planetsplitter.c: Rename the old ParseXML() function as ParseOSM(). 2010-04-01 Andrew M. Bishop * src/output.c: Wrap GPX descriptions in CDATA. 2010-03-31 Andrew M. Bishop * xml/routino-profiles.xml: New file. * src/xml/xsd-to-xmlparser.c, src/profiles.c, src/xmlparse.h, src/xmlparse.l: Call the XML tag functions for the end tags as well as the start tags. 2010-03-30 Andrew M. Bishop * src/profiles.c, src/profiles.h: Change the name of the --profile-json and --profile-perl options. * src/filedumper.c, src/planetsplitter.c, src/router.c: Improve the program help messages. 2010-03-29 Andrew M. Bishop * src/files.c, src/functions.h, src/profiles.c, src/profiles.h, src/router.c: Added command line option to specify a file containing profiles. Added command line option to select profile by name from loaded set. Use XML parser to read in the profiles. * src/Makefile: Better handling of the xml sub-directory. * src/xml/xsd-to-xmlparser.c: Add the option to ignore unknown attributes. Print out the skeleton file using static functions and variables. * src/xml/Makefile: Keep the intermediate files. * src/xmlparse.h, src/xmlparse.l: Add the option to ignore unknown attributes. 2010-03-28 Andrew M. Bishop * src/profiles.h, src/router.c, src/profiles.c: Add an option to print out the profiles as XML format. * src/xmlparse.h, xml/xsd.xsd, xml/osm.xsd, src/xml/xsd-to-xmlparser.c: New file. * src/Makefile: Added the XML subdirectory and xmlparser.c. * src/xmlparse.l, src/xml/Makefile: New file. 2010-03-20 Andrew M. Bishop * src/output.c: Add descriptions to each point in the GPX route file. * src/files.c, src/functions.h, src/nodesx.c, src/output.c, src/segmentsx.c, src/waysx.c: Move the stat() calls to find a file size into a helper function in files.c. * src/files.c, src/output.c, src/planetsplitter.c: Improve the error messages by adding strerror() to them. * src/filedumper.c, src/router.c: Don't check the return value of the functions to load the nodes, segments and ways because those functions will exit in case of an error. * src/nodes.c, src/segments.c, src/ways.c: Don't check the return value of MapFile() because it will exit in case of an error. * src/planetsplitter.c: Allow filenames on the planetsplitter command line. 2010-03-19 Andrew M. Bishop * src/waysx.h, src/filedumper.c, src/files.c, src/functions.h, src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/waysx.c: Allow planetsplitter to be run with a --parse-only or --process-only option and append to existing file or read from existing file. 2010-03-18 Andrew M. Bishop * src/router.c: Fix usage message error and shuffle order. * src/output.c, src/router.c: Allow selection of which outputs are to be created. 2010-03-17 Andrew M. Bishop * src/output.c: Re-order the code for HTML. 2010-03-15 Andrew M. Bishop * src/output.c: Create a simple HTML output. 2010-03-06 Andrew M. Bishop * src/router.c, src/nodes.c: Speed up start/via/stop point search algorithm. 2010-03-05 Andrew M. Bishop * src/profiles.c: Change the format of the output for the --help-profile-{pl|js} options. 2010-01-21 Andrew M. Bishop Version 1.3 released 2010-01-21 Andrew M. Bishop * doc/NEWS.txt: Update to latest news. 2010-01-18 Andrew M. Bishop * doc/USAGE.txt, doc/TAGGING.txt, doc/INSTALL.txt: Updated documentation. 2010-01-15 Andrew M. Bishop * src/router.c, src/functions.h: Change the test output formats to add turn, node type and bearing information. 2010-01-13 Andrew M. Bishop * src/output.c: Change the test output formats to add turn, node type and bearing information. 2009-12-16 Andrew M. Bishop * src/router.c: Added an option to use only nodes and not interpolate a point into a segment. 2009-12-15 Andrew M. Bishop * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c: Added wheelchair as type of transport. 2009-12-13 Andrew M. Bishop * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c: Add bridge and tunnel to highway properties. 2009-12-12 Andrew M. Bishop * src/Makefile: Ignore the error if executables cannot be copied after compiling. * src/functions.h, src/nodesx.c, src/segmentsx.c, src/sorting.c, src/waysx.c: Add some FILESORT_* #defines and use them. 2009-12-11 Andrew M. Bishop * src/functions.h, src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/sorting.c, src/waysx.c, src/waysx.h: Added a new function to sort variable length data - simplifies the compacting of ways, reduces memory usage potentially required for it and simplifies the code. 2009-12-10 Andrew M. Bishop * src/waysx.c: Write out the list of ways without memory mapping anything. 2009-11-27 Andrew M. Bishop * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c: Add in "multilane" as a new highway property. 2009-11-25 Andrew M. Bishop * src/filedumper.c, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/profiles.h, src/router.c, src/ways.h, src/waysx.c, src/waysx.h: Store the selected options when parsing (planetsplitter) and display them in the statistics (filedumper) and check them when routing (router). 2009-11-23 Andrew M. Bishop * src/osmparser.c, src/output.c, src/profiles.c, src/types.h, src/ways.c: Add in "steps" as a new highway type. 2009-11-19 Andrew M. Bishop * src/optimiser.c, src/router.c: Made the verbose output consistent between different places. 2009-11-18 Andrew M. Bishop * src/router.c: Fix bug with previous segment-splitting routing. 2009-11-14 Andrew M. Bishop * src/optimiser.c, src/output.c, src/router.c, src/segments.h, src/functions.h, src/nodes.c, src/nodes.h: If a selected waypoint is not very close to an existing node then insert a fake node in the segment that comes closest and use that instead. 2009-11-13 Andrew M. Bishop * src/optimiser.c, src/osmparser.c, src/queue.c, src/results.c, src/results.h, src/types.h: Added in some more constants with the value ~0. 2009-11-06 Andrew M. Bishop * src/filedumper.c: Check the values for the --node=, --segment= and --way= options. 2009-11-03 Andrew M. Bishop * src/output.c, src/planetsplitter.c, src/profiles.c, src/profiles.h, src/router.c, src/types.h, src/ways.c: Rename Way_Unknown to Way_Count to make more sense and match the properties. 2009-11-02 Andrew M. Bishop * src/osmparser.c: Allow the tag "paved" as well as "surface=paved". * src/filedumper.c, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/profiles.c, src/profiles.h, src/router.c, src/types.h, src/ways.c, src/ways.h: Added the ability to set routing preferences using highway properties. Initially the only choice is either paved or unpaved but the code has been updated to allow any number of properties to be added. 2009-10-27 Andrew M. Bishop * src/osmparser.c: Handle the "designation=..." tag for bridleway, byway and footpath. (Also change to using a macro for testing if access is allowed and now allow "destination"). * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c, src/ways.h: Added Moped to the list of transports (and incidentally increased the transport data type to 16 bits and re-ordered the Way data-type in response). 2009-10-26 Andrew M. Bishop * src/profiles.c: Ensure that horses and bicycles have a default speed on trunk even though they have a default preference not to use it. * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c: Re-ordered the types so that Horse comes before Bicycle. * src/osmparser.c, src/output.c, src/profiles.c, src/types.h, src/ways.c: Remove the Bridleway and Footway highway types and use the Path type instead (also re-ordered the types so that Cycleway comes before Path). * src/profiles.c: Remove unneeded spaces at the end of the output. 2009-10-25 Andrew M. Bishop * src/output.c: Fix bug in code that determines waypoints for abbreviated output. 2009-10-24 Andrew M. Bishop * src/functions.h, src/optimiser.c, src/router.c: Fix missing segments in output if start and finish points are found by the start search. 2009-10-22 Andrew M. Bishop * src/files.c, src/nodesx.c, src/segmentsx.c, src/sorting.c, src/superx.c, src/waysx.c: Added some missing comments and corrected some existing ones. 2009-10-21 Andrew M. Bishop Version 1.2 released 2009-10-21 Andrew M. Bishop * doc/README.txt, doc/USAGE.txt, doc/NEWS.txt: Updated for version 1.2. 2009-10-20 Andrew M. Bishop * src/Makefile: Add sorting.o to the Makefile. 2009-10-12 Andrew M. Bishop * src/waysx.c: When sorting we cannot have NULL pointers now. * src/nodesx.c, src/segmentsx.c, src/waysx.c: Re-order the functions in the file into a more logical order. No functional changes. * src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/sorting.c, src/waysx.c: Rename the tmpdirname variable. 2009-10-10 Andrew M. Bishop * src/nodesx.c, src/osmparser.c, src/segmentsx.c, src/sorting.c, src/waysx.c: Corrections after running with valgrind. * src/planetsplitter.c: Fix early termination test. * src/nodesx.c, src/nodesx.h, src/segmentsx.c: Remove the nodesx->gdata index. 2009-10-09 Andrew M. Bishop * src/nodesx.c, src/segmentsx.c, src/typesx.h, src/waysx.c, src/waysx.h: Free the nodesx->super array and the segmentsx->firstnode array when finished with them. Remove wayx->cid and overwrite wayx->id instead. Overwrite nodex[i]->id=i for later geographically sorted use. 2009-10-08 Andrew M. Bishop * src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c: Replace node, segment and way indexes with a single index for a set of segments containing the location of the first segment for each node. * src/nodesx.h: Fix comment. 2009-10-07 Andrew M. Bishop * src/osmparser.c, src/segmentsx.c, src/superx.c: AppendSegment adds a single segment and not a pair. * src/waysx.c: Use heapsort() instead of qsort(). * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/waysx.c: Go back to the version 1.1 method of having each segment listed twice. This simplifies the lookup of first/next segments at no in-RAM index cost and now that slim mode has sorting of file contents the balance has tipped back. 2009-10-04 Andrew M. Bishop * src/functions.h, src/sorting.c: Change the sort function to allow the indexing callback to veto the write. * src/nodesx.c: Remove the duplicates when sorting. * src/waysx.c: Sort the ways using the same method as the nodes. Also remove the duplicates. * src/nodesx.c: Use the new sort functions to allow sorting the data in the file without needing to read (or mmap) the whole file into RAM at the same time. * src/functions.h: Add some functions to perform sorting. * src/sorting.c: New file. * src/queue.c: Fix bug with binary heap sort. 2009-09-25 Andrew M. Bishop * src/queue.c: Add comments describing the algorithm used. 2009-09-23 Andrew M. Bishop * src/nodesx.c, src/waysx.c: Simplify the de-duplication when sorting and update some comments. 2009-09-22 Andrew M. Bishop * src/nodesx.c, src/nodesx.h: Remove a leftover from the last change on these files. * src/segmentsx.c: Improve the super-segment de-duplication. 2009-09-21 Andrew M. Bishop * src/nodesx.c, src/nodesx.h, src/planetsplitter.c: Remove the non-highway nodes without re-sorting the whole list again. 2009-09-17 Andrew M. Bishop * src/osmparser.c, src/planetsplitter.c, src/segmentsx.c, src/superx.c, src/waysx.c, src/waysx.h: Added the slim mode to Ways as well. * src/ways.h: Add padding to Ways structure to allow it to be zeroed. * src/nodesx.c: Add some comments when closing and re-opening files. * src/files.c, src/functions.h: The WriteFile function now has a const parameter. 2009-09-15 Andrew M. Bishop * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c: Some bug fixes and some missing unmap function calls. 2009-09-07 Andrew M. Bishop * src/segmentsx.h, src/superx.c, src/nodesx.c, src/nodesx.h, src/segmentsx.c: Fixed slim mode for segments and nodes (slim now means mapping only one file into RAM at a time and none when creating the final output). 2009-09-06 Andrew M. Bishop * src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/superx.h, src/nodesx.c: Slim version of segments code (still very slow and only works on simple cases). * src/files.c, src/functions.h: Remove the delete option from UnmapFile() and make it return NULL. * src/filedumper.c: Allow dumping all nodes, segments or ways. 2009-09-05 Andrew M. Bishop * src/nodesx.c: Don't re-sort unnecessarily. * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/superx.c: Improve slim mode for nodes so that no data is not loaded into RAM at all. * src/files.c, src/functions.h: Add some more file functions. 2009-09-03 Andrew M. Bishop * src/nodesx.c, src/files.c, src/functions.h: Remove extra argument from MapFile function. * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/superx.c: Added slim mode (--slim) to planetsplitter for nodes only. * src/files.c, src/functions.h: Changes to mapping and unmapping files for slim mode. 2009-08-25 Andrew M. Bishop * src/planetsplitter.c: Revert the order that the functions are called. * src/nodesx.c: Fix for assert statement. * src/files.c: Bug fix for mmap(). 2009-08-20 Andrew M. Bishop * src/osmparser.c: Fix bug with memory allocation. 2009-08-19 Andrew M. Bishop * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/waysx.c, src/waysx.h: Remove "sorted" parameter in data structure and change assert statements. 2009-08-17 Andrew M. Bishop * src/router.c: Increase to 99 the number of waypoints that can be specified. 2009-08-15 Andrew M. Bishop * src/queue.c: Fix comment. * src/Makefile: Tidy the compilation options to make it easier to turn them on and off. * src/router.c: Remove the --all, --super and --no-output command line options. Handle the renamed routing functions. * src/functions.h, src/optimiser.c: Rename the routing functions and make FindRoute only find routes with no super-nodes in them. * src/queue.c: When popping from queue make sure that place in queue is cleared. * src/optimiser.c, src/queue.c, src/results.c, src/results.h, src/superx.c: Optimise the priority queue used for routing. * src/filedumper.c: Fix dumping nodes when they are super-nodes. 2009-07-23 Andrew M. Bishop * src/Makefile, src/optimiser.c, src/results.c, src/results.h, src/superx.c: Split off queue functions into a separate file. * src/queue.c: New file. 2009-07-19 Andrew M. Bishop * src/nodesx.c, src/segments.h, src/segmentsx.c, src/ways.h, src/waysx.c, src/filedumper.c, src/nodes.h: Include the number of super-nodes, super-segments etc in the database as useful information to put in the statistics output. * src/superx.c: Fix incorrect progress indicator message. * src/waysx.c: Fix problem with memory reallocation. * src/nodesx.c, src/osmparser.c, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c: Store only one copy of each segment but index once for each direction. 2009-07-12 Andrew M. Bishop * src/functionsx.h, src/nodesx.c, src/nodesx.h, src/osmparser.c, src/output.c, src/planetsplitter.c, src/profiles.c, src/results.c, src/segments.c, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/superx.h, src/ways.h, src/waysx.c, src/waysx.h: Tidy up and fix comments and include files. * src/osmparser.c, src/planetsplitter.c, src/router.c, src/segmentsx.c, src/superx.c, src/waysx.c, src/filedumper.c, src/nodesx.c, src/optimiser.c: Check all print statements and made them more consistent and/or accurate. 2009-07-11 Andrew M. Bishop * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/waysx.c, src/waysx.h: Free memory at the end of planetsplitter (to aid finding potential leaks earlier). 2009-07-09 Andrew M. Bishop * src/segmentsx.c: Free memory correctly (really). * src/planetsplitter.c, src/waysx.c, src/waysx.h: Separate the sorting of Ways from compacting of Ways. * src/nodes.h, src/nodesx.c, src/nodesx.h, src/segmentsx.c, src/visualiser.c, src/filedumper.c, src/nodes.c: Rename structure members after recent changes. * src/segmentsx.c: Free memory correctly. * src/types.h, src/segmentsx.c: Fix duplicate checking. * src/planetsplitter.c: Ensure that variable is reset before using it. * src/types.h, src/visualiser.c, src/visualiser.h, src/filedumper.c, src/nodes.c, src/nodes.h, src/nodesx.c, src/nodesx.h, src/optimiser.c, src/osmparser.c, src/output.c, src/router.c, src/segments.c, src/segments.h, src/segmentsx.c: Change from float to double for latitude and longitude. Store latitude and longitude as an integer type rather than float (higher precision). 2009-07-08 Andrew M. Bishop * src/superx.c: Ensure that variable is reset before using it. 2009-07-06 Andrew M. Bishop * src/visualiser.c: Print all super-segments within and crossing the border. Don't display speed limits for tracks and paths unless set. 2009-07-04 Andrew M. Bishop * src/segmentsx.h, src/superx.c, src/waysx.c, src/waysx.h: Change data structure to avoid calling realloc() each time to allocate more memory. 2009-07-02 Andrew M. Bishop * src/types.h, src/waysx.c, src/waysx.h: Handle duplicate ways. * src/nodes.c, src/nodesx.c, src/planetsplitter.c, src/profiles.c, src/results.c, src/segments.c, src/segmentsx.c, src/superx.c, src/superx.h, src/types.h, src/ways.c, src/waysx.c: Fix some gcc pedantic warnings. * src/files.c, src/nodesx.c, src/osmparser.c, src/results.c, src/router.c, src/segments.c, src/segmentsx.c, src/superx.c, src/ways.c, src/waysx.c: Removed unused header files, change assert statements, tidy some code. 2009-07-01 Andrew M. Bishop * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c: Remove the Node structure from the NodeX structure to save memory. * src/filedumper.c: Print latitude and longitude in degrees. 2009-06-30 Andrew M. Bishop * src/segmentsx.h: Re-order the data in the structure. * src/nodesx.c, src/nodesx.h, src/osmparser.c, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/waysx.h: Remove the Segment structure from the SegmentX structure to save memory. 2009-06-29 Andrew M. Bishop * src/filedumper.c, src/nodes.h, src/nodesx.c, src/segments.c, src/segments.h, src/segmentsx.c, src/superx.c, src/types.h: Move the super-segment and normal-segment flags from the nodes to the distance. Remove the NODE() macro and rename SUPER_FLAG to NODE_SUPER. * src/waysx.c: Replace memmove with structure copy. * src/nodesx.c, src/segmentsx.c, src/segmentsx.h, src/superx.c: Rename SegmentsX sdata to ndata. 2009-06-25 Andrew M. Bishop * src/waysx.c, src/waysx.h: Rename part of the structure. * src/nodesx.c, src/nodesx.h, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/waysx.h: Undo part of the previous change - only update the Segment way index at the end. * src/waysx.h, src/nodesx.c, src/osmparser.c, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/superx.h, src/typesx.h, src/waysx.c: Reduce the number of ways in the output by compacting them (sharing the same information between identical ways). 2009-06-24 Andrew M. Bishop * src/filedumper.c, src/nodes.h: Allow dumping out of nodes, segments and ways. 2009-06-15 Andrew M. Bishop * src/segmentsx.c, src/superx.c, src/visualiser.c, src/ways.c, src/ways.h: Rename WaysSame() with WaysCompare() and reverse the sense of the output. * src/functionsx.h, src/typesx.h: New file. * src/functions.h, src/nodesx.h, src/osmparser.c, src/planetsplitter.c, src/segmentsx.h, src/superx.h, src/types.h, src/waysx.h: Put some of types.h into typesx.h (for extended data types). Put some of functions.h into functionsx.h (for OSM parser). Change included files to match. * src/filedumper.c, src/osmparser.c, src/output.c, src/router.c, src/types.h, src/visualiser.c: Add a macro for converting degrees to radians and radians to degrees. * src/optimiser.c: Fix weight, height, width, length restriction routing. * doc/TAGGING.txt, src/osmparser.c: Recognise tags "vehicle" and "motor_vehicle". 2009-06-13 Andrew M. Bishop Version 1.1 released 2009-06-13 Andrew M. Bishop * src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/segmentsx.h: Handle nodes that are missing from the .osm file (ignore the segment). * src/nodesx.c: Revert the last change (Print an error message and exit if a node cannot be found). * doc/NEWS.txt: New file. * src/Makefile: Delete the executables from the web directory for 'distclean'. 2009-06-12 Andrew M. Bishop * doc/USAGE.txt, doc/INSTALL.txt, doc/README.txt: Update the documentation. * src/Makefile: Copy the executables into the web directory. 2009-06-08 Andrew M. Bishop * src/filedumper.c: Change help text. * src/visualiser.c: Change format of super-node/segment visualiser output. 2009-06-07 Andrew M. Bishop * doc/TAGGING.txt: Updated with imperial to metric conversions. * src/Makefile: Added visualiser.c. * src/filedumper.c: Now used for data visualisation and statistics. * src/visualiser.h, src/visualiser.c: New file. 2009-06-05 Andrew M. Bishop * src/osmparser.c: Improve parsing of imperial units (mph, feet & inches). 2009-06-03 Andrew M. Bishop * src/nodesx.c: Print an error message and exit if a node cannot be found. 2009-05-31 Andrew M. Bishop * src/ways.c, src/ways.h, src/waysx.c, src/waysx.h: Move function from waysx.c to ways.c. 2009-05-29 Andrew M. Bishop * doc/USAGE.txt: Update usage information with new options and copyright.txt usage. * src/nodes.c, src/nodes.h, src/router.c: Make sure that the chosen "nearest point" is a highway that the profile allows. 2009-05-23 Andrew M. Bishop * src/profiles.c: Change the default profile; horses are slower, bicycles may be allowed on footways (and similar). 2009-05-15 Andrew M. Bishop * src/files.c, src/output.c: Error checking on opening files (to read/write data and to write output). 2009-05-14 Andrew M. Bishop * src/output.c, src/results.c, src/router.c, src/segments.c, src/segmentsx.c, src/superx.c, src/types.h, src/nodes.c, src/nodesx.c, src/optimiser.c: Replace ~0 or 0 with NO_NODE value for "no node" condition. 2009-05-13 Andrew M. Bishop * src/output.c: Remove one more NODE macro and fix an output formatting error. * src/nodes.c, src/nodes.h, src/optimiser.c, src/output.c, src/router.c: Remove some node macros, change some node function arguments. * src/optimiser.c, src/profiles.c, src/profiles.h: Move some common code into the profile. * src/superx.c: Remove distance and duration from Result structure. * src/output.c: Better junction detection. * src/optimiser.c, src/results.c, src/results.h: Remove distance and duration from Result structure. 2009-05-09 Andrew M. Bishop * src/output.c: Add better junction detection for deciding on route waypoints. 2009-05-06 Andrew M. Bishop * src/optimiser.c, src/profiles.c, src/profiles.h, src/types.h: Route using preferences for each highway. * src/router.c: Print out longitude then latitude. 2009-04-30 Andrew M. Bishop * src/results.h, src/router.c, src/superx.c, src/types.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/profiles.c, src/profiles.h, src/results.c: First attempt at preferences for highways - uses integer arithmetic and doesn't work well. 2009-04-27 Andrew M. Bishop * src/functions.h, src/optimiser.c, src/output.c, src/results.c, src/results.h, src/router.c: Allow generating a route with intermediate waypoints. 2009-04-24 Andrew M. Bishop * src/functions.h, src/output.c, src/router.c: Split the output functions into separate head/body/tail. Read in an optional copyright.txt file and include contents in output. 2009-04-23 Andrew M. Bishop * src/profiles.c: Improve Javascript and perl print out. * src/filedumper.c, src/files.c, src/functions.h, src/planetsplitter.c, src/router.c: Move the filename generation to a new function. 2009-04-22 Andrew M. Bishop * src/Makefile, src/functions.h, src/optimiser.c: Split the function to print the output into a new file. * src/output.c: New file. 2009-04-15 Andrew M. Bishop * src/osmparser.c: Fix for parsing nodes from XML (no effect on results). 2009-04-12 Andrew M. Bishop * doc/USAGE.txt, src/optimiser.c: Create a GPX route as well as a track. * src/ways.c: Changed the license to Affero GPLv3. 2009-04-10 Andrew M. Bishop * src/optimiser.c: Add a waypoint to the GPX file for the start and finish points. * doc/USAGE.txt: Include more information about the output file formats. 2009-04-08 Andrew M. Bishop Version 1.0 released 2009-04-08 Andrew M. Bishop * Makefile: New file. * src/Makefile: Fix dependency file generation. * doc/USAGE.txt, doc/TAGGING.txt, doc/README.txt, doc/INSTALL.txt, doc/ALGORITHM.txt: New file. * src/Makefile, src/filedumper.c, src/files.c, src/functions.h, src/nodes.c, src/nodes.h, src/nodesx.c, src/nodesx.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/profiles.c, src/profiles.h, src/results.c, src/results.h, src/router.c, src/segments.c, src/segments.h, src/segmentsx.c, src/segmentsx.h, src/superx.c, src/superx.h, src/types.h, src/ways.h, src/waysx.c, src/waysx.h: Changed the license to Affero GPLv3. 2009-04-07 Andrew M. Bishop * src/planetsplitter.c: Remove the --help-profile command line option. 2009-03-28 Andrew M. Bishop * src/optimiser.c: Fix file headers (again) and fix segment distance/duration for abbreviated text output. 2009-03-24 Andrew M. Bishop * src/osmparser.c, src/profiles.c, src/types.h, src/ways.c: Added highway=path; defaults to foot=yes but also is defaulted for bicycle and horse transport. 2009-03-23 Andrew M. Bishop * src/optimiser.c: Fixed the header in the output text files. * src/osmparser.c: Add parsing for *=designated allowing passage along a highway. * src/profiles.h, src/router.c, src/profiles.c: Add a function to output default profiles as perl data structures. 2009-03-21 Andrew M. Bishop * src/nodesx.c: Handle duplicated nodes (e.g. from concatenated input files). * src/optimiser.c: Add a header to the output text files. 2009-03-07 Andrew M. Bishop * src/optimiser.c: Renamed the *.txt output to *-all.txt and added a new shorted *.txt output. * src/router.c: Renamed the --no-print option to --no-output. 2009-03-04 Andrew M. Bishop * src/nodes.c: Fix bug with finding nearest node. 2009-03-03 Andrew M. Bishop * src/superx.c: Fix the merging of super-segments. 2009-03-01 Andrew M. Bishop * src/profiles.c, src/profiles.h: Added more limits (weight, height, width, length). * src/segments.c: Use the lower speed from the profile and the way. * src/osmparser.c: Added more limits (weight, height, width, length). Added highway=living_street and highway=services. * src/ways.c, src/ways.h, src/optimiser.c, src/router.c, src/segmentsx.c, src/superx.c, src/types.h: Added more limits (weight, height, width, length). * src/waysx.c, src/waysx.h: Added a function to test if two ways are the same. 2009-02-28 Andrew M. Bishop * src/nodesx.c: Round the node location to avoid if falling into the wrong bin. * src/nodesx.c, src/planetsplitter.c, src/segmentsx.c, src/waysx.c: Move print statements from planetsplitter into individual functions. * src/Makefile: Compile with optimisation and no profiling. * src/profiles.c, src/router.c: Add new command line options to make it more CGI friendly. 2009-02-27 Andrew M. Bishop * src/profiles.c, src/profiles.h, src/router.c: Print out Javascript code containing the profiles. 2009-02-24 Andrew M. Bishop * src/segmentsx.h, src/superx.c, src/nodesx.c, src/segments.c, src/segments.h, src/segmentsx.c: Remove segment->next1 since it always points at the next segment or nowhere. * src/profiles.c: Remove track from valid types for most transports. 2009-02-15 Andrew M. Bishop * src/functions.h, src/optimiser.c, src/router.c: Change some function names. * src/osmparser.c: Add in tests for motorcar=1 etc. * src/nodes.c, src/nodes.h, src/router.c: The search to find a node given the lat/long now searches harder. * src/optimiser.c: Better test for failing to find a route. * src/router.c: Change --only-super to --super. * src/nodesx.c, src/optimiser.c, src/osmparser.c, src/router.c, src/segments.c, src/segmentsx.c, src/types.h, src/nodes.c: Store radians rather than degrees. * src/segments.c, src/segmentsx.c: Change to sinf(), cosf(), sqrtf(), asinf() functions. * src/optimiser.c: Set the sortby parameter to the minimum distance/duration consistent with the travelled distance/duration and the remaining straight line distance with the fastest possible speed. * src/filedumper.c, src/nodes.c, src/nodes.h, src/nodesx.c, src/types.h: Add macros for handling lat/long to bin conversions. * src/osmparser.c: Handle oneway=1 and oneway=-1. 2009-02-10 Andrew M. Bishop * src/results.c, src/results.h: Added a new 'sortby' entry to the Result. Changed node_t to index_t. * src/router.c: Changed node_t to index_t. * src/nodes.c, src/segments.c, src/segments.h: Change the Distance() function to return distance_t. 2009-02-08 Andrew M. Bishop * src/optimiser.c, src/results.c, src/results.h, src/router.c, src/superx.c: Calculate quickest or shortest, not both. * src/optimiser.c, src/profiles.c, src/router.c: Give appropriate error messages if start or end of route are not possible. 2009-02-07 Andrew M. Bishop * src/results.c: Slight speedup by doing a linear search when looking up results and not storing in sorted order. * src/superx.h, src/superx.c, src/waysx.h, src/waysx.c, src/segmentsx.h, src/segmentsx.c, src/nodesx.h, src/nodesx.c: New file. * src/ways.h, src/Makefile, src/filedumper.c, src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h, src/types.h, src/ways.c: Split the extended data types from the normal data types. * src/nodes.c: Return NULL if the node cannot be found. * src/Makefile, src/filedumper.c, src/optimiser.c, src/router.c: Add new command line options. * src/supersegments.c: Fix some status messages. * src/optimiser.c, src/types.h: Routing works with super-nodes now. 2009-02-06 Andrew M. Bishop * src/ways.c, src/segments.c, src/segments.h, src/supersegments.c, src/types.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/functions.h: Segments now not duplicated in database. Routing with all nodes works, not with super-nodes. 2009-02-04 Andrew M. Bishop * src/router.c: Fix usage output. * src/ways.c, src/ways.h: Only sort once, don't store the index. * src/planetsplitter.c, src/router.c: Use '--*' command line arguments, not '-*'. * src/nodes.c, src/router.c, src/segments.c, src/ways.c: Make sure that nodes, segments and ways could be loaded. * src/nodes.h, src/optimiser.c, src/router.c, src/segments.c, src/segments.h, src/supersegments.c, src/types.h, src/filedumper.c, src/nodes.c: Sort the nodes geographically and take coordinates as command line arguments. 2009-02-02 Andrew M. Bishop * src/ways.c, src/ways.h, src/nodes.c, src/nodes.h, src/osmparser.c, src/segments.c, src/segments.h, src/supersegments.c, src/types.h: More variable and function name changes. 2009-02-01 Andrew M. Bishop * src/profiles.c, src/router.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.c, src/ways.h, src/files.c, src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/filedumper.c: Rename some variable types. 2009-01-31 Andrew M. Bishop * src/segments.c, src/segments.h, src/supersegments.c, src/types.h, src/ways.c, src/ways.h, src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/planetsplitter.c, src/profiles.h, src/router.c: Intermediate version during code cleanup. * src/optimiser.c, src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h, src/functions.h, src/nodes.h: Intermediate checkin, routing now working. * src/Makefile: Don't print out anything when creating the dependencies directory. * src/planetsplitter.c, src/router.c: Add command line options to specify the directory and filename prefix. 2009-01-30 Andrew M. Bishop * src/results.c, src/planetsplitter.c: Remove gcc warning. * src/Makefile: Move dependencies to subdir. * src/osmparser.c: Remove gcc warning. 2009-01-29 Andrew M. Bishop * src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h, src/supersegments.c: Intermediate version while transitioning data format for nodes and segments. 2009-01-28 Andrew M. Bishop * src/Makefile, src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.c, src/ways.h: Intermediate version while transitioning data format for nodes and segments. 2009-01-27 Andrew M. Bishop * src/Makefile, src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.c, src/ways.h: Intermediate version while transitioning data format for nodes and segments. 2009-01-26 Andrew M. Bishop * src/osmparser.c, src/planetsplitter.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.c, src/ways.h, src/filedumper.c, src/files.c, src/functions.h, src/optimiser.c: Change Segment to contain index of way not its real ID. Don't store the real way ID to save space. 2009-01-25 Andrew M. Bishop * src/segments.c, src/segments.h: Slightly speed up the Duration calculation by changing the macro. * src/osmparser.c, src/profiles.c, src/ways.c, src/ways.h: Fix misspelling of Unclassified. * src/planetsplitter.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.h, src/optimiser.c: Change the segment->way so that it contains the index of the way, not the id. * src/profiles.c, src/profiles.h: New file. * src/ways.c, src/ways.h, src/Makefile, src/functions.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h: Added profiles to define speed and allowed highways. Added new options to planetsplitter and router to use the profiles. 2009-01-24 Andrew M. Bishop * src/optimiser.c: Changed some variable names for clarity. * src/planetsplitter.c: Print more information about progress. Don't quit until 99.9% unchanged. * src/optimiser.c, src/results.c, src/results.h, src/supersegments.c: Change the Results structure so that the real data doesn't need to be realloc(). Add functions to access the first and subsequent elements of the Results structure. 2009-01-23 Andrew M. Bishop * src/osmparser.c, src/planetsplitter.c: Fix bug with not specifying a method of transport. * src/optimiser.c, src/router.c: Proper check that it was unroutable. * src/functions.h, src/optimiser.c, src/planetsplitter.c, src/supersegments.c: Remove "iteration" as function argument. * src/functions.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/router.c, src/ways.c, src/ways.h: Add command line options to planetsplitter and router. Select transport type (must be allowed on way for parsing). Select highway types (ignore when parsing or routing). * src/ways.h, src/functions.h, src/optimiser.c, src/osmparser.c, src/router.c, src/segments.c, src/segments.h, src/ways.c: Add enumerated type Transport. Replace variables of AllowType with Transport where more appropriate. Replace AllowType with Allowed. Replace WayType with Highway. * src/osmparser.c: Only include ways that are not Way_Unknown type. * src/osmparser.c: Include permissive access. * src/functions.h, src/optimiser.c, src/results.c, src/results.h, src/router.c: Create a large or small results structure depending on how many nodes are expected. 2009-01-22 Andrew M. Bishop * src/results.h: Increase the number of bins to 64k. * src/optimiser.c, src/osmparser.c, src/segments.c, src/segments.h, src/supersegments.c: Remove INVALID_DISTANCE and INVALID_DURATION. * src/optimiser.c, src/osmparser.c, src/supersegments.c, src/ways.c, src/ways.h: Removed the Way_TYPE() macro. * src/results.c, src/results.h, src/optimiser.c: Move queue functions into results.c. * src/filedumper.c, src/nodes.c, src/nodes.h, src/planetsplitter.c, src/router.c: Nodes, Segments, Ways - Nodes, Segments, Ways. * src/filedumper.c, src/nodes.c, src/nodes.h, src/segments.c, src/segments.h, src/ways.c, src/ways.h: Remove the choice of indexed or non-indexed data structures. 2009-01-21 Andrew M. Bishop * src/optimiser.c: Various small speed-ups including not-reversing direction. * src/functions.h, src/optimiser.c, src/osmparser.c, src/router.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.c, src/ways.h: Calculate way speeds at routing time. * src/supersegments.c: Add reverse-oneway segments when creating supernodes. Check incoming oneway streets as well as outgoing ones. * src/osmparser.c: Don't change speed on roundabouts. 2009-01-20 Andrew M. Bishop * src/planetsplitter.c: Add command line options for skipping parsing and iteration limit. * src/optimiser.c, src/osmparser.c, src/segments.c, src/segments.h, src/supersegments.c: Remove duration from segment, calculate duration depending on speed. 2009-01-19 Andrew M. Bishop * src/functions.h, src/optimiser.c, src/planetsplitter.c, src/supersegments.c: Iteratively calculate the super-segments. * src/ways.h: Redefine Way_TYPE() to include one-way status. 2009-01-18 Andrew M. Bishop * src/optimiser.c, src/supersegments.c: Fix problems with way-type matching and duplicated/missing super-segments. * src/functions.h, src/optimiser.c, src/router.c: Print out a GPX file. * src/optimiser.c, src/filedumper.c, src/functions.h, src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.c, src/ways.h: Added Super-Ways and allow user to select method of transport. * src/segments.c: Fix for changes made to ways. * src/supersegments.c: Ensure that supernodes are inserted wherever the way type changes. * src/osmparser.c: Fill in the extra way information. * src/ways.h: Store more information about a way (allowed modes of transport). * src/filedumper.c: Fix output printing. * src/router.c: Print an error if no route can be found. * src/optimiser.c: Fix bugs when start and/or finish nodes are supernodes. 2009-01-17 Andrew M. Bishop * src/Makefile: Add the option to create assembler output files. * src/optimiser.c, src/results.c, src/results.h, src/supersegments.c: Change the contents of the results data structure. * src/router.c: Added an option to not print the result. 2009-01-16 Andrew M. Bishop * src/optimiser.c, src/results.h, src/router.c: Speed optimisation by changing the contents of the Results structure. * src/optimiser.c: Don't bother calculating the distance to go, it takes too long. 2009-01-14 Andrew M. Bishop * src/planetsplitter.c: Remove bad segments and non-way nodes. * src/nodes.c, src/nodes.h: Remove nodes which are not in highways. Fix the sorting and create indexes after sorting, not before saving. * src/segments.c, src/segments.h: Remove bad segments (repeated consecutive nodes and duplicate segments). Fix the sorting and create indexes after sorting, not before saving. * src/supersegments.c: Use invalid distances properly. * src/ways.c: Fix the sort algorithm and update the indexes after sorting, not before saving. * src/optimiser.c: Fix the bug with merging the results. Fix the bug with not clearing the results structure properly. * src/osmparser.c: Add segments that correspond to the wrong way along one-way routes with an invalid distance. 2009-01-11 Andrew M. Bishop * src/functions.h, src/optimiser.c, src/router.c: Routes correctly using super-nodes (not Lands End to John O'Groats though). * src/filedumper.c, src/functions.h, src/optimiser.c, src/planetsplitter.c, src/router.c, src/segments.h, src/supersegments.c: Replace Junction with SuperNode. * src/nodes.c, src/nodes.h, src/segments.h, src/ways.c, src/ways.h: Some small changes to the nodes, segments and ways functions. * src/Makefile, src/filedumper.c, src/functions.h, src/optimiser.c, src/planetsplitter.c, src/results.h, src/router.c, src/segments.c, src/segments.h, src/supersegments.c: Working version with supersegments and junctions. 2009-01-10 Andrew M. Bishop * src/ways.c, src/ways.h, src/osmparser.c, src/segments.c: Store more information about ways. * src/results.h, src/results.c: New file. * src/Makefile, src/optimiser.c: Move the results data type into new files. * src/nodes.h, src/segments.h, src/ways.h: Increase the increment for the indexed array case. * src/ways.h, src/Makefile, src/filedumper.c, src/functions.h, src/nodes.c, src/nodes.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c, src/router.c, src/segments.c, src/segments.h, src/supersegments.c, src/ways.c: About to add the super-segment functionality using Segments data type to hold them. * src/functions.h, src/types.h: Changed after nodes, ways and segment changes. 2009-01-09 Andrew M. Bishop * src/segments.h: New file. * src/segments.c: Changed the format of the segments data type to match the nodes. * src/nodes.h: Enable indexed arrays. * src/ways.h: New file. * src/ways.c: Changed the format of the ways data type to match the nodes. * src/nodes.c, src/nodes.h: Changed the format of the nodes data type again. 2009-01-07 Andrew M. Bishop * src/nodes.h: New file. * src/nodes.c: Lots of modifications: Two data structures - in memory (pointers) and in file (array). Data is hashed into multiple bins. Each function takes a nodes structure as an argument. 2009-01-06 Andrew M. Bishop * src/supersegments.c: New file. * src/Makefile, src/filedumper.c, src/functions.h, src/planetsplitter.c, src/types.h: Added SuperSegments data type, but it does nothing yet. * src/optimiser.c: Tried to optimise the Queue data type. It was slower than the original. 2009-01-05 Andrew M. Bishop * src/filedumper.c: Print out the longest segment. * src/optimiser.c: Some optimisations. Increase the number of result bins and change find_insert_result() into insert_result(). 2009-01-04 Andrew M. Bishop * src/optimiser.c: Introduced some new data types to simplify the code. * src/filedumper.c: Print more useful information. * src/segments.c, src/types.h, src/ways.c, src/filedumper.c, src/functions.h, src/nodes.c, src/optimiser.c, src/osmparser.c, src/planetsplitter.c: Changed the node, way and segment functions and data types. Removed 'alloced', shortened the prototype array. Remove the automatic sorting of the data. Added assert statements. 2009-01-03 Andrew M. Bishop * src/ways.c: New file. * src/router.c, src/types.h, src/Makefile, src/filedumper.c, src/functions.h, src/optimiser.c, src/osmparser.c, src/planetsplitter.c: Added the ways to the output. 2009-01-02 Andrew M. Bishop * src/optimiser.c, src/osmparser.c, src/segments.c, src/types.h: Added macros to convert between distance/km and duration/hours/minutes. Shortened the Segment data type with shorter distances and durations. 2009-01-01 Andrew M. Bishop * src/functions.h, src/nodes.c, src/planetsplitter.c, src/segments.c, src/types.h: Remove the functions to initialise the node and segment arrays. * src/optimiser.c, src/router.c, src/Makefile: Print out the results. 2008-12-31 Andrew M. Bishop * src/types.h, src/segments.c, src/router.c, src/planetsplitter.c, src/osmparser.c, src/optimiser.c, src/nodes.c, src/functions.h, src/files.c, src/filedumper.c, src/Makefile: New file.