lambdajack / sequentially-generate-planet-mbtiles

Generate vector tiles for the entire planet on relatively low spec hardware.
https://wiki.openstreetmap.org/wiki/Sequentially-generate-planet-mbtiles
MIT License
99 stars 15 forks source link

Ubuntu 22.04 Osmium problem #16

Open mariansedivy opened 1 year ago

mariansedivy commented 1 year ago

Hi,

I have clean install of Ubuntu 22.04 and latest package. When started I got this errors:

CMake Warning at cmake/FindOsmium.cmake:190 (message): Osmium: GEOS library is required but not found, please install it or configure the paths. Call Stack (most recent call first): CMakeLists.txt:173 (find_package)

-- Could NOT find GDAL (missing: GDAL_LIBRARY GDAL_INCLUDE_DIR) (found version "GDAL_VERSION-NOTFOUND") CMake Warning at cmake/FindOsmium.cmake:204 (message): Osmium: GDAL library is required but not found, please install it or configure the paths. Call Stack (most recent call first): CMakeLists.txt:173 (find_package)

CMake Warning at cmake/FindOsmium.cmake:220 (message): Osmium: PROJ.4 library is required but not found, please install it or configure the paths. Call Stack (most recent call first): CMakeLists.txt:173 (find_package)

-- Could NOT find Osmium (missing: GEOS_INCLUDE_DIR GEOS_LIBRARY GDAL_FOUND PROJ_INCLUDE_DIR PROJ_LIBRARY) -- Use C++ version: c++11 -- Looking for cppcheck -- Looking for cppcheck - not found -- Build target 'cppcheck' will not be available. -- Configuring documentation -- Looking for doxygen -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) -- Looking for doxygen - not found -- Disabled making of documentation. -- Configuring documentation - done -- Looking for clang-tidy -- Looking for clang-tidy - not found -- Build target 'clang-tidy' will not be available. -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project:

INSTALL_PROTOZERO

...

             from /var/install/osmium-tool/src/export/export_format_spaten.hpp:4,
             from /var/install/osmium-tool/src/export/export_format_spaten.cpp:2:

In static member function 'static const unsigned char osmium::Tag::after_null(const unsigned char)', inlined from 'const unsigned char osmium::Tag::next() const' at /var/install/libosmium/include/osmium/osm/tag.hpp:66:30, inlined from 'osmium::memory::CollectionIterator& osmium::memory::CollectionIterator::operator++() [with TMember = const osmium::Tag]' at /var/install/libosmium/include/osmium/memory/collection.hpp:73:66, inlined from 'bool ExportFormat::add_tags(const osmium::OSMObject&, TFunc&&) [with TFunc = ExportFormatSpaten::write_tags(const osmium::OSMObject&, protozero::pbf_builder&)::<lambda(const osmium::Tag&)>]' at /var/install/osmium-tool/src/export/export_format.hpp:75:9: /var/install/libosmium/include/osmium/osm/tag.hpp:58:113: warning: offset '5' outside bounds of constant string [-Warray-bounds] 58 | return reinterpret_cast<const unsigned char>(std::strchr(reinterpret_cast<const char>(ptr), 0) + 1); | ^ /var/install/libosmium/include/osmium/osm/tag.hpp:58:113: warning: offset '5' outside bounds of constant string [-Warray-bounds] /var/install/libosmium/include/osmium/osm/tag.hpp:58:113: warning: offset '5' outside bounds of constant string [-Warray-bounds] /var/install/libosmium/include/osmium/osm/tag.hpp:58:113: warning: offset '5' outside bounds of constant string [-Warray-bounds] [ 67%] Building CXX object test/CMakeFiles/unit_tests.dir//src/export/export_format_text.cpp.o [ 68%] Building CXX object test/CMakeFiles/unit_tests.dir//src/export/export_handler.cpp.o [ 69%] Building CXX object test/CMakeFiles/unit_tests.dir//src/extract/extract_bbox.cpp.o [ 70%] Building CXX object test/CMakeFiles/unit_tests.dir/__/src/extract/extract.cpp.o [ 70%] Building CXX object test/CMakeFiles/unit_tests.dir//src/extract/extract_polygon.cpp.o [ 71%] Building CXX object test/CMakeFiles/unit_tests.dir/__/src/extract/geojson_file_parser.cpp.o [ 72%] Building CXX object test/CMakeFiles/unit_tests.dir//src/extract/geometry_util.cpp.o [ 73%] Building CXX object test/CMakeFiles/unit_tests.dir//src/extract/osm_file_parser.cpp.o In file included from /var/install/libosmium/include/osmium/area/detail/basic_assembler.hpp:42, from /var/install/libosmium/include/osmium/area/detail/basic_assembler_with_tags.hpp:37, from /var/install/libosmium/include/osmium/area/assembler.hpp:37, from /var/install/osmium-tool/src/extract/osm_file_parser.cpp:27: In member function 'TDerived& osmium::builder::OSMObjectBuilder<TDerived, T>::set_user(const char) [with TDerived = osmium::builder::AreaBuilder; T = osmium::Area]', inlined from 'void osmium::builder::AreaBuilder::initialize_from_object(const osmium::OSMObject&)' at /var/install/libosmium/include/osmium/builder/osm_object_builder.hpp:591:25, inlined from 'bool osmium::area::Assembler::create_area(osmium::memory::Buffer&, const osmium::Relation&, const std::vector<const osmium::Way>&)' at /var/install/libosmium/include/osmium/area/assembler.hpp:85:47, inlined from 'bool osmium::area::Assembler::operator()(const osmium::Relation&, const std::vector<const osmium::Way>&, osmium::memory::Buffer&)' at /var/install/libosmium/include/osmium/area/assembler.hpp:216:40, inlined from 'bool osmium::area::Assembler::operator()(const osmium::Relation&, const std::vector<const osmium::Way>&, osmium::memory::Buffer&)' at /var/install/libosmium/include/osmium/area/assembler.hpp:179:18, inlined from 'void osmium::area::MultipolygonCollector::complete_relation(const osmium::relations::RelationMeta&) [with TAssembler = osmium::area::Assembler]' at /var/install/libosmium/include/osmium/area/multipolygon_collector.hpp:190:30, inlined from 'bool osmium::relations::Collector<TCollector, TNodes, TWays, TRelations>::find_and_add_object(const osmium::OSMObject&) [with TCollector = osmium::area::MultipolygonCollector; bool TNodes = false; bool TWays = true; bool TRelations = false]' at /var/install/libosmium/include/osmium/relations/collector.hpp:412:74, inlined from 'void osmium::relations::Collector<TCollector, TNodes, TWays, TRelations>::HandlerPass2::way(const osmium::Way&) [with TCollector = osmium::area::MultipolygonCollector; bool TNodes = false; bool TWays = true; bool TRelations = false]' at /var/install/libosmium/include/osmium/relations/collector.hpp:149:61, inlined from 'void osmium::detail::apply_item_impl(TItem&, THandler&&) [with THandler = osmium::relations::Collector<osmium::area::MultipolygonCollector, false, true, false>::HandlerPass2&; TItem = osmium::memory::Item]' at /var/install/libosmium/include/osmium/visitor.hpp:65:32, inlined from 'void osmium::apply_item(TItem&, THandlers&& ...) [with TItem = memory::Item; THandlers = {handler::NodeLocationsForWays<index::map::VectorBasedSparseMap<long unsigned int, Location, index::map::StdVectorWrap>, index::map::Dummy<long unsigned int, Location> >&, relations::Collector<area::MultipolygonCollector, false, true, false>::HandlerPass2&}]' at /var/install/libosmium/include/osmium/visitor.hpp:308:37, inlined from 'void osmium::apply_impl(TIterator, TIterator, THandlers&& ...) [with TIterator = io::InputIterator; THandlers = {handler::NodeLocationsForWays<index::map::VectorBasedSparseMap<long unsigned int, Location, index::map::StdVectorWrap>, index::map::Dummy<long unsigned int, Location> >&, relations::Collector<area::MultipolygonCollector, false, true, false>::HandlerPass2&}]' at /var/install/libosmium/include/osmium/visitor.hpp:320:23, inlined from 'void osmium::apply(TIterator, TIterator, THandlers&& ...) [with TIterator = io::InputIterator; THandlers = {handler::NodeLocationsForWays<index::map::VectorBasedSparseMap<long unsigned int, Location, index::map::StdVectorWrap>, index::map::Dummy<long unsigned int, Location> >&, relations::Collector<area::MultipolygonCollector, false, true, false>::HandlerPass2&}]' at /var/install/libosmium/include/osmium/visitor.hpp:327:19: /var/install/libosmium/include/osmium/builder/osm_object_builder.hpp:473:45: warning: 'size_t strlen(const char)' reading 1 or more bytes from a region of size 0 [-Wstringop-overread] 473 | const auto len = std::strlen(user); | ~~~^~ In file included from /var/install/libosmium/include/osmium/memory/buffer.hpp:38, from /var/install/osmium-tool/src/extract/osm_file_parser.hpp:26, from /var/install/osmium-tool/src/extract/osm_file_parser.cpp:23: /var/install/libosmium/include/osmium/osm/entity.hpp: In function 'void osmium::apply(TIterator, TIterator, THandlers&& ...) [with TIterator = io::InputIterator; THandlers = {handler::NodeLocationsForWays<index::map::VectorBasedSparseMap<long unsigned int, Location, index::map::StdVectorWrap>, index::map::Dummy<long unsigned int, Location> >&, relations::Collector<area::MultipolygonCollector, false, true, false>::HandlerPass2&}]': /var/install/libosmium/include/osmium/osm/entity.hpp:64:11: note: at offset [34, 42] into source object 'osmium::OSMEntity::' of size 8 64 | class OSMEntity : public osmium::memory::Item {

It is still running so I just want to ask if this is ok or not:) Thank you!

mariansedivy commented 1 year ago

Hi, it has finished but when I try to display generated .mbtiles with tileserver-php I get error "JSON metadata file is not valid. Please check configuration of your server." I have tried it with smaller .pbf file from geofabrik and on ubuntu 20.4 but still get the same error. Can you help me please? Thank you

Alex-7 commented 1 year ago

Try to serve the file with: docker run --rm -it -v $(pwd)/data/out:/data -p 8080:8080 maptiler/tileserver-gl Not 8080:80, but 8080:8080. And it will be available on http://localhost:8080 (or something like 192.168.1.25:8080). I also cannot run the .mbtiles file generated this way on tileserver-php. But with docker it works. I can run on tileserver-php .mbtiles files made with tilemaker, but I cannot generate the whole planet with tilemaker, only with the sequentially-generate-planet-mbtiles on my hardware.

mariansedivy commented 1 year ago

Hi. Thank you for your response. I have tried it with planetiler following this steps planet.md and now it works.