Hi Dane Ok after some playing around I could get it working as well - it was again the QMAKE_CXXFLAGS +=' -ansi' that was missing. Don't know why it did not work on my first attempt.
Anyway - the viewer now shows the same output like my program: http://img12.imageshack.us/img12/4949/viewertest.jpg With nik2img it works perfectly: http://img813.imageshack.us/img813/2969/test2.png nik2img.py test2.xml test2.png -v Step: 1 // --> Nik2img starting... Step: 2 // --> Format: png Step: 3 // --> Loading mapfile... Step: 4 // --> Loaded test2.xml... ### WARNING: Failed to load image file '/home/nick/images/pub.png': cannot open image file /home/nick/images/pub.png ### WARNING: Failed to load image file '/home/nick/images/mast.png': cannot open image file /home/nick/images/mast.png ### WARNING: Failed to load image file '/home/nick/images/carpark.png': cannot open image file /home/nick/images/carpark.png ### WARNING: Failed to load image file '/home/nick/images/farm.png': cannot open image file /home/nick/images/farm.png Step: 5 // --> Setting Map view... Step: 6 // --> Zoom to extent of all layers: "Envelope(-1.5749997,50.7998221333,-1.2170842,51.0384324667)" Step: 7 // --> Finished setting extents... Loading map took... 0.7305 seconds Step: 8 // --> SRS: +proj=latlong +datum=WGS84 Step: 9 // --> Map extent: Envelope(-1.5749997,50.7998221333,-1.2170842,51.0384324667) Step: 10 // --> Map long/lat bbox: Envelope(-1.5749997,50.7998221333,-1.2170842,51.0384324667) Step: 11 // --> Map center: Coord(-1.39604195,50.9191273) Step: 12 // --> Map long/lat center: Coord(-1.39604195,50.9191273) Step: 13 // --> Map scale denominator: 237160.542899 Step: 14 // --> Extent of all layers: Envelope(-1.5749997,50.8159089,-1.2170842,51.0223457) Step: 15 // --> Long/lat extent of all layers: Envelope(-1.5749997,50.8159089,-1.2170842,51.0223457) Step: 16 // --> Long/lat center of all layers: Coord(-1.39604195,50.9191273) Step: 17 // --> Layers intersecting map: [leisure, waterway, lakes, roads, amenity, roadstext, text] Step: 18 // --> At current scale of '0.000596525833333'... Step: 19 // --> layer 'leisure' is visible Step: 20 // --> layer 'waterway' is visible Step: 21 // --> layer 'lakes' is visible Step: 22 // --> layer 'roads' is visible Step: 23 // --> layer 'amenity' is visible Step: 24 // --> layer 'roadstext' is visible Step: 25 // --> layer 'text' is visible Step: 26 // --> Starting rendering... Rendering image took... 1.394 seconds Step: 27 // --> Finished rendering map to... test2.png Total Nik2img run time: 2.1802 seconds Cheers, Tom Am Donnerstag 01 Juli 2010, 23:33:20 schrieben Sie: > Thomas, > > Can you try again with those flags? The only time we've seen this boost > assertion so far is when these flags are missing... > > Another thing to try is a older version of g++. I know that we only saw > http://trac.mapnik.org/ticket/436 on more recent linux versions with g++ > >= 4. If it works with an earlier version of g++ that might help gives > clues. > > Dane > > On Jul 1, 2010, at 6:01 AM, Thomas Walter wrote: > > Ok after some more testing I'm stuck again. My own project now does not > > crash anymore when loading the map and having a parameter object. All I > > need in the project file are those lines: > > > > QMAKE_CXXFLAGS +=' -ansi' > > LIBS += -lmapnik > > INCLUDEPATH += /usr/include/freetype2/ > > > > BUT: the rendering problem still exists. > > > > And even more, the "viewer" test program still keeps on crashing when I > > load a map. The debug output looks the same as in my program. I gave it > > all the additional CFLAGS with no change. > > Here is the compile output: > > > > g++ -c -pipe -ansi -Wall -ftemplate-depth-100 -DLINUX - > > DBOOST_SPIRIT_THREADSAFE -DMAPNIK_THREADSAFE -O2 -finline-functions > > -Wno-inline -DNDEBUG -Wno-missing-field-initializers -g -D_REENTRANT > > -Wall -W -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED > > -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore > > -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I/usr/include > > -I/usr/include/freetype2 -Idebug -I. -o debug/main.o main.cpp > > > > It opens the xml file (and even complains for the example file about some > > missing pictures) but then issues all the these errors. Any ideas about > > this? > > > > Cheers, Tom > > > > Am Montag 28 Juni 2010, 22:31:47 schrieben Sie: > >> The below error is resulting from missing CFLAGS that you need to pass > >> when compiling your own application against mapnik. > >> > >> See > >> http://www.mail-archive.com/[email protected]/msg02197.html > >> > >> It would be great if you would test which of these make a different and > >> create a wiki page on your findings. > >> > >> Dane > >> > >> On Jun 28, 2010, at 3:38 AM, Thomas Walter wrote: > >>> Btw - the programm crashes during loading the map as soon as I have > >>> declared a parameters object. It does not matter if I use this > >>> parameters object or not. > >>> > >>> datasource_cache::instance()->register_datasources > >>> > >>> ("/usr/lib/mapnik/0.7/input/"); > >>> > >>> freetype_engine::register_font > >>> > >>> ("/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf"); > >>> > >>> Map map (tdim,tdim); > >>> load_map(map,"/home/tom/Desktop/test2.xml"); > >>> > >>> parameters p; > >>> > >>> for(int count=0; count<map.layerCount(); count++) > >>> { > >>> > >>> qDebug() << "layer name = " << > >>> map.getLayer(count).name().c_str(); > >>> > >>> } > >>> > >>> The error message: > >>> > >>> REV_HMI: /usr/include/boost/variant/detail/visitation_impl.hpp:203: > >>> typename Visitor::result_type > >>> boost::detail::variant::visitation_impl(int, int, Visitor&, VPCV, > >>> mpl_::true_, NBF, W*, S*) [with W = > >>> boost::detail::variant::visitation_impl(int, int, Visitor&, VoidPtrCV, > >>> mpl_::false_, NoBackupFlag, Which*, step0*) [with Which = > >>> boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, > >>> T13, T14, T15, T16, T17, T18, T19>::internal_apply_visitor_impl(int, > >>> int, Visitor&, VoidPtrCV) [with Visitor = > >>> boost::detail::variant::copy_into, VoidPtrCV = const void*, T0_ = int, > >>> T1 = double, T2 = std::basic_string<char, std::char_traits<char>, > >>> std::allocator<char> >, T3 = boost::detail::variant::void_, T4 = > >>> boost::detail::variant::void_, T5 = boost::detail::variant::void_, T6 = > >>> boost::detail::variant::void_, T7 = boost::detail::variant::void_, T8 = > >>> boost::detail::variant::void_, T9 = boost::detail::variant::void_, T10 > >>> = boost::detail::variant::void_, T11 = boost::detail::variant::void_, > >>> T12 = boost::detail::variant::void_, T13 = > >>> boost::detail::variant::void_, T14 = boost::detail::variant::void_, > >>> T15 = > >>> boost::detail::variant::void_, T16 = boost::detail::variant::void_, T17 > >>> = boost::detail::variant::void_, T18 = boost::detail::variant::void_, > >>> T19 = > >>> boost::detail::variant::void_]::first_which, step0 = boost::variant<T0, > >>> T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, > >>> T17, T18, T19>::internal_apply_visitor_impl(int, int, Visitor&, > >>> VoidPtrCV) [with Visitor = boost::detail::variant::copy_into, VoidPtrCV > >>> = const void*, T0_ = int, T1 = double, T2 = std::basic_string<char, > >>> std::char_traits<char>, > >>> std::allocator<char> >, T3 = boost::detail::variant::void_, T4 = > >>> boost::detail::variant::void_, T5 = boost::detail::variant::void_, T6 = > >>> boost::detail::variant::void_, T7 = boost::detail::variant::void_, T8 = > >>> boost::detail::variant::void_, T9 = boost::detail::variant::void_, T10 > >>> = boost::detail::variant::void_, T11 = boost::detail::variant::void_, > >>> T12 = boost::detail::variant::void_, T13 = > >>> boost::detail::variant::void_, T14 = boost::detail::variant::void_, > >>> T15 = boost::detail::variant::void_, T16 = > >>> boost::detail::variant::void_, T17 = boost::detail::variant::void_, > >>> T18 = boost::detail::variant::void_, T19 = > >>> boost::detail::variant::void_]::first_step, Visitor = > >>> boost::detail::variant::copy_into, VoidPtrCV = const void*, > >>> NoBackupFlag = boost::variant<int, double, std::basic_string<char, > >>> std::char_traits<char>, std::allocator<char> >, > >>> boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, > >>> boost::detail::variant::void_>::has_fallback_type_]::next_which, S = > >>> boost::detail::variant::visitation_impl(int, int, Visitor&, VoidPtrCV, > >>> mpl_::false_, NoBackupFlag, Which*, step0*) [with Which = > >>> boost::variant<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, > >>> T13, T14, T15, T16, T17, T18, T19>::internal_apply_visitor_impl(int, > >>> int, Visitor&, VoidPtrCV) [with Visitor = > >>> boost::detail::variant::copy_into, VoidPtrCV = const void*, T0_ = int, > >>> T1 = double, T2 = std::basic_string<char, std::char_traits<char>, > >>> std::allocator<char> >, T3 = boost::detail::variant::void_, T4 = > >>> boost::detail::variant::void_, T5 = boost::detail::variant::void_, T6 = > >>> boost::detail::variant::void_, T7 = boost::detail::variant::void_, T8 = > >>> boost::detail::variant::void_, T9 = boost::detail::variant::void_, T10 > >>> = boost::detail::variant::void_, T11 = boost::detail::variant::void_, > >>> T12 = boost::detail::variant::void_, T13 = > >>> boost::detail::variant::void_, T14 = boost::detail::variant::void_, > >>> T15 = > >>> boost::detail::variant::void_, T16 = boost::detail::variant::void_, T17 > >>> = boost::detail::variant::void_, T18 = boost::detail::variant::void_, > >>> T19 = > >>> boost::detail::variant::void_]::first_which, step0 = boost::variant<T0, > >>> T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, > >>> T17, T18, T19>::internal_apply_visitor_impl(int, int, Visitor&, > >>> VoidPtrCV) [with Visitor = boost::detail::variant::copy_into, VoidPtrCV > >>> = const void*, T0_ = int, T1 = double, T2 = std::basic_string<char, > >>> std::char_traits<char>, > >>> std::allocator<char> >, T3 = boost::detail::variant::void_, T4 = > >>> boost::detail::variant::void_, T5 = boost::detail::variant::void_, T6 = > >>> boost::detail::variant::void_, T7 = boost::detail::variant::void_, T8 = > >>> boost::detail::variant::void_, T9 = boost::detail::variant::void_, T10 > >>> = boost::detail::variant::void_, T11 = boost::detail::variant::void_, > >>> T12 = boost::detail::variant::void_, T13 = > >>> boost::detail::variant::void_, T14 = boost::detail::variant::void_, > >>> T15 = boost::detail::variant::void_, T16 = > >>> boost::detail::variant::void_, T17 = boost::detail::variant::void_, > >>> T18 = boost::detail::variant::void_, T19 = > >>> boost::detail::variant::void_]::first_step, Visitor = > >>> boost::detail::variant::copy_into, VoidPtrCV = const void*, > >>> NoBackupFlag = boost::variant<int, double, std::basic_string<char, > >>> std::char_traits<char>, std::allocator<char> >, > >>> boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, > >>> boost::detail::variant::void_>::has_fallback_type_]::next_step, Visitor > >>> = boost::detail::variant::copy_into, VPCV = const void*, NBF = > >>> boost::variant<int, double, std::basic_string<char, > >>> std::char_traits<char>, std::allocator<char> >, > >>> boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, boost::detail::variant::void_, > >>> boost::detail::variant::void_, > >>> boost::detail::variant::void_>::has_fallback_type_]: Assertion `false' > >>> failed. > >>> > >>> > >>> > >>> And the debugging points to this: "BOOST_ASSERT(false);" > >>> > >>> /////////////////////////////////////////////////////////////////////// > >>> // ////// // (detail) function template visitation_impl > >>> // > >>> // Invokes the given visitor on the type in the given variant storage. > >>> // > >>> > >>> template < > >>> > >>> typename W, typename S > >>> > >>> , typename Visitor, typename VPCV > >>> , typename NBF > >>> > >>> inline > >>> > >>> BOOST_VARIANT_AUX_GENERIC_RESULT_TYPE(typename Visitor::result_type) > >>> > >>> visitation_impl( > >>> > >>> int, int, Visitor&, VPCV > >>> > >>> , mpl::true_ // is_apply_visitor_unrolled > >>> , NBF, W* = 0, S* = 0 > >>> ) > >>> > >>> { > >>> > >>> // should never be here at runtime: > >>> BOOST_ASSERT(false); > >>> typedef typename Visitor::result_type result_type; > >>> return ::boost::detail::variant::forced_return< result_type >(); > >>> > >>> } > >>> > >>> > >>> Any idea what's happening here? > >>> > >>> Cheers, Tom > >>> > >>> Am Montag 28 Juni 2010, um 15:44:05 schrieb Thomas Walter: > >>>> Hi Dane > >>>> > >>>> The rendering with nik2img seems to work correctly: > >>>> $ nik2img.py test2.xml test2.png > >>>> generates this image: > >>>> http://img251.imageshack.us/img251/470/test2sz.png > >>>> > >>>> The interesting thing is that with my program I get some of the street > >>>> names in the map so it seems to load the osm file and to read it. And > >>>> in fact it also takes about 2 seconds to render it (256x256 pixels on > >>>> an dual core pentium 2Ghz). > >>>> > >>>> So imho the problem is neither the xml file nor the osm file nor the > >>>> mapnik installation. But maybe I did not select the correct envelope? > >>>> > >>>> Currently I am using this: > >>>> map.zoom_all(); > >>>> > >>>> When selecting another envelope like this > >>>> > >>>> Envelope<double> bbox(50.9,-1.45,51.0,-1.35); > >>>> map.zoomToBox(bbox); > >>>> > >>>> it renders only the background. Btw, the coordinates are taken from > >>>> the osm file: <bound box='50.9,-1.45,51.0,-1.35' > >>>> origin='http://www.openstreetmap.org/api/0.5' /> > >>>> > >>>> Could this be the problem? If it is, how can I select the correct > >>>> bbox? > >>>> > >>>> Cheers, Tom > >>>> > >>>> Am Montag 28 Juni 2010, um 10:18:34 schrieb Dane Springmeyer: > >>>>> Thomas. Hard to say what is wrong. I'm traveling so I cannot > >>>>> currently dig up that osm plugin example map. Can you render the > >>>>> map using nik2img and compare the results? > >>>>> > >>>>> Dane > >>>>> > >>>>> --- \o/ --- > >>>>> Sent from my phone > >>>>> > >>>>> On Jun 25, 2010, at 12:24 PM, Thomas Walter <[email protected]> > >>>>> > >>>>> wrote: > >>>>>> Hi there > >>>>>> > >>>>>> I am trying to generate map tiles out of an osm-file, but for some > >>>>>> reason > >>>>>> mapnik has problems with the rendering. Often it generates only the > >>>>>> background > >>>>>> and if it renders more then it is only some random stuff. > >>>>>> > >>>>>> When I try to render the test2.xml from > >>>>>> http://trac.mapnik.org/browser/trunk/plugins/input/osm > >>>>>> it generates this tile: > >>>>>> http://img145.imageshack.us/img145/8569/mapnikerror.png > >>>>>> > >>>>>> I am using mapnik 0.7.0 from the ubuntu repositories. > >>>>>> > >>>>>> The relevant source code (mainly taken from the examples) is: > >>>>>> datasource_cache::instance()->register_datasources > >>>>>> > >>>>>> ("/usr/lib/mapnik/0.7/input/"); > >>>>>> > >>>>>> freetype_engine::register_font > >>>>>> > >>>>>> ("/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf"); > >>>>>> > >>>>>> Map map (tdim,tdim); > >>>>>> load_map(map,"/home/tom/Desktop/test2.xml"); > >>>>>> map.zoom_all(); > >>>>>> > >>>>>> Image32 buf(map.getWidth(), map.getHeight()); > >>>>>> agg_renderer<Image32> ren(map,buf); > >>>>>> ren.apply(); > >>>>>> > >>>>>> QImage image((uchar*)buf.raw_data(),map.getWidth(), > >>>>>> > >>>>>> map.getHeight(),QImage::Format_ARGB32); > >>>>>> > >>>>>> Cheers > >>>>>> Tom > >>>>>> _______________________________________________ > >>>>>> Mapnik-users mailing list > >>>>>> [email protected] > >>>>>> https://lists.berlios.de/mailman/listinfo/mapnik-users > >>> > >>> _______________________________________________ > >>> Mapnik-users mailing list > >>> [email protected] > >>> https://lists.berlios.de/mailman/listinfo/mapnik-users > > > > _______________________________________________ > > Mapnik-users mailing list > > [email protected] > > https://lists.berlios.de/mailman/listinfo/mapnik-users _______________________________________________ Mapnik-users mailing list [email protected] https://lists.berlios.de/mailman/listinfo/mapnik-users

