Commit graph

1779 commits

Author SHA1 Message Date
Artem Pavlenko
a8859645b3 use memory mapped files for reading shape files 2008-02-04 11:12:32 +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
e268660ecc implmented support for pg numeric type - converted to double at the moment. 2008-01-25 11:39:53 +00:00
Artem Pavlenko
66bc84ff7e check for empty strings in params 2008-01-24 12:07:53 +00:00
Artem Pavlenko
4529e83562 fixed parameters order in image reader 2008-01-07 10:20:05 +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
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
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
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
066c8dfa1a Fixed envelope() method to return borrowed connection
NOTE : Always wrap connection into PoolGuard !!!
 
PoolGuard<shared_ptr<Connection>,shared_ptr<Pool<Connection,ConnectionCreator> > > guard(conn,pool);
2007-09-18 14:00:27 +00:00
Andreas Volz
670862879b build plugins without .so extension 2007-09-17 20:16:43 +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
92b22558fd use 'limit 0' when gathering metadata, also we don't need getFieldSize at all 2007-09-07 15:50:40 +00:00
Artem Pavlenko
ef6f1060d3 link to fribidi on Darwin 2007-09-07 15:46:51 +00:00
Artem Pavlenko
76572994b5 Applied mapnik-r511.patch from David Siegel:
plugins/input/postgis/SConscript:
- added boost_thread-mt to darwin builds

demo/c++/rundemo.cpp:
- setBackground() is now set_background()

bindings/python/SConscript:
- added boost_thread-mt to darwin builds
- changed builder to LoadableModule which builds a so called "bundle"
   on darwin and a shared library on all other systems.
- LDMODULEPREFIX = '' 

SConstruct:
- freetype-config is now searched in the path.
2007-08-28 10:12:38 +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
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
8880e5ff5f Restored collecting attributes descriptors 2007-06-05 09:09:04 +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
46902bf488 increment feature id 2007-04-30 20:08:49 +00:00
Artem Pavlenko
f9d28e56fa Added gdal raster input plug-in 2007-04-25 19:15:38 +00:00
Artem Pavlenko
5b91f9a9c5 small correction 2007-04-25 11:26:48 +00:00
Artem Pavlenko
6dc3015ea5 Allow omitting username and dbname in connection string. 2007-04-01 08:29:14 +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
6ed05bcf42 and another one :) 2007-03-08 18:19:42 +00:00
Artem Pavlenko
d10a7eeb24 reverting change #457 : we still must read four bytes ! 2007-03-08 17:35:01 +00:00
Jean-Francois Doyon
76a820beeb - Move a variable declaration used only for debugging, to avoid compiler warning. 2007-03-05 01:28:49 +00:00
Artem Pavlenko
0196cb3334 corrected members init order 2007-02-15 17:25:37 +00:00
Artem Pavlenko
73bd1ab83e fixed missing 'encoding' parameter:
>>> from mapnik import *
>>> ds = Shapefile(file='./demo/data/boundaries',encoding='latin1')
>>> pt = ds.envelope().center()
>>> print ds.describe()
>>> for f in ds.features_at_point(pt):
>>>     print f.properties['NOM_FR'].unicode()
>>>     print f.properties['NOM_FR'].__str__()
2007-02-14 21:55:04 +00:00
Artem Pavlenko
2d256166b4 Store text attributes as USC-2 encoded std::wstring 2007-02-14 19:54:39 +00:00
Artem Pavlenko
1b84f2d454 host = '' , host = None and ommiting host all default to unix-domain socket in /tmp 2007-02-06 15:29:04 +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
59f940b090 append namespace to 'transform' to support buiding with STLport. 2007-01-29 12:50:26 +00:00
Artem Pavlenko
c08a4eb221 corrected cut&paste error 2007-01-17 20:05:23 +00:00
Artem Pavlenko
ed5bbe25fe improved win32 support from Valery Moiseev. 2007-01-17 11:43:11 +00:00
Artem Pavlenko
5549045aaa use all parameters to calculate connection id 2007-01-16 15:22:49 +00:00
Artem Pavlenko
6aa5401151 Added connect_timeout parameter to postgis connection (set to 4 sec). 2006-12-22 11:57:02 +00:00
Artem Pavlenko
31442b6bac Added DESTDIR option which is used as an additional prefix for the purposes of
installing files. It is useful for binary distributions (eg
RPM etc). Thanks to Dominic Hargreaves!
2006-12-17 12:05:47 +00:00
Artem Pavlenko
f4786fe76a features at point impl 2006-12-01 11:45:08 +00:00
Artem Pavlenko
c6ee7ce438 trim strings at data source level 2006-12-01 10:37:15 +00:00
Artem Pavlenko
7534217a8f 1.added missing float4 (pg_type OID 700)
2.removed printing "..unknown type_oid .."
2006-12-01 09:42:04 +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
b3b6bbe221 don't calculate extent by default 2006-11-29 12:12:23 +00:00
Artem Pavlenko
eeaf75b459 do not assert on empty dbf files 2006-11-28 22:25:31 +00:00
Artem Pavlenko
943ddf9943 added initial_size ans max_size parameters for setting up db connection pool
(default to 1 and 10 respectively)
2006-11-28 00:16:13 +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
ebdd0f6030 disable clog printing in release mode. Pass -DMAPNIK_DEBUG to enable. 2006-11-19 17:13:33 +00:00
Artem Pavlenko
6c04c5f745 added port parameter support 2006-11-17 21:10:28 +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
7cae55f73f * trim leading and trailing whitespace from all strings before
rendering them as labels when using the text or shield symbolisers
  (blame my horrible datasets)
* correctly recognise the Postgis "text" data type (it was in
  postgisfs.cpp just not postgis.cpp) - my initial workaround to the
  above was "SELECT trim(from label) AS label ..." which failed
  miserably because it returned a text data type. 

Thanks to Robert Coup for the patch!
2006-10-19 09:24:26 +00:00
Artem Pavlenko
58f672fc83 treat oid=25 (TEXT) types as string 2006-10-17 21:36:11 +00:00
Artem Pavlenko
c195e1d24d added yet to be implemented features_at_point 2006-10-16 21:30:58 +00:00
Artem Pavlenko
459f43b39c 1. use more precise coord values in SQL statements.
2. added extra parameter 'estimate_extent'. By default, exact extent will be calulated e.g :
    select extent(geom) from table_name;
Sometimes it is more practical (faster!) to use estimated extent
    select estimated_extent('table_name','geom');
but it is somewhere around 95% accurate.
Usage:
     ....   
     params["estimate_extent"]="true";
     ....
2006-10-09 20:57:04 +00:00
vspader
4b9222f053 Bugfix for PostGIS plugin. 2006-10-09 20:09:46 +00:00
Artem Pavlenko
18ef498140 don't rely on feature id column name. 2006-10-09 09:45:45 +00:00
Artem Pavlenko
d2838011d9 Use <mapnik/*.hpp> includes. Thanks to Vince Spader from 10east.com 2006-10-05 09:00:36 +00:00
Artem Pavlenko
992af4747d 1. move include to mapnik/include
2. update demos,bibdibgs etc.
2006-10-04 11:22:18 +00:00
Artem Pavlenko
2f360a6549 1.removed map width/height from query interface
2.small cleanups
2006-09-12 14:29:22 +00:00
Artem Pavlenko
31d04c3131 added support for building on x86_64 platform e.g. /usr/lib64 etc. 2006-09-06 09:14:41 +00:00
Artem Pavlenko
26a406706e wrap C headers with :
extern "C" 
{
 // 
}
2006-08-31 21:32:07 +00:00
Artem Pavlenko
d11153ccf8 use fully qualified names 2006-07-24 20:06:09 +00:00
Artem Pavlenko
d0ddc88253 1. move parameters to datasource
2. general cleanup
2006-05-23 16:52:10 +00:00
Artem Pavlenko
bf218a46b9 oops! added missing bits 2006-05-19 12:50:40 +00:00
Artem Pavlenko
46fea7cee2 use boost::lexical_cast for conversions
( thanks to John Leslie <jleslie@placebase.com> )
2006-05-19 12:26:23 +00:00
Artem Pavlenko
61fd258fd1 changing licence from GPL to LGPL 2006-03-31 10:32:02 +00:00
Artem Pavlenko
f97b552eda changed from gid to ogc_fid (is it standard?) 2006-03-31 08:54:20 +00:00
Artem Pavlenko
0e53e23ec1 fixed pointz/pointm reading 2006-03-28 10:09:24 +00:00
Artem Pavlenko
d35e9f047e small cleanup 2006-03-23 21:45:32 +00:00
Artem Pavlenko
ac2a286cde added __declspec(dllexport) + general cleanup 2006-03-22 15:55:58 +00:00
Artem Pavlenko
fab04e1626 removed verbose output 2006-03-22 14:57:50 +00:00
Artem Pavlenko
fbbf75f032 added explicit flags ios::in|ios::binary for win32 compat 2006-03-22 14:52:32 +00:00
Artem Pavlenko
673bd4bc19 replaced cout and cerr with clog (by default redirected to cerr) 2006-03-19 21:53:47 +00:00
Artem Pavlenko
ce93c69fa3 minor syntax corrections to comply with ansi c++ 2006-03-08 23:02:28 +00:00
Artem Pavlenko
aed5516197 1. new feature model - based on boost::property_map concept
f = feature(id);
       f["name"] = "what is my name?";
       boost.put(f,"area",123123.4325);
       
2. simplified and corrected value class and operators
3. updated input plug-ins to work with new features
4. add text_symbolizer (getting there:)
5. template version of agg_renderer 
6. attribute_collector how accepts rules 
	(to collect attribute names for text labels)
2006-02-10 17:13:02 +00:00
Artem Pavlenko
2d4ea20560 added set_capacity method to geometry classes.
(now we can use std::vector<boost::tuple<value_type,value_type,char> > 
as an alternative vertex storage).
2006-02-05 12:31:24 +00:00
Artem Pavlenko
d8dc53bcf4 new build system 2006-01-31 23:09:52 +00:00