MaZderMind / osm-history-renderer

an experimental, work-in-progress history renderer (including supplementary tools like an importer and an animation-tool)
BSD 2-Clause "Simplified" License
79 stars 23 forks source link

compiling error in osmium/osm.hpp #2

Closed wiso closed 12 years ago

wiso commented 12 years ago

Hello, I'm trying to copile the code with g++ (GCC) 4.6.2 20111027 (Red Hat 4.6.2-1) on fedora 16. I get this error. I'm following the instruction, the version is here:

commit f128dee15f3d31145d8abc67405416f05f1f1788 Merge: abea767 ea1b589 Author: MaZderMind github@mazdermind.de Date: Mon Nov 28 23:32:49 2011 +0100

error:

g++ -g -O3 -Wall -Wextra -pedantic getconf LFS_CFLAGS -Iosmium/include -DOSMIUM_WITH_OUTPUT_OSM_XML xml2-config --cflags -DOSMIUM_WITH_GEOS -o osm-history-splitter splitter.cpp -L/usr/local/lib -lexpat -lpthread xml2-config --libs -lz -lprotobuf-lite -losmpbf -lgeos In file included from osmium/include/osmium/osm.hpp:44:0, from osmium/include/osmium.hpp:109, from splitter.cpp:9: osmium/include/osmium/osm/area.hpp: In member function ‘geos::geom::LinearRing* Osmium::OSM::AreaFromRelation::create_non_intersecting_linearring(geos::geom::CoordinateSequence)’: osmium/include/osmium/osm/area.hpp:545:81: error: cannot convert from base ‘geos::geom::Geometry’ to derived type ‘geos::geom::LinearRing’ via virtual base ‘geos::geom::Geometry’ osmium/include/osmium/osm/area.hpp: In member function ‘Osmium::OSM::RingInfo_ Osmium::OSM::AreaFromRelation::make_one_ring(std::vectorOsmium::OSM::WayInfo&, osm_object_id_t, osm_object_id_t, int, int)’: osmium/include/osmium/osm/area.hpp:561:125: error: call of overloaded ‘create(int, int)’ is ambiguous osmium/include/osmium/osm/area.hpp:561:125: note: candidates are: /usr/include/geos/geom/CoordinateSequenceFactory.h:66:30: note: virtual geos::geom::CoordinateSequence\ geos::geom::CoordinateSequenceFactory::create(std::vectorgeos::geom::Coordinate_, std::sizet) const /usr/include/geos/geom/CoordinateSequenceFactory.h:80:30: note: virtual geos::geom::CoordinateSequence geos::geom::CoordinateSequenceFactory::create(std::size_t, std::size_t) const osmium/include/osmium/osm/area.hpp:572:80: error: cannot convert from base ‘geos::geom::Geometry’ to derived type ‘geos::geom::LineString’ via virtual base ‘geos::geom::Geometry’ osmium/include/osmium/osm/area.hpp: In member function ‘bool Osmium::OSM::AreaFromRelation::build_geometry()’: osmium/include/osmium/osm/area.hpp:925:139: error: cannot convert from base ‘geos::geom::Geometry’ to derived type ‘geos::geom::LineString’ via virtual base ‘geos::geom::Geometry’ osmium/include/osmium/osm/area.hpp:1013:100: error: cannot convert from base ‘geos::geom::Geometry’ to derived type ‘geos::geom::LineString’ via virtual base ‘geos::geom::Geometry’ osmium/include/osmium/osm/area.hpp:1025:96: error: cannot convert from base ‘geos::geom::Geometry’ to derived type ‘geos::geom::LineString’ via virtual base ‘geos::geom::Geometry’ osmium/include/osmium/osm/area.hpp:1030:71: error: cannot convert from base ‘geos::geom::Geometry’ to derived type ‘geos::geom::LinearRing’ via virtual base ‘geos::geom::Geometry’ make: *\ [osm-history-splitter] Errore 1

MaZderMind commented 12 years ago

Hi

Am 03.12.2011 17:51, schrieb wiso:

Hello, I'm trying to copile the code with g++ (GCC) 4.6.2 20111027 (Red Hat 4.6.2-1) on fedora 16. I get this error. I'm following the instruction, the version is here:

that sounds like an incompatible version of geos. I'm compiling fine against 3.2.0. What does geos-config --version tell you?

Peter

wiso commented 12 years ago

I've 3.3.1

Ruggero

2011/12/4 Peter reply@reply.github.com:

Hi

Am 03.12.2011 17:51, schrieb wiso:

Hello, I'm trying to copile the code with g++ (GCC) 4.6.2 20111027 (Red Hat 4.6.2-1) on fedora 16. I get this error. I'm following the instruction, the version is here:

that sounds like an incompatible version of geos. I'm compiling fine against 3.2.0. What does geos-config --version tell you?

Peter


Reply to this email directly or view it on GitHub: https://github.com/MaZderMind/osm-history-renderer/issues/2#issuecomment-3007747

MaZderMind commented 12 years ago

@joto it seems the C++ interface of geos was changed. The geos-guys recommend using the C interface - and now I know why.. I guess there are three poss ibilities:

  1. rewrite osmium to use the C interface
  2. fix the LinearRing-cast and possibly other problems with geos 3.3
  3. use geos 3.2 for now
wiso commented 12 years ago
  1. write an adaptor?

By the way, let me know when this problem is fixed, I'm really interested.

2011/12/5 Peter reply@reply.github.com:

@joto it seems the C++ interface of geos was changed. The geos-guys recommend using the C interface - and now I know why.. I guess there are three poss ibilities:

  1. rewrite osmium to use the C interface
  2. fix the LinearRing-cast and possibly other problems with geos 3.3
  3. use geos 3.2 for now

Reply to this email directly or view it on GitHub: https://github.com/MaZderMind/osm-history-renderer/issues/2#issuecomment-3024532

joto commented 12 years ago

If somebody sends me patches that make it work with geos 3.3 and geos 3.2 I'll integrate them. I don't have a machine with geos 3.3, so until I have one and need it myself I probably won't look into it (unless somebody pays me money to do that).

MaZderMind commented 12 years ago

joto/osmium#36 should fix it. I also updated my Makefile to work under fedora and debian.

wiso commented 12 years ago

Thanks, can you help me, I'm really ignorant on git. I see you have created a new branch. How can I download it? I'm following this instruction: https://github.com/MaZderMind/osm-history-renderer/blob/master/TUTORIAL.md

MaZderMind commented 12 years ago

Best thing would be to wait another day until joto reviewed and merged the patch and i've updated the importer to use the new osmium head.

MaZderMind commented 12 years ago

the patch has been merged, the importer now compiles under fedora 16.

wiso commented 12 years ago

sorry, but I tried to redownload it with these instruction https://github.com/MaZderMind/osm-history-renderer/blob/master/TUTORIAL.md and I get the same error as before

MaZderMind commented 12 years ago

This is how it looks to me: http://mazdermind.de/temp/fedora.png

wiso commented 12 years ago

in fact my error is about osm-history-splitter, not osm-history-renderer

MaZderMind commented 12 years ago

Sorry, I forgot to update the osmium reference of the splitter. Should work now.