This reverts commit 08a5826.
use dynamic cast to overcome an issue in geos 3.3
don't error on type 'long long'
exception if field width is larger than max_dbf_field_length
The Mmap class was split up into two classes: MmapFile and MmapAnon. MmapAnon works only on Linux, because it needs the mremap() system call. C preprocessor checks have been added to give you a warning if you try to compile it on a different system. Classes have also been renamed from Osmium::Storage::ABC to Osmium::Storage::ById::ABC to each one put into its own file that can be included or not as needed. osmjs and some examples have been updated to work with the new structure.
pedanting usually errors when the type long long is used (like in the ogr headers). This patch removes this error, because it actually is a warning and the comiling works just fine with this extra flag.
This also actually fixes the bug already reported fixed in the last commit. :-) The other fix did only work in special circumstances. PBF header blocks were only written out when nodes were written out before ways/relations in the output. And only when the PBF header was written out correctly the PBF stringtable was initialized correctly.
…e empty in XML writer
When including the Osmium headers from several .cpp files the linker would give you errors about several definitions of the geos geometry factory stuff. This now works if you make sure to only include osmium.hpp (or osmium/geometry_factory.hpp) in a single .cpp file. Unfortunately this is all a bit convoluted and needs some cleanup. But I leave that for another day.