Mapnik 3.1.0 Release Jan 08, 2021 | Artem Pavlenko
Mapnik 3.0.24 Release Jan 05, 2021 | Artem Pavlenko
Mapnik 3.0.23 Release Jan 18, 2020 | Artem Pavlenko
Mapnik 3.0.22 Release Jan 22, 2019 | Artem Pavlenko
Mapnik 3.0.21 Release Oct 08, 2018 | Artem Pavlenko
Mapnik 3.0.20 Release Apr 12, 2018 | Artem Pavlenko
Mapnik 3.0.19 Release Mar 06, 2018 | Artem Pavlenko
Mapnik 3.0.18 Release Jan 26, 2018 | Artem Pavlenko
Mapnik 3.0.16 Release Nov 16, 2017 | Artem Pavlenko
Mapnik 3.0.12 Release Sep 08, 2016 | Artem Pavlenko
Mapnik 3.0.10 Release Feb 29, 2016 | Artem Pavlenko
Node Mapnik 3.5.0 Release Feb 29, 2016 | Sam Matthews

latest news

Mapnik development

Feb 07, 2006

Jean-Francois Doyon has developed *new* building scripts for mapnik. Very cool! We're planning to add support for more platforms and toolkits.

I re-worked mapnik's feature processing pipeline and as a result we can have multiple back-ends. At the moment only the AGG renderer is implemented but writing a new one should be very straightforward. For those interested in implementation details have a look at feature_style_processor

New design based on CRTP (Curiously Recurring Template Pattern) e.g.

struct MyCoolRenderer : public feature_style_processor <MyCoolRenderer> {    
  void process(xxx_symbolizer const& sym,        
  Feature const& feature)     {                 
    //do something    
}};

Also symbolizers are simple POD objects and not related to each other. In fact there are no virtual functions at all which is good :-) . Symbolizers are managed in boost::variant type and static visitation is used to dispatch calls to relevant 'process' methods in the Derived class. One improvement would be to 'trick' the compiler into generating missing methods from implementation to make it even more user-friendly.

Copyright © 2018 Artem Pavlenko | Downloads | License | Media