February archive

Mapnik development

February 7, 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.

Release 0.2.5a

February 1, 2006

I'm very pleased to announce mapnik's new release. We've been working hard to get here. The main focus of this release is to provide a better user experience while installing mapnik, which hopefully will bring more people on board. I know, there is room for further improvements but this is a step in the right direction. This release offers:

  1. new build system
  2. new INSTALLATION INSTRUCTIONS
  3. new symbolizers (polygon/line patterns)
  4. lots of fixes.

Big thanks go to Jean-François Doyon, who in his spare time, refactored mapnik's source tree and wrote a better build system using SCons.
Enjoy!

New website!

February 1, 2006

Well, here it is. Finally we've got the new site running! It is hosted by Zettai and it is Django.

While BerliOS provides an excellent service, I always had reservations about the Mambo/PHP based site. There are a couple of reasons for that:

  • one of mapnik's goals is to provide bindings for 'cool' high-level languages and Python fits this bill nicely
  • let's spit it out: PHP sucks! (IMHO).

I hope you'll enjoy the new site and feel free to send your comments/suggestions.