Commit graph

575 commits

Author SHA1 Message Date
Dane Springmeyer
e897b832a4 +reflect new text symbolizer options added in r1254 - closes #391 2009-08-17 22:54:50 +00:00
Dane Springmeyer
65066f604f formatting 2009-08-11 01:22:08 +00:00
Dane Springmeyer
e7dd9094a5 revert unintended file changes from r1275 2009-07-26 01:15:44 +00:00
Dane Springmeyer
45266074c8 scons: fix typo, and ensure all temp output is writeable 2009-07-26 01:08:51 +00:00
Dane Springmeyer
52eb500749 formatting 2009-07-24 07:26:14 +00:00
Dane Springmeyer
286ad12c47 add method to save a map to a string (closes #396) 2009-07-24 06:15:58 +00:00
Dane Springmeyer
e0c9e5c826 add missing serialization of building symbolizer height, be explicit of double in polygon_symbolizer 2009-07-24 06:10:42 +00:00
Artem Pavlenko
85ecc33d7f + applied patch from Jochen Topf :
* text_convert="none|toupper|tolower"
 Convert all text to upper/lower case before rendering. "none" doesn't do
 anything with the text and is the default. Works for labels along lines
 or at points.

* line_spacing="<number>"
 Add this many pixels space between two lines in text labels that have
 been broken into several lines. Default is 0. Doesn't do anything for
 labels along lines.

* character_spacing="<number>"
 Add this many pixels space between two characters in a text. Default is 0.
 Currently only works for text labels on point geometries. This should
 also be implemented for labels along lines, but I'll leave that for
 another day.

* wrap_character="<character>"
 Instead of breaking text into lines on spaces, use this character. This
 is useful, when you want to make sure that labels are broken at the right
 spot. Note that you'll probably want to make wrap_width small so that
 your lines are actually broken, otherwise you'll see the wrap_character
 in the output. Default is ' ' (space). Doesn't do anything for labels
 along lines.
2009-07-20 15:30:19 +00:00
Dane Springmeyer
d6cf82efb0 +support for BigInt(int8) datatype in postgres, closes #384 2009-07-17 04:30:11 +00:00
Artem Pavlenko
e81f6b23ef + increment version to 0.6.1 2009-07-09 14:41:14 +00:00
Artem Pavlenko
e5ac14a236 + removed unused #include 2009-07-08 20:50:20 +00:00
Artem Pavlenko
155e490c33 + store individial colour components internally 2009-07-08 11:52:13 +00:00
Dane Springmeyer
408e3fedcb fix small typo in #define 2009-07-08 00:06:13 +00:00
Artem Pavlenko
ae96fffee0 + use MAPNIK_BIG_ENDIAN
+ support for reading int16_t 
+ allow compiling shape.input with or without memory mapped files support 
  ( define SHAPE_MEMORY_MAPPED_FILE to enable)
2009-07-07 23:56:01 +00:00
Artem Pavlenko
535a8dc2a5 + fully qualify stl strings 2009-07-07 23:54:02 +00:00
Artem Pavlenko
470c92adee + reverse order when reading NDR int/double 2009-07-07 19:44:40 +00:00
Artem Pavlenko
6ca258cc1e + fixed read_xxx_double methods 2009-07-07 16:05:24 +00:00
Artem Pavlenko
d20a2de459 + move byte order depended I/O to global.hpp
this should fix shape.input PPC issues
2009-07-03 13:29:50 +00:00
Dane Springmeyer
14ef2b36f0 expose list of registered plugins as a 'plugin_names()' method of DatasourceCache similar to the FontEngine.face_names() - closes #246 2009-06-22 06:59:56 +00:00
Jon Burgess
8c60753db6 Fix reduce_4() to make it consistent with reduce_8(). This was breaking tiles which were compressing down to a 16 entry colormap. All the pixels were being set to the alpha index. 2009-06-13 18:27:44 +00:00
Dane Springmeyer
7eb01c0be4 +make cairo compilation conditional on CFLAG (as well as Scons) like bindings/python/python_cairo.cpp 2009-06-08 19:43:49 +00:00
Dane Springmeyer
06f740615d apply patch from River Tarnell <river@loreley.flyingparchment.org.uk> for Sun CC (Solaris) compile support 2009-06-03 06:10:35 +00:00
Dane Springmeyer
e7aff375db std namespacing 2009-06-03 05:26:46 +00:00
Dane Springmeyer
dadd64519b +add pickle support for proj_transform and view/coord_transform - see #345 2009-05-24 06:31:32 +00:00
Dane Springmeyer
fd98a4a49a shuffle guess_type to image_utils for logical re-use 2009-05-19 22:43:54 +00:00
Dane Springmeyer
88765bb582 add MAPNIK_DECL to symbolizer_with_image - closes #94 2009-05-15 23:56:06 +00:00
Dane Springmeyer
13fa57e61f expose setting of symbolizer_with_image filename 2009-05-14 22:54:36 +00:00
Dane Springmeyer
b905e81fbe formatting 2009-05-14 22:53:03 +00:00
Dane Springmeyer
196b01c16c + make interface to datasource attributes, featuresets, and features more pythonicby adding feature.envelope() method returning combined extent of geometries, ds.fields() method returning list of names, and featureset.features() which returns list of all features in featurset - now accessible via datasource.all_features()- closes #283, #280, #171 2009-05-01 01:21:29 +00:00
Dane Springmeyer
263674d3d9 fix compiler warnings after r1111 (adding png256 alpha support) 2009-04-30 17:38:32 +00:00
Lucio Asnaghi
eaa49ca028 + applying patch proposed by dane that add explicit_defaults selection when saving maps (closes #327) 2009-04-28 21:44:34 +00:00
Lucio Asnaghi
158989fc56 + fix text_symbolizer support for vertical_alignment in save_map() (closes #328) 2009-04-28 21:23:43 +00:00
Dane Springmeyer
201461e8c9 +png256 alpha support from Marcin - closes #202 2009-04-28 07:29:48 +00:00
Artem Pavlenko
8d963e4270 + use separate x/y scales - important for raster 2009-04-10 12:00:51 +00:00
Artem Pavlenko
9cdc8951ca + pass parameter by const ref 2009-04-10 11:47:46 +00:00
Dane Springmeyer
4276ae24fe allow customization of JPEG output image quality using syntax similar to png256, but using 0-100 as suffix, e.g. render_to_file(m,'image.jpeg','jpeg80') - closes #198 - patch from Dennis Luxen 2009-04-07 15:48:51 +00:00
Dane Springmeyer
1fd4ed0a55 fix missing const - thanks Denis - closes #273 and #287 2009-04-02 16:35:08 +00:00
Dane Springmeyer
08669a08fb scons: add an option to turn on XML spirit debug output in addition to debug mode (note earlier commit added part of this patch http://trac.mapnik.org/changeset/1027/trunk/include/mapnik/filter_parser.hpp) - closes #150 2009-04-01 03:31:24 +00:00
Artem Pavlenko
4a3a9128ec + move compositing modes implementation out of Image class 2009-03-31 10:08:33 +00:00
Artem Pavlenko
e4f305620f + use 'byte' (boost::uint8_t) 2009-03-31 09:42:20 +00:00
Artem Pavlenko
10f55a678b + add support for vertical_alignment (text_symbolizer)
valid values are : top, middle, bottom
  default to middle which can now center multi-line text
2009-03-30 20:47:26 +00:00
Artem Pavlenko
2eec236fc2 + applied "hill shading" patch from Marcin Rudowski
a) Raster opacity
   b) Raster merging modes (TODO:add more modes, consider agg impl)
   c) Raster scaling algos: fast,bilinear,bilinear8
      (TODO: add alpha support in bilinear8) 
   d) improvements to png256

   *Great work, thanks!*
2009-03-29 11:05:20 +00:00
Andreas Volz
cab469eefb - added new et input plugin
- add missing files to plugins Makefile.am
- split debugging and tracing
- documentation
2009-03-22 22:26:42 +00:00
Artem Pavlenko
570fe611f4 + qualify 'value' to avoid names clashing
+ use _enumeration helper wrapper
2009-03-21 12:39:06 +00:00
Artem Pavlenko
afaf2df3ec + update CHANGELOG
+ formatting
2009-03-21 11:25:07 +00:00
Andreas Volz
194093d719 doxygen docs for some functions and classes 2009-03-01 21:09:09 +00:00
Lucio Asnaghi
556095af04 - sqlite.input: added row_offset and row_limit to parameters
- sqlite.input: added wkb_format parameter for selecting WKB format (generic/spatialite)
- sqlite.input: commented check of the spatial index
- wkb.hpp: removed wkqSQLite in favour of wkbSpatiaLite
2009-02-23 15:00:25 +00:00
Andreas Volz
c64269e1e3 support for sqlite3 and ogr 2009-02-18 22:17:00 +00:00
Artem Pavlenko
f3a835d2f2 + const correctness 2009-02-18 16:39:26 +00:00
Artem Pavlenko
97a40d7e7e + fix msvc-9.0 compiler warnings 2009-02-17 23:19:28 +00:00
Artem Pavlenko
5358417474 + use class/struct keywords correctly 2009-02-17 22:06:30 +00:00
Artem Pavlenko
021c7c0044 + ignore unused variable warning 2009-02-16 23:31:47 +00:00
Artem Pavlenko
da9f79c494 + add specialisations for bool
+ small fix
2009-02-16 15:47:18 +00:00
Artem Pavlenko
98267e2959 + MAPNIK_VERSION (defined in mapnik/version.hpp)
+ expose version in Python :
  mapnik.mapnik_version()
  mapnik.mapnik_version_string()
+ add SQLite plug-in in Python bindings
2009-02-12 16:44:04 +00:00
Artem Pavlenko
950cfb8473 + add missing MAPNIK_DECL 2009-02-12 14:33:00 +00:00
Artem Pavlenko
8839d9fd3f + add <string> 2009-02-11 17:09:56 +00:00
Artem Pavlenko
698037e782 + use 'byte' defined in global.hpp 2009-02-11 16:57:46 +00:00
Artem Pavlenko
f65f3782dc + use 'typedef byte' instead of uint_8t 2009-02-11 16:45:20 +00:00
Artem Pavlenko
c937fe280a + make compile cleanly with boost >= 1.38.0
(TODO : move to spirit2 in milestone 1.0.0)
2009-02-11 16:29:44 +00:00
Artem Pavlenko
160c227196 + boost-qualify type 2009-02-11 15:58:22 +00:00
Artem Pavlenko
66120740cf + add missing header cstdint.hpp 2009-02-11 15:23:45 +00:00
Artem Pavlenko
87add8220f + fixed typo affecting win32 build 2009-02-11 15:12:06 +00:00
Lucio Asnaghi
2c81706eb5 Following #223:
+ improvements to the wkb converter
+ improved sqlite index usage
+ added more parameters to sqlite datasource
2009-02-10 19:09:16 +00:00
Tom Hughes
abe24475d8 Add a modulus operator to the filter language. 2009-02-10 15:46:54 +00:00
Artem Pavlenko
7d2f492ef2 + sqlite-input-plugin.patch (kunitoki)
+ wkb-sqlite.patch (kunitoki)
+ very preliminary spatial index support (idx_<tablename>_<geometry_field>)
2009-02-09 19:43:57 +00:00
Jon Burgess
5ac5522f4b Improve numerical accuracy of calculations used for finding the polygon centroid. Otherwise the labels for small polygons might appear outside the boundary. 2009-02-07 23:46:26 +00:00
Tom Hughes
220bb3e99a Revert the patch to add a show_page flag to the cairo renderer and
replace it with support for rendering to a cairo context rather than
a cairo surface.

When rendering to a surface a show_page is done, when rendering to a
context it is not so that multiple renders can be done, possibly with
modified scaling and/or translation.
2009-02-06 00:46:29 +00:00
Dane Springmeyer
51293f64ba + apply show_page.patch (thanks Berteun) (closes #201) 2009-02-05 18:09:14 +00:00
Artem Pavlenko
a45e93b79a + more property goodness on the TextSymbolizer from Python (springmeyer) 2009-02-05 11:54:07 +00:00
Dane Springmeyer
29cc79b9cf Fix compiler warnings introduced in r855 by moving allow_overlap below has_dimensions 2009-02-03 03:10:18 +00:00
Artem Pavlenko
e27a71cc39 + mapnik_text_overlap.patch (Marcin Rudowski) 2009-02-02 23:37:16 +00:00
Artem Pavlenko
760d82f511 + mapnik_png256_reduce.patch (Marcin Rudowski) 2009-02-02 23:35:57 +00:00
Artem Pavlenko
10481f8403 + use 'buffered' extent in bbox query 2009-02-02 23:08:28 +00:00
Artem Pavlenko
866f5f98eb + implement buffered_extent method on Map object 2009-02-02 23:07:18 +00:00
Artem Pavlenko
6a86e239b1 + always clip bbox to layer extent 2009-02-01 23:25:05 +00:00
Artem Pavlenko
d61b3e4918 + remove unused header 2009-02-01 23:23:37 +00:00
Jon Burgess
cc91460a01 Filter parsing: Allow numbers in the filter field name. This allows for shapefiles with columns like '1970'. 2009-02-01 23:07:37 +00:00
Dane Springmeyer
f5127d6ee4 Remove reference to CAIRO_HAS_IMAGE_SURFACE macro since this is not supported until cairo 1.8 release 2009-01-28 21:11:10 +00:00
Artem Pavlenko
98875e392b + fix compiler warning 2009-01-27 10:18:06 +00:00
Artem Pavlenko
eeb759d9e1 + normalize rgb color ranges to 0-255,
+ clip alpha to 0.0 - 1.0 range
2009-01-26 15:59:10 +00:00
Artem Pavlenko
9b1c4b2413 + cast to unsigned int to avoid compiler warnings 2009-01-26 14:25:05 +00:00
Artem Pavlenko
2c317f7706 + mapnik-write-colors-using-rgba-not-hex.patch (jonb)
When you use save_xml() the colors are written out in #RGB format
  which can not represent alpha information. The patch makes it save using
  the rgb()/rgba() strings.
2009-01-21 15:43:49 +00:00
Artem Pavlenko
a0cbbaaec0 + mapnik-roundup-alpha-conversion.patch (jonb)
Round up alpha values when converting float to int otherwise the value
   to changes each time we read/write the color to XML.
2009-01-21 15:39:54 +00:00
Artem Pavlenko
8b298729bf + mapnik-centralise-image-tostring-functions.patch (jonb)
(moves Image.tostring() to core c++ code)
2009-01-19 22:51:55 +00:00
Artem Pavlenko
fbb8b5da3e + added specializations for mapnik::color to avoid to/from stream conversions 2009-01-17 23:45:19 +00:00
Artem Pavlenko
e6ab076a4c + init alpha to 255 in actions 2009-01-17 21:44:01 +00:00
Artem Pavlenko
387ff213ef + mapnik-serialize-fontset.patch from jonb
This adds the fontset support into save_xml
 - Adds fontset_name into the text attributes
 - Adds the fontset definitions
 - glue to read fontsets from map
2009-01-17 20:18:41 +00:00
Artem Pavlenko
cad0a839b6 + mapnik-load-map-from-string.patch (jonb) 2009-01-15 23:51:07 +00:00
Artem Pavlenko
c22295c766 + use fully qualified name in global.hpp 2009-01-15 23:16:15 +00:00
Artem Pavlenko
32d21d7c80 + use fully qualified names from stl 2009-01-15 23:12:56 +00:00
Artem Pavlenko
e3658a7a1a + applied mapnik-image32-from-cairo.patch (jonb) 2009-01-15 22:51:12 +00:00
Artem Pavlenko
7395363258 + applied mapnik-image-data-setrow-size.patch (jonb) 2009-01-15 00:56:56 +00:00
Artem Pavlenko
fe20652629 + removed unused parameter from has_point_placement 2009-01-14 12:34:56 +00:00
Artem Pavlenko
a07767ef3d + (c++) renamed mapnik::Color to mapnik::color
+ (c++) added mapnik::color ctor from named colours (TODO: consider not to export color_factory) 
+ (Python) fixed pickling
+ (Python) added to_hex_string method
2009-01-14 12:10:24 +00:00
Dane Springmeyer
689b1eb018 Made Scale Denominator available as a property of the Map 2009-01-14 06:12:55 +00:00
Artem Pavlenko
9a75034a88 + applied python_point_datasource.patch from lwu 2009-01-13 00:56:09 +00:00
Artem Pavlenko
a11cc119e4 + applied intersection patch from randomjunk - #127 2009-01-13 00:35:45 +00:00
Artem Pavlenko
dd12ac8e36 + fixed unused paramater warning 2009-01-10 11:42:17 +00:00
Artem Pavlenko
65ea5bca98 + applied mapnik-skip-projection-if-equal.patch (jonb) 2008-12-07 16:23:57 +00:00
Artem Pavlenko
c95002a0e3 + minor formatting 2008-11-21 13:12:27 +00:00
Artem Pavlenko
7cbb0ab35a + added support for 'min_distance' for 'POINT' label placement. 2008-11-21 12:48:19 +00:00
Artem Pavlenko
6062f42bbe + applied patch avoid_extent from rcoup 2008-11-19 21:50:12 +00:00
Artem Pavlenko
190f8e5cb9 + return boost::optional in find_style (c++)
+ return feature_type_style by value, raise KeyError otherwise (Python)
2008-11-18 21:15:46 +00:00
Artem Pavlenko
7e6e00f06a + return UTF-8 in to_string 2008-11-16 21:40:10 +00:00
Artem Pavlenko
b423b45b22 + to_utf8 function to convert from icu::UnicodeString to utf-8 std::string 2008-11-16 21:11:57 +00:00
Artem Pavlenko
2257d63a65 + minor formatting 2008-11-16 21:11:07 +00:00
Artem Pavlenko
dce49f4a75 + hebrew rtl patch from JonB 2008-10-09 07:23:36 +00:00
Artem Pavlenko
11100cf30e + apply has_dimensions for line_placement only 2008-09-21 10:42:51 +00:00
Artem Pavlenko
20f3a9460d + expose buffer_size parameter (default 0)
influences envelope used by placement detector 
  ( i.e. 'avoid_edges' parameter)
2008-09-21 10:14:38 +00:00
Artem Pavlenko
565da55742 + point symbolizer opacity patch from Brian (openstreetmap@brian.quinion.co.uk) 2008-09-19 08:27:32 +00:00
Artem Pavlenko
85e713f4c7 + make 'update_detectot' public 2008-09-15 08:46:47 +00:00
Andreas Volz
bd2b9e2ea0 - add new files
- optional check for gdal
2008-08-02 20:39:26 +00:00
Tom Hughes
7d173be190 Add support for font sets on shield sumbolizers. 2008-07-29 23:21:39 +00:00
Tom Hughes
271540f710 Don't return a null point when no glyph can be found in any font.
Patch from Jon Burgess <jburgess777@googlemail.com>.
2008-07-29 07:51:45 +00:00
Tom Hughes
779a0e67b2 Make the cairo renderer build again, with font fallback support now. 2008-07-25 23:26:02 +00:00
Tom Hughes
026e4e71e7 Refactor some of the font set stuff so that the cairo renderer can be
made to work again.
2008-07-25 00:23:33 +00:00
Tom Hughes
b958b0d9bc Add parentheses to avoid compiler warnings. 2008-07-25 00:04:07 +00:00
Artem Pavlenko
93ccef2564 added missing font_set.hpp 2008-07-07 16:00:25 +00:00
Artem Pavlenko
6046bf49f4 +fixed init order 2008-06-29 11:40:06 +00:00
Artem Pavlenko
376cdeb453 applied aspect ratio patch from Frederik Ramm 2008-06-29 10:59:28 +00:00
Artem Pavlenko
1b47afde07 applied font fallback patch from Beau Gunderson 2008-06-29 10:58:48 +00:00
Artem Pavlenko
3f9127b5d0 reverting back to 700 2008-06-29 10:58:29 +00:00
Artem Pavlenko
c7cbfa5c82 reverting back to 700 2008-06-29 10:56:29 +00:00
Artem Pavlenko
3275cf9ce6 applied font fallbacj patch from Beau Gunderson 2008-06-29 10:40:08 +00:00
Tom Hughes
bbbfd735c4 Include ltdl.h instead of trying to forward declare libtool
types in place. Closes #95.
2008-05-22 07:08:14 +00:00
Tom Hughes
4483d59797 Revert previous fix for #89 and add a new improved fix that enhances the
value class to have a proper null type and do comparisions SQL style so
that null is neither equal nor not equal to other things.
2008-04-12 15:22:27 +00:00
Tom Hughes
a27bde741e Don't try and render text if the attribute containing the text does
not exist for the feature. Closes #89.
2008-04-11 23:11:35 +00:00
Andreas Volz
e29743d933 - updated autotools build files
- build now osm plugin automatic if libxml2 is used
- moved osm/Makefile to osm/Makefile.example because if name collision
  -> better move the example to another directory later
- optional CAIRO support
- changed libxml2 switch comment
2008-04-06 18:13:13 +00:00
Artem Pavlenko
ab29b03833 reverting r681 2008-04-06 09:23:17 +00:00
Dominic Hargreaves
8d223c57e0 re-enable regex support 2008-03-29 00:58:09 +00:00
Artem Pavlenko
7bcba5f1be applied http://snecker.fedorapeople.org/mapnik/devel/gcc43-warnings.patch from Christopher Brown 2008-03-26 09:56:17 +00:00
Dominic Hargreaves
c436461ee8 Fix build with GCC 4.3 (fixes #76) 2008-03-24 14:03:05 +00:00
Tom Hughes
37eeb870cc Add support for boolean values in filters, and reading of boolean
values from PostGIS data sources.
2008-02-27 18:50:59 +00:00
Artem Pavlenko
e1ea0a72db use range based 'parse' method
transcode strings in filter expressions (default to utf8 input)
  -- we can use map definition *.xml to define encoding
  -- and in case of Python from
    # -*- coding: utf-8 -*-
  
utf8 encoded filters are working now.
2008-02-26 11:43:49 +00:00
Artem Pavlenko
cb905b533a restored templated version 2008-02-26 08:48:47 +00:00
Tom Hughes
02962156c5 Add support for rendering to a cairo surface. 2008-02-23 00:17:53 +00:00
Artem Pavlenko
308e315432 added Unicode support based on ICU 2008-02-18 21:40:34 +00:00
Artem Pavlenko
1ea7bffd4c pass parameter by reference
store reference to wstring in text_path
2008-02-12 20:05:04 +00:00
Andreas Volz
ba5c156c45 fixed autotools build 2008-02-08 19:41:57 +00:00
Artem Pavlenko
1b03c81e84 hide implementation details 2008-02-05 13:58:47 +00:00
Artem Pavlenko
658a2a4932 corrected init order 2008-02-05 13:57:40 +00:00
Artem Pavlenko
b44762e592 allow multi/single threaded variants 2008-02-04 16:12:13 +00:00
Artem Pavlenko
fa82f6fc50 corrected sorting criteria 2008-02-04 16:10:34 +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
Artem Pavlenko
cdfaf36ee9 call reduce on fully built tree 2008-01-30 11:11:20 +00:00
Artem Pavlenko
c63c2efe42 support for user defined 'extent' parameter (for example : -180,-90,180,90) 2008-01-29 16:59:51 +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
1d556b54fd Make line placement retry if it places >= 50% of the characters upside down. 2008-01-23 21:38:48 +00:00
Artem Pavlenko
b04e6197aa some cleanups and fixes 2008-01-23 15:24:59 +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
418e3fc43a added missing extent() method 2008-01-21 20:07:32 +00:00
Artem Pavlenko
96daa6e996 applied patch from gravitystorm (see ticket:64) 2008-01-21 19:59:06 +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
76e18f8a4a Remove functions that don't exist from placement headers. 2008-01-16 21:42:08 +00:00
Dave
017a966ea1 Fix blending onto transparent background. Detailed on mailing list. 2008-01-14 20:43:55 +00:00
David
0dbaeafbe9 - found and fixed another wild pointer 2008-01-07 07:32:55 +00:00
David
bec8f8951f fixed pointer to temporary bug 2008-01-03 15:48:10 +00:00
Artem Pavlenko
0390f129a1 refactored transcoder stuff 2008-01-03 11:41:00 +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
2058f966b2 applied patch from Jochen :
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
2007-12-16 12:33:28 +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
d515b51973 added ImageData<uint8_t> typedef 2007-12-06 10:58:15 +00:00
Artem Pavlenko
171675dfcf 1. added external "C" around <iconv.h>
2. direct conversion from client_encoding to UCS-4{LE,BE}
2007-11-16 13:19:09 +00:00
Artem Pavlenko
17e2b12390 1. things to keep win32 built happier
2. print color table in gdal.input if present (-DMAPNIK_DEBUG)
2007-11-08 21:15:45 +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
Artem Pavlenko
4018c728de corrected int2net macro to use int16_t , thanks to John Leslie. 2007-10-21 09:49:45 +00:00
David
2cf8278f1d Generic python binding for mapnik::enumeration 2007-10-19 22:17:16 +00:00
David
1c5bbea587 workaround for enumeration python binding issue::
allow implicit conversion from long
2007-10-14 13:39:11 +00:00
Artem Pavlenko
f736196cb4 1. image_data.hpp - fixed mismatched new/new[] in ctor in ImageData
2. image_data.hpp - initialize image data (ImageData) 
3. unicode.hpp - added missing <iostream> when in debug -DMAPNIK_DEBUG
2007-10-11 21:18:04 +00:00
David
44a83c0eac - use AGG row_ptr_cache the portable way 2007-10-08 20:07:53 +00:00
David
515ab55a53 - fixed agg-2.5 build 2007-10-08 19:37:05 +00:00
David
3c97052c5e - more include order reversion 2007-10-08 18:10:31 +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
9507f1bbf2 build libxml2 loader 2007-10-03 10:41:08 +00:00
Andreas Volz
f0cca52c3b optional build with libxml2 2007-10-02 21:43:13 +00:00
David
bc11d0a5e5 - added some tests
- added missing disclaimers
2007-09-25 21:06:52 +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
13d741f400 added size method : returns (unused,used) size pair
useful for debugging
2007-09-18 13:58:01 +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
b835bac9ba user for loops instead of while, some cleanups 2007-09-11 11:26:10 +00:00
Artem Pavlenko
9b2b2a5691 clip query bbox to layer's extent 2007-09-11 11:06:20 +00:00
svn
63ca9a0b41 use non const char* on Linux 2007-09-01 09:48:01 +00:00
Artem Pavlenko
edb4150b33 restored iconv support 2007-08-29 15:21:32 +00:00
Artem Pavlenko
388eb1761f we don't need those 2007-08-29 15:19:33 +00:00
Artem Pavlenko
4e427f978c fixed bug introduced in r495 2007-08-29 14:06:35 +00:00
Andreas Volz
8b3f5ef483 only minor docs 2007-08-15 20:46:12 +00:00
Artem Pavlenko
0f07bbd945 corrected docs 2007-08-13 09:59:52 +00:00
Artem Pavlenko
e05f730122 applied changes overwritten betweed r504-505 2007-08-13 09:15:41 +00:00
Andreas Volz
59977745a0 - doxygen documentation files
- added first docs to map.hpp
2007-08-12 21:05:45 +00:00
Artem Pavlenko
b47bfa185a couple optimizations 2007-08-09 14:13:41 +00:00
Artem Pavlenko
19daab2461 provide both const/non-const iterators 2007-08-09 08:06:47 +00:00
Artem Pavlenko
80566ea1ba added accesor to styles 2007-08-07 12:02:24 +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
vspader
9fe4a94c98 Added minimum_distance property to text symbolizers. This prevents the same label from appearing within N pixels (across features).
Shield symbolizer is now a subclass of text symbolizer.
Some small improvements to text rendering.
Fixed up placement finder for horizontal placement.
Cleaned up placement finder.
2007-07-02 13:39:08 +00:00
Artem Pavlenko
f3ae318ca3 1. added 'allow_overlap' in load_map from xml
2. added overlap_ field to TextSymbolizer (ignored by renderer at the moment)
2007-06-20 21:08:23 +00:00
Artem Pavlenko
ab149257ad added save_to_file method that works with Image object. 2007-06-12 19:30:58 +00:00
Artem Pavlenko
8010d5433f 1. Removed srid from geometry class
2. Pass resolution to bbox query
3. Use variant<int,double,string> as parameter value e.g in Python:
	ds = Raster(file="/path/to/file",lox = 12312.4,.....)
   Added extractor facility to work with mapnik::parameter (C++):
	
	mapnik::parameters params;
	params["parameter0"] = 123.456;
	params["parameter1"] = "123.456"; // initialize with string extract double later
	
	boost::optional<double> val0 = params.get<double>("parameter0");
	if (val0) 
	{
	   std::cout << *val0;
        }
	
	
	// with default value. NOTE: there is no 'parameter2' in params
	boost::optional<double> val2 = params.get<double>("parameter2",654.321);
	std::cout << * val2;
        
	// 
4. Added Gdal factory method in __init__.py

        ds =  Gdal(file="/tmp/file.tiff")
2007-06-12 08:59:54 +00:00
Artem Pavlenko
15e73b98f4 small formatting 2007-06-05 09:10:40 +00:00
Artem Pavlenko
ef42640476 applied patch from jonb to use calloc instead of malloc (allocating fribidi buffer) 2007-05-15 22:20:18 +00:00
Artem Pavlenko
235244a1c0 added max_depth_ parameter (default to 8) to handle empty envelopes. 2007-05-12 12:01:43 +00:00
Artem Pavlenko
d3d40234c9 share collision detector between labels and text. 2007-05-12 11:34:55 +00:00
Artem Pavlenko
a6a31f42f6 implelmented optional 'clear' text labels cache at the layer level 2007-05-01 07:53:20 +00:00
Artem Pavlenko
28ee22ac95 fixed mistype 2007-04-25 08:21:54 +00:00
Artem Pavlenko
5daa49ff41 forward declare ltdl stuff 2007-03-22 10:55:43 +00:00
Artem Pavlenko
d163c8d59f explicit cast to FT_Pos added 2007-03-16 12:08:50 +00:00
Artem Pavlenko
e0d243dcec 1.Added support for building on Darwin (Xcode 2.4.1, gcc4.0.1).
Mainly taming gcc4.0.1 (anonymous enum bug)

2.Input plug-ins now have .input extension on all platforms
2007-03-16 10:11:37 +00:00
Artem Pavlenko
7a7e2101f9 rewind path in envelope() method 2007-03-08 10:38:09 +00:00
Artem Pavlenko
13dd535d6c check strings size before applying bidi. 2007-02-26 12:42:10 +00:00
Artem Pavlenko
215ceccb73 added specialization for double values in to_unicode() 2007-02-25 12:59:23 +00:00
Artem Pavlenko
eda5386b3f added missing mapnik::value to std::wstring conversions 2007-02-14 20:25:24 +00:00
Artem Pavlenko
2d256166b4 Store text attributes as USC-2 encoded std::wstring 2007-02-14 19:54:39 +00:00
Artem Pavlenko
d024c86b1b Restored support for the text displacement (point placement only at moment) 2007-02-09 16:32:44 +00:00
Artem Pavlenko
32ad956e2e Disabled timer print-outs by default. Use -DMAPNIK_DEBUG to enable. 2007-02-06 15:53:32 +00:00
Artem Pavlenko
e016bd61f8 Added transcoder based on iconv. Internally we use UCS-2 at the moment.
* Postgis plug-in determines encoding by querying 'client_encoding' parameter (libpq). 
 * Shapfiles (dbf!) don't store character encoding information. Users can apply 'encoding' parameter at datasource creation stage (defaults to Latin1 (ISO-8859-1))
 * Raster plug-in utf-8
2007-02-06 14:27:21 +00:00
Artem Pavlenko
1e710ceab3 to_string() : added specialization for double values with increased precision. 2007-01-26 15:50:39 +00:00
Artem Pavlenko
097397f422 vc-8_0 needs template functions instantiated/defined?? in header file for proper export. gcc on the other hand , chokes with error : can not instantiate undefined function. Added #ifdef/#endif _MSC_VER. 2007-01-17 20:04:21 +00:00
Artem Pavlenko
ed5bbe25fe improved win32 support from Valery Moiseev. 2007-01-17 11:43:11 +00:00
Artem Pavlenko
199f3f6c12 include Layer instead of forward declaration 2007-01-11 17:19:51 +00:00
Artem Pavlenko
85f4bfc697 added queryable property and visible method to Layer (Python) 2007-01-09 11:23:19 +00:00
Artem Pavlenko
995980433e reflect feature's properties in Python
(see wiki for more info and usage)
2006-12-31 11:44:34 +00:00
Artem Pavlenko
b5cf9da686 1.added more accessors
2.in tiff_reader check for valid file prior opening.
2006-12-20 00:22:45 +00:00
Artem Pavlenko
14f98509b9 added 'transparent' named colour = Color(0,0,0,0) (from Luiz Vital)
TODO: support transparency for any background colour.
2006-12-17 12:10:28 +00:00
Artem Pavlenko
dee8851b26 added support for right to left languages by using
the fribidi library (patch from Ehud Shabtai, thanks!)
2006-12-17 11:56:57 +00:00
Artem Pavlenko
05424a5f12 added query_point method that accepts lat,lon coordinates :
>>> for f in m.query_point([ layer.name for layer in m.layers ].index('world'),51,0):
...     print f
...

feature (
  f_code:FA001
  fac_id:193
  id:3147
  na2:UK
  na3:E
  nam:ENGLAND
  tile_id:10
)

>>>
2006-12-06 21:21:17 +00:00
Artem Pavlenko
af44541598 implemented query_map_point method on map object:
fs = m.query_map_point(x,y)  # Map (screen) coordinates
   for feature in fs:
       print feature

TODO: provide interface to feature in Python, at the moment only __str__ implemented which dumps attributes
2006-12-06 20:26:59 +00:00
Artem Pavlenko
4d4e9f5d91 Tiling patch from Toby allows for a selected pixel region within an extent
to be rendered. This allows for a large extent (larger than can be
rendered into a single image in memory) to be rendered out as tiles.
Since the full extent is used for the placement calculations text
crossing tile boundaries will be consistent.

This method is a little inefficient when a large number of labels need
placed, an improved method would be to cache these placements between
tiles, but the attached is a start.

c++ users should simple call the render method with a start X and Y
coordinate specified, 

for (int TileX = 0;TileX < 5;++TileX)
{
	for(int TileY = 0;TileY < 5; ++TileY)
	{
		int TileSize=250;
		int StartX = TileX*TileSize;
		int StartY = TileY*TileSize;
		
		Image32 buf(TileSize,TileSize);
		agg_renderer<Image32> ren(m,buf,StartX,StartY);
		
		ren.apply();
		char name[324];
		sprintf(name,"tile_%d_%d.png",TileX,TileY);
		ImageUtils::save_to_file(name,"png",buf);
	}
}

python users should call render_tile_to_file

for y in range(tile_count_y):
	for x in range(tile_count_x):
		if not os.path.exists("tiles/%d/%d/" % (map_scale, y)):
			os.makedirs("tiles/%d/%d/" % (map_scale, y))
		render_tile_to_file(m, x*tile_size, y*tile_size, tile_size, tile_size,
'tiles/%d/%d/%d.png' % (map_scale,y,x), 'png')
2006-12-01 09:37:37 +00:00
Artem Pavlenko
a8a26d2a75 make params_ accessible from derived classes 2006-11-29 12:28:17 +00:00
Artem Pavlenko
8c374a22a6 Label position tolerance and text spacing patch from David Leaver. Thanks! 2006-11-29 10:44:42 +00:00
Artem Pavlenko
7a7fe3d569 opps, fixed license note 2006-11-29 00:14:25 +00:00
Artem Pavlenko
bc5f860437 don't keep bad connections around 2006-11-28 00:16:53 +00:00
Artem Pavlenko
f4502df850 1. register singleton destruction with std::atexit
2. allow connection pool to grow (up to max)
2006-11-27 21:13:15 +00:00
Artem Pavlenko
f1393cc019 1. hit_test implementation for geometry objects:
bool hit_test(double x, double y, double tol);
       
2. added image_view(unsigned x, unsigned y, unsigned width, unsigned height)
   allowing to select region from image data e.g (in Python):

    im = Image(2048,2048)
    view = im.view(0,0,256,256)
    save_to_file(filename,type, view)
    
3. changed envelope method to return vy value in datasource classes

4. features_at_point impl for shape and postgis plug-ins
2006-11-25 11:02:59 +00:00
Artem Pavlenko
1c5eeb19af added basic support for unicode string 2006-11-22 22:01:37 +00:00
Artem Pavlenko
ebdd0f6030 disable clog printing in release mode. Pass -DMAPNIK_DEBUG to enable. 2006-11-19 17:13:33 +00:00
vspader
d7b94f5d8c Added avoid_edges property to shield and text symbolizers.
If this is enabled, no shield/text symbolizers will be cut off
at the edges of the image.
2006-11-17 14:07:41 +00:00
Artem Pavlenko
6469c19ba7 fixed scale_denominator 2006-11-17 02:02:29 +00:00
Artem Pavlenko
81fbe706a6 fixed scale_denomitator 2006-11-17 02:01:21 +00:00
Artem Pavlenko
7b0f3d3fb9 export symbols for win32 dlls 2006-11-13 10:13:14 +00:00
Artem Pavlenko
889ac41694 Patch from Toby: adds a maximum angle delta for text placement (if the
angle changes too much between characters it finds an alternate
placement), this is specified in the max_char_angle_delta property in
radians (feel free to change it to degrees).

It also improves the text placement around corners trying to minimise
the distance between the center of the character and the line on each
side. This is the major portion of the patch.
2006-11-04 10:38:24 +00:00
Artem Pavlenko
e924b597f4 1. patch from Toby that allows repeated labels to be placed on a line
geometry (such as roads)
2. restored text labels for point geometry.
3. process 'spacing' attribute in load_map.cpp
2006-11-01 23:17:05 +00:00
Artem Pavlenko
d7fcefc848 1. applied text-wrap patch from Robert Coup. Thanks!
2. by default use tinyxml as a property_tree parser
3. modified load_map.cpp to allow to test new features
2006-10-27 17:29:39 +00:00
Artem Pavlenko
90a293e952 removed extra qualifier (GCC >= 4.1 reports as an error). 2006-10-21 12:17:41 +00:00
vspader
118e8f0d52 Added face_name parameter to text and shield symbolizers,
which specifies the font face to be used for rendering.
New constructor is: text_symbolizer(name, face_name, size, ...)
2006-10-19 17:11:45 +00:00