Spacing and no spacing line rendering are done by the same function.
Code is cleaner, performance should be equal or improved.
Text displacement is "Different", better in some cases and worse in others, I can revert it if wanted.
Old non spacing code is not yet removed as it is used by ShieldSymbolizer which I haven't investigated yet.
Individual character placement still has issues, that is my next task to fix!
1. The first allows the user to add a <FileSource
name="foo">/home/bar/baz/</FileSource> to the beginning of the file
and then in any of the symbolisers you can say:
<FooSymboliser base="foo" name="bridge">
It it will refer to the file /home/bar/baz/bridge.
2. The second allows you to create Datasource templates at the top
level, which can be used later in the actual layers like so:
<Map>
<Datasource name="db">
<Paramaeter name="host">/tmp</Parameter>
</Datasource>
<Layer name="lay">
<Datasource base="db">
<Parameter name="table">points</Parameter>
</Datasource>
</Layer>
</Map>
And the host parameter will be used in the layer.
3. The third adds the "base" parameter to the raster and shape input
plugins. All it does is specify a path to prefix to the filename prior
to using it. Together with the above feature it allows things like:
<Map>
<Datasource name="shapes">
<Paramaeter name="base">/home/foo/shapes</Parameter>
</Datasource>
<Layer name="lay">
<Datasource base="shapes">
<Parameter name="file">places</Parameter>
</Datasource>
</Layer>
</Map>
And it will use the shapefile /home/foo/shapes/places
1. The README talks about "scons.py", but it is just called "scons".
2. In demo/c++ there is a Makefile, but the readme.txt gives a command
line to compile. Both don't work for me. One error can at least be
fixed by adding -I../../agg/include to the command line.
3. When compiling Mapnik an error is thrown because of a redefined type.
This was on an Intel 64Bit machine. Fixed by "typedef char byte" to
"typedef uint8_t byte" in include/mapnik/global.hpp. I am not sure
whether thats the right fix, though, I just guessed. :-)
4. include/mapnik/image_data.hpp needs
#include <mapnik/octree.hpp>
to compile
Example:
>>> from mapnik import *
>>> im = Image(200,200)
>> save_to_file('test.png',im) # Guess image type from file extension
>> save_to_file('test.png,'jpeg',im) # Explicitly save as JPEG
>>> from mapnik import *
>>> for name in FontEngine.instance().face_names():
... print name
...
DejaVu Sans Bold
DejaVu Sans Bold Oblique
....
2. std::vector<std::string> is reflected as mapnik_.Names object
TODO: test if there are more then one face in the file
2. PostGIS plug-in - optional 'multiple_geometries' parameter to control how Multi* geometries built.
3. MarkersSymbolizer (work in progress) to render vector shapes (markers) alonh a path with collision detection.