mapnik/plugins/input/templates/helloworld
Sandro Santilli 4c525e0e25 Makefile tweaks for helloworld template plugin
- Do not force use of clang++ to build the plugin (broken on recent debian
   and derivates: https://bugs.debian.org/643959)
 - Do not force clean on install
 - Use -fPIC to build objects (or g++ complains)
2014-06-16 09:52:26 -07:00
..
build.py scons: support MAPNIK_NAME option to customize libmapnik name for custom packaging 2014-06-09 13:55:56 -07:00
hello_datasource.cpp c++11 : remove boost::make_shared includes 2013-10-17 15:09:56 +01:00
hello_datasource.hpp + replace <boost/shared_ptr.hpp> with <memory> 2013-09-20 14:13:23 +01:00
hello_featureset.cpp c++11 compile fixes 2013-10-22 16:05:44 -04:00
hello_featureset.hpp use const std::unique_ptr<> instead of boost::scoped_ptr<> 2013-09-20 14:22:58 +01:00
Makefile Makefile tweaks for helloworld template plugin 2014-06-16 09:52:26 -07:00
README.md tests: make consistent the proj4 string for epsg:4326 2013-01-25 00:49:55 -08:00
test.xml tests: make consistent the proj4 string for epsg:4326 2013-01-25 00:49:55 -08:00

hello world plugin

This is a very simple sample plugin. It is designed to help developers see the skeletal basics needed to achieve a functional datasource plugin.

It is not a model plugin of best practices as much as a model of the bare minimum you need to have a working plugin that returns a single feature.

Code comments attempt to highlight which code is mandatory, which is simply recommended, and which is purely fluff used to get the plugin to actually show some data.

When added to a map it provides a single point geometry representing the center of any query. This means that it should place a point in the middle of any map tile and display a "hello world!" label if used like:

style hello

Or used in python like:

from mapnik import * m = Map(600,400) m.background = Color('white') s = Style() r = Rule() r.symbols.append(PointSymbolizer()) t = TextSymbolizer(Expression("[key]"),"DejaVu Sans Book",10,Color('black')) t.displacement = (15,15) r.symbols.append(t) s.rules.append(r) m.append_style('style',s) ds = Datasource(type="hello") l = Layer('test') l.styles.append('style') l.datasource = ds m.layers.append(l) m.zoom_all() render_to_file(m,'test.png')