Commit graph

194 commits

Author SHA1 Message Date
Artem Pavlenko
b44762e592 allow multi/single threaded variants 2008-02-04 16:12:13 +00:00
Artem Pavlenko
f4949ffca5 patch from TomH adds a global mutex to protect all access to the
proj4 library and ensure that only one thread can be inside a call to
the library at a time.
2008-02-04 11:54:07 +00:00
Dave
6b2285f237 Fix placing 1 character line labels. 2008-01-28 21:41:53 +00:00
Artem Pavlenko
3c5b7f02f3 applied freebsd patch from Beau Gunderson 2008-01-28 14:51:10 +00:00
Artem Pavlenko
a9348db058 part of previous commit 2008-01-25 14:42:13 +00:00
Artem Pavlenko
651cdbe968 added support for saving images into Python String object
(NOTE: some methods have different signitures now- API changed)
2008-01-25 14:40:48 +00:00
Dave
5bbe90b85f Remove find_placements, build_path_follow, build_path_horizontal.
Add new find_point_placements to cover the gap left.
Change shield symbolizer to use find_point_placements.
Results are the same as before, but with much less duplicate code.
2008-01-24 01:16:14 +00:00
Dave
f11a62b849 throw an exception rather than exit the program when an unknown font is specified.
It would be better if this was done when contructing the text_symbolizer, but this will do.
2008-01-23 21:56:04 +00:00
Dave
a73687aeee Woops, remove debug output. 2008-01-23 21:39:49 +00:00
Dave
1d556b54fd Make line placement retry if it places >= 50% of the characters upside down. 2008-01-23 21:38:48 +00:00
Dave
671c215ae6 Make specifying an invalid font a fatal error. ticket #31 2008-01-23 20:31:50 +00:00
Artem Pavlenko
f802250e0f refactored image i/o , see ticket #15 for more details. 2008-01-23 11:34:59 +00:00
Dave
918bd1ef6b Improved character placement code.
Slightly changes the result of max_char_angle_delta as now character angles aren't strict against the line angles.
Example screenshots on mailing list! :)
2008-01-23 04:18:17 +00:00
Artem Pavlenko
2b60d6d425 applied patch to build on OSX Leopard and Sun's C++ compiler on Solaris from Justin Bronn 2008-01-21 20:15:07 +00:00
Artem Pavlenko
2fe6e6a0cb link to iconv on Darwin 2008-01-21 16:40:50 +00:00
Artem Pavlenko
a61553edb8 removed redundant bounding box from label_placement 2008-01-21 16:18:46 +00:00
Dave
d3ec70aff9 Return pre-r557 rendering of line aligned labels. (Not the code, the algorithm ideas)
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!
2008-01-21 03:08:18 +00:00
Dave
e96e7b18fa Fix find_placements_with_spacing in relation to http://trac.mapnik.org/ticket/62
force_odd_labels also works again.
2008-01-16 01:13:27 +00:00
Dave
a401a26ccb Additional comments for the placement finder. 2008-01-15 22:32:14 +00:00
Dave
017a966ea1 Fix blending onto transparent background. Detailed on mailing list. 2008-01-14 20:43:55 +00:00
Artem Pavlenko
30968b337e only print to clog when MAPNIK_DEBUG is defined 2008-01-11 10:09:54 +00:00
Artem Pavlenko
16f481fc27 applied mapniksoname.patch from Martjin 2008-01-03 12:16:27 +00:00
Artem Pavlenko
0390f129a1 refactored transcoder stuff 2008-01-03 11:41:00 +00:00
Artem Pavlenko
0c7b9e3736 setup install_name (soname on Darwin) for libmapnik 2007-12-31 12:34:31 +00:00
Artem Pavlenko
52bed0b89a applied patch from Jochen (throw an exception if unknown type) 2007-12-19 16:34:36 +00:00
Artem Pavlenko
37f49e29cc Applied patches from Martijn van Oosterhout:
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
2007-12-17 14:21:04 +00:00
Artem Pavlenko
002f37bdc9 corrected parameters order 2007-12-17 12:46:11 +00:00
Artem Pavlenko
58f4431df1 support for palette based PNGs, user 'png256' as a format parameter (see updated rundemo.py) 2007-12-10 19:59:17 +00:00
Artem Pavlenko
4586586448 added convinence overloads for 'save_to_file' and 'render_to_file'
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
2007-12-06 12:14:29 +00:00
Artem Pavlenko
27f88c9ec0 small fix 2007-12-06 10:59:28 +00:00
Artem Pavlenko
c5bca5ab96 removed unused variables to calm msvc toolset 2007-11-08 21:11:12 +00:00
Artem Pavlenko
c0d411d14e small cleanup 2007-11-07 14:07:12 +00:00
Artem Pavlenko
6eadaafd49 use 'avoid_edges' parameter for point placement 2007-11-06 09:07:18 +00:00
Artem Pavlenko
01de9d9e8c 1. revived 'avoid_edges' option
2. fixed 'placement_finder' extent in agg_renderer.cpp
3. added 'avoid_edges' to map loader
2007-11-05 10:32:01 +00:00
Artem Pavlenko
ce6985aaad use 'contains' instead of 'intersects' test to provide 'avoid_edges' functionality.
(Should 'avoid_edges' be always enabled ???)
2007-11-05 09:15:53 +00:00
Artem Pavlenko
8d51cb421b 1. re-factored placement_finder to be more efficient. 'find_*' methods are templated on PathType.
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.
2007-11-02 12:50:15 +00:00
David
2cf8278f1d Generic python binding for mapnik::enumeration 2007-10-19 22:17:16 +00:00
Artem Pavlenko
b40706c295 1. templated save_as_png and save_as_jpeg
2. use std::iostream for I/O in save_to_file

TODO: allow writing an output image to memory buffer (i.e Python StringIO)
2007-10-17 14:47:56 +00:00
David
bc54b150ea - reversed header include order 2007-10-08 17:42:41 +00:00
Artem Pavlenko
d1a345a3d2 1.don't share FT_Library object between threads (TODO : implement freetype_engine pool)
2. merged changes with latest load_map
2007-10-05 11:27:00 +00:00
Andreas Volz
f0cca52c3b optional build with libxml2 2007-10-02 21:43:13 +00:00
David
b2df387a9d - merged strict-xml-branch r530:532 to trunk:
- libxml2 support
    - strict error handling while parsing XML map files
    - implemented save_map()
    - removed some duplicate defaults
    - all symbolizers with icons share a common base class now
2007-09-25 18:47:12 +00:00
Artem Pavlenko
8e071f84c7 1. Changed internal geometry representation (explicit support for multi geometries)
(FIXME : label_spacing is still, too slow!!) 
2. Re-use some agg objects.
3. placement_finder cleanups! 
4. Added support for 'building_symbolizer' - extruded polygons
2007-09-16 11:23:51 +00:00
Andreas Volz
d38dedad68 + added GNU autotools build environment
+ raster and gdal input isn't tested. Not working currently...
+ *-input.so plugins created. Change loader in source or link plugin to correct place
+ use pkg-config uninstalled feature
  -> define project root to PKG_CONFIG_PATH to use mapnik without installation
+ added various library checks
+ don't install fonts
+ don't use included AGG
  -> check for a installed libagg
+ Added Makefile for c++ demo
+ don't build any python wrapper stuff
  -> this follows if all other building works
+ added Anjuta file
  -> not needed to build anything, but helps much if you use Anjuta
2007-09-14 23:07:16 +00:00
Artem Pavlenko
beebee468b fixed is_datasource_plugin predicate 2007-08-28 10:19:48 +00:00
Artem Pavlenko
7f3bbace30 check if file ends with '.input' before attempting to load it 2007-08-15 17:23:45 +00:00
Artem Pavlenko
80566ea1ba added accesor to styles 2007-08-07 12:02:24 +00:00
Artem Pavlenko
a53fbf2ca3 applied patch that makes sure names of vertical roads are
rendered in a consistent direction (from Cameron Patrick)
2007-08-01 10:57:27 +00:00
Artem Pavlenko
d959701d5a 1. added boost::optional<T> to/form Python converter
2. make background color optional (Map object)
3. exposed 'blend' method for Image object
2007-08-01 09:59:23 +00:00
Artem Pavlenko
8eac22911a applied mapnik_line_displacement patch from Cameron Patrick 2007-07-26 21:09:40 +00:00