44 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| Changes from old versions of Osmium
 | |
| ===================================
 | |
| 
 | |
| This version has some substantial changes and users of Osmium will have to
 | |
| rewrite their code. Use the examples provided in the "example" directory
 | |
| or in the osmium-contrib repository to get an idea what needs changing.
 | |
| These examples are often similar to the examples provided with the old
 | |
| Osmium so they should give you an idea how your code has to change.
 | |
| 
 | |
| Here are some of the more important changes:
 | |
| 
 | |
| * Osmium now needs C++11. It will not work with older compilers. You need
 | |
|   at least GCC 4.7.3 or clang (LLVM) 3.2.
 | |
| 
 | |
| * Namespaces are now all lower case. Everything is in the "osmium" namespace
 | |
|   or sub-namespaces of it. Many classes and functions have been moved to
 | |
|   different, more logical or shorter namespaces.
 | |
| 
 | |
| * You can't just instantiate OSM objects such as Nodes, Ways, or Relations.
 | |
|   You need a Buffer first to hold them and use the Builder classes to
 | |
|   create them. This is a bit more cumbersome, but greatly reduces the need
 | |
|   for memory management and makes Osmium faster and easier to parallelize.
 | |
| 
 | |
| * Usually you don't act on single OSM objects any more, but on groups of
 | |
|   them in a Buffer.
 | |
| 
 | |
| * Reading and writing of OSM data is much simpler. Use the Reader and Writer
 | |
|   classes as they hide much of the detail and have much nicer interfaces
 | |
|   than the old Input/Output classes.
 | |
| 
 | |
| * The class Osmium::OSM::Position was renamed to osmium::Location. This
 | |
|   better reflects that it is a location on the planet we are talking about.
 | |
|   The word "position" has many meanings and is, for instance, often used
 | |
|   to denote a position in a file or buffer or so.
 | |
| 
 | |
| * The dependency on boost has been greatly reduced. C++11 offers many
 | |
|   features that used to be only available with boost, such as shared_ptr.
 | |
|   Osmium now uses the C++11 versions of these.
 | |
| 
 | |
| * Osmium now makes use of the new C++11 threading support when reading and
 | |
|   writing OSM files.
 | |
| 
 |