Commit graph

9417 commits

Author SHA1 Message Date
Oliver Tonnhofer
fc8eb981fe prevent double-free in mapnik::projection
A double-free can happen when init_proj4 is called outside of the
constructor (for projections with defer_proj_init=true) and when that
call fails. In this case proj_ctx_ is not set to NULL and then freed
again in the destructor. Set to null to avoid second pj_ctx_free call.

See #2170
2014-03-08 19:50:34 -08:00
Sandro Santilli
d36c39d9be Make sure status() returns a message also on bad connection
Closes #2173.
2014-03-06 10:18:21 +01:00
Sandro Santilli
9a1996620e Do not attempt to PQclear a null PQresult* 2014-03-06 10:04:10 +01:00
Dane Springmeyer
871b17f5d9 fix postgis plugin linking when statically linking on linux - refs mapnik/mapnik-packaging#123 2014-02-27 14:40:14 -08:00
Dane Springmeyer
0fbcc12678 fix static linking of gdal/ogr plugins on linux - refs mapnik/mapnik-packaging#123 2014-02-27 14:40:09 -08:00
Dane Springmeyer
f2021971f0 fix postgis plugin linking when statically linking on linux - refs mapnik/mapnik-packaging#123 2014-02-27 14:23:57 -08:00
Dane Springmeyer
6f14228e30 fix static linking of gdal/ogr plugins on linux - refs mapnik/mapnik-packaging#123 2014-02-27 14:02:24 -08:00
Dane Springmeyer
21555b51c2 avoid double application of scale_factor - refs #1926 2014-02-27 13:28:25 -08:00
Dane Springmeyer
0d122c9878 update more tests after e49f63730e - refs #1926 2014-02-27 13:28:17 -08:00
Dane Springmeyer
3dd05bd171 support scale_factor in geometry-transform translate and scale - refs #1926 2014-02-27 13:28:03 -08:00
Dane Springmeyer
b1cfe548b0 avoid double application of scale_factor - refs #1926 2014-02-27 13:20:58 -08:00
Dane Springmeyer
f7a0dadf33 update more tests after e49f63730e - refs #1926 2014-02-27 13:08:45 -08:00
Dane Springmeyer
e49f63730e support scale_factor in geometry-transform translate and scale - refs #1926 2014-02-27 11:55:58 -08:00
Dane Springmeyer
fead2e2584 fixes after merge 2014-02-27 11:17:50 -08:00
Dane Springmeyer
277ae93d2c make inflated image for blurring opt-in via 'image-filters-inflate' option - refs #2165
Conflicts:
	src/agg/agg_renderer.cpp
2014-02-27 11:17:09 -08:00
Dane Springmeyer
aec32f88f7 Merge pull request #2167 from mapnik/issue_2165
make inflated image for blurring opt-in
2014-02-27 10:42:43 -08:00
Dane Springmeyer
4e957c9cac make inflated image for blurring opt-in via 'image-filters-inflate' option - refs #2165 2014-02-27 10:11:17 -08:00
Jordan Hollinger
533820c63f Merge branch 'expr-v2' of github.com:mapnik/mapnik into expr-v2-group-symbolizer
Conflicts:
	src/text/placement_finder.cpp
	tests/visual_tests/test.py
2014-02-25 14:21:51 -05:00
artemp
19c2b76e10 remove unused text_symbolizer.hpp/cpp 2014-02-25 14:25:23 +00:00
Jordan Hollinger
08ea56996a Add shield symbolizer support in group symbolizer processing.
Update some test cases to use ShieldSymbolizer instead of point and text.
2014-02-25 08:53:35 -05:00
artemp
ecc5acbdb9 attempt to handle multi-polygons in shape.input 2014-02-24 15:20:06 +00:00
artemp
7adb29bdd0 restore agg polygon clipper 2014-02-24 15:19:29 +00:00
Dane Springmeyer
14c02e76a7 Merge pull request #2138 from MapQuest/jmh-text-layouts
Multiple text layouts in text symbolizer
2014-02-18 17:59:56 -08:00
Dane Springmeyer
e9099076b9 Merge pull request #2155 from plepe/expr-v2-tests
expr-v2: Create tests for symbolizers, using expressions for parameters
2014-02-18 17:53:47 -08:00
Jordan Hollinger
07dc6e37a2 Merge branch 'expr-v2' of github.com:mapnik/mapnik into expr-v2-group-symbolizer
Conflicts:
	include/mapnik/attribute_collector.hpp
2014-02-18 18:22:01 -05:00
Matt Amos
a25b480593 Python interface for group symbolizer.
Boost::Python interface, and added a test to check that it works.
Looks like it fails at the moment due to other changes - a lot of
the python symbolizer tests show the same thing.
2014-02-18 16:38:58 -05:00
Jordan Hollinger
bbd2cfd40f Grid renderer implementation for group symbolizer.
This uses common process_group_symbolizer for most of the work.
Add reference grids for visual tests.
2014-02-18 16:37:41 -05:00
Matt Amos
f81d5abe1f "Implement" group symbolizer for SVG renderer.
Note that the "implementation" for SVG renderer is the same as
for other symbolizers there - i.e: empty.
2014-02-18 15:54:32 -05:00
Matt Amos
7e25a220a8 Implement debug symbolizer for Cairo. Update tests for debug symbolizer.
Debug symbolizer is useful, and used in a bunch of tests. This
adds debug symbolizer support for Cairo to make it closer to the
capabilities of AGG.

Adding debug symbolizer for Cairo meant that red boxes appeared in
many of the visual test outputs. This commit replaces them with
the output, after visual inspection. They should now be closer to
the output of the AGG test cases.
2014-02-18 15:53:55 -05:00
Matt Amos
44e69e9b05 Cairo renderer implementation of group symbolizer.
This uses the renderer_common header to do most of the heavy
lifting, but otherwise is very similar to the AGG renderer
implementation.

Add cairo ref images for group symbolizer tests.
2014-02-18 15:45:11 -05:00
Matt Amos
f8097748a4 Added more tests for group symbolizer.
The first test shows how an obstacle under the group being displayed
will cause the whole group to not display. Above is an replica of
the same layout using non-grouped symbolizers, which shows that
only the parts which intersect the obstacle will not be drawn.

The second is a line placement test, which just tests placement
of groups on a line with variable spacing.

The third is a test of repeat key in group symbolizer.
The test shows two items with different repeat keys ("foo" and "bar")
and rows of other group symbolizers sensitive to either one. The
reference images show that the "bar"-sensitive rows are displaced
by the "bar" item, but not the "foo" item.
2014-02-18 15:06:40 -05:00
Jordan Hollinger
3d1c30db1e Extracted a lot of code from agg render process_group_symbolizer.
Move a lot of processing into a common process_group_symbolizer function.
Also, extract column collection out of process_group_symbolizer function.
This will reduce duplication needed for other renderers.
2014-02-18 15:06:40 -05:00
Matt Amos
efc29649ab Added test for group symbolizer, fixed segfault.
Segfault was due to `glyph_position` structs keeping a pointer to
`glyph_info` objects which went out of scope at a different time.
The (rather ugly) fix for the moment is to copy that information
into the thunk object.
2014-02-18 14:06:05 -05:00
Jordan Hollinger
76329028d2 Find placements and render in process_group_symbolizer.
Create a group_symbolizer_helper for group placments, and extract some code from
text_symbolizer_helper into a base class to share with group_symbolizer_helper.
Also, move tolerance_iterator into its own header file. Use helper in
process_group_symbolizer to find placement positions.
2014-02-18 14:01:04 -05:00
Matt Amos
1ccdc5b76d Added code to render frozen thunks.
This renders the saved information from previous calls to the
bounding box extraction code, offset by some amount which should
be determined from running the `placement_finder`. Note that this
doesn't implement that bit, just the rendering.
2014-02-18 11:11:07 -05:00
Matt Amos
b85e7d0764 Added method to extract bounding boxes for symbolizers.
This is done by creating a fake 'virtual' environment at a fake
point and running the symbolizer render code. The actual render
is saved in a thunk for after the group layout has been done.
2014-02-18 11:11:06 -05:00
Jordan Hollinger
fbc2a0d1e3 Framework for group symbolizer.
This includes XML parsing of group symbolizer and related objects and
process_group_symbolizer method in the AGG renderer. This also includes
code to collect group symbolizer indexed columns, create sub features,
and match them to group rules.
2014-02-18 11:07:52 -05:00
Dane Springmeyer
b0278d4285 fix #2156 2014-02-11 09:20:11 -08:00
Dane Springmeyer
b799395f6a remove unused code 2014-02-10 21:39:56 -08:00
Dane Springmeyer
913bcb44b3 c++11 2014-02-10 21:36:59 -08:00
Dane Springmeyer
c13448f75e collect attributes from all properties - closes #2153 2014-02-10 19:41:17 -08:00
Dane Springmeyer
1c30683f23 fix round tripping of max-char-angle-delta value 2014-02-10 19:37:40 -08:00
Stephan Bösch-Plepelits
96e5129c9a Create tests for point-symbolizer, using expressions for parameters
- there are two versions:
  - point-symbolizer-expressions: file
  - point-symbolizer-expressions-all: additionally test
    allow-overlap, opacity, transform, ignore-placement, comp-op
    which are not supported right now
2014-02-11 04:27:36 +01:00
Stephan Bösch-Plepelits
3882707123 Create tests for polygon-symbolizer, using expressions for parameters
- there are two versions:
  - polygon-symbolizer-expressions: fill, fill-opacity, gamma
  - polygon-symbolizer-expressions-all: additionally test
    comp-op which is not supported right now
2014-02-11 04:26:30 +01:00
Stephan Bösch-Plepelits
676e1c7bfc Added grid-reference.json files missing in 79fde58c0e 2014-02-11 03:49:53 +01:00
Jordan Hollinger
e4afefa514 Update text-multi-layout visual tests to demonstrate placement list with layout nodes and layout/format node nesting. Add new images for line-multi-layout tests. 2014-02-10 20:01:35 -05:00
artemp
5b286da889 c++ : style 2014-02-10 21:56:20 +00:00
Stephan Bösch-Plepelits
79fde58c0e Create tests for line-symbolizer, using expressions for parameters
- there are two versions:
  - line-symbolizer-expressions: stroke, stroke-width, stroke-opacity, offset
  - line-symbolizer-expressions-all: additionally test
    stroke-dasharray, stroke-linecap, stroke-linejoin, comp-op
    which are not supported right now
2014-02-10 20:02:08 +01:00
Dane Springmeyer
0a26485d28 add simple, c++ version of nik2img 2014-02-10 10:46:48 -08:00
Dane Springmeyer
7b75a24111 Merge pull request #2154 from mapnik/expr-v2-vt-conv-feature
Expr v2 vt conv feature
2014-02-10 10:44:19 -08:00