Merge branch 'master' of github.com:mapnik/mapnik

This commit is contained in:
Dane Springmeyer 2012-08-16 12:29:27 -07:00
commit a3e27ed726
14 changed files with 50 additions and 54 deletions

View file

@ -135,7 +135,7 @@ Released September 26, 2011
- Add support for png quantization using fixed palettes (#843) - Add support for png quantization using fixed palettes (#843)
- Add AlsoFilter functionality - http://trac.mapnik.org/wiki/AlsoFilter - Add AlsoFilter functionality - https://github.com/mapnik/mapnik/wiki/AlsoFilter
- SQLite Plugin: optimize i/o using shared cache and no mutexes (#797) - SQLite Plugin: optimize i/o using shared cache and no mutexes (#797)
@ -224,7 +224,7 @@ Released Oct 18, 2011
(Packaged from bc5cabeb6a) (Packaged from bc5cabeb6a)
- Added forward compatibility for Mapnik 2.0 XML syntax (https://trac.mapnik.org/wiki/Mapnik2/Changes) - Added forward compatibility for Mapnik 2.0 XML syntax (https://github.com/mapnik/mapnik/wiki/Mapnik2/Changes)
- Build fixes to ensure boost_threads are not used unless THREADING=multi build option is used - Build fixes to ensure boost_threads are not used unless THREADING=multi build option is used

View file

@ -15,9 +15,9 @@ If you need to uninstall do:
For more details see the 'Building' Section below. For more details see the 'Building' Section below.
Platform specific install guides at http://trac.mapnik.org/wiki/MapnikInstallation Platform specific install guides at https://github.com/mapnik/mapnik/wiki/Mapnik-Installation
For troubleshooting help see http://trac.mapnik.org/wiki/InstallationTroubleshooting For troubleshooting help see https://github.com/mapnik/mapnik/wiki/InstallationTroubleshooting
## Depends ## Depends
@ -26,7 +26,7 @@ Mapnik is cross platform and runs on Linux, Mac OSX, Solaris, *BSD, and Windows.
The build system should work for all posix/unix systems but for windows see: The build system should work for all posix/unix systems but for windows see:
http://trac.mapnik.org/wiki/BuildingOnWindows https://github.com/mapnik/mapnik/wiki/BuildingOnWindows
Build dependencies are: Build dependencies are:
@ -74,7 +74,7 @@ Optional dependencies:
Instructions for installing many of these dependencies on Instructions for installing many of these dependencies on
various platforms can be found at the Mapnik Community Wiki various platforms can be found at the Mapnik Community Wiki
(http://trac.mapnik.org/wiki/MapnikInstallation). (https://github.com/mapnik/mapnik/wiki/Mapnik-Installation).
@ -124,7 +124,7 @@ If you want to see configure options do:
For more details on all the options see: For more details on all the options see:
http://trac.mapnik.org/wiki/UsingScons https://github.com/mapnik/mapnik/wiki/UsingScons
## Testing Installation ## Testing Installation
@ -155,11 +155,11 @@ For further tests see the `tests` folder within the Mapnik source code.
### Users ### Users
Visit http://trac.mapnik.org/wiki/LearningMapnik for basic tutorials on making maps with Mapnik using the Python bindings. Visit https://github.com/mapnik/mapnik/wiki/LearningMapnik for basic tutorials on making maps with Mapnik using the Python bindings.
### Developers ### Developers
Visit http://trac.mapnik.org/#DevelopersCorner for resources for getting involved with Mapnik development. Read docs/contributing.markdown for resources for getting involved with Mapnik development.
## Mapnik Community ## Mapnik Community
@ -168,22 +168,7 @@ Visit http://trac.mapnik.org/#DevelopersCorner for resources for getting involve
Mapnik has an active community of talented users and developers making Mapnik has an active community of talented users and developers making
amazing maps. amazing maps.
If you are looking for further help on installation or usage and you can't Please feel free to subscribe to the community list and post on both
find what you are looking for from searching the users list archives usage and development topics: http://mapnik.org/contact/
(http://lists.berlios.de/pipermail/mapnik-users/) or the trac wiki
(http://trac.mapnik.org/), feel free to join the Mapnik community and
introduce yourself.
You can get involved by: You can also get involved by joining the #mapnik channel on irc://irc.freenode.net/mapnik
* Subscribing to the mapnik-users list:
http://lists.berlios.de/mailman/listinfo/mapnik-users
* Subscribing to the mapnik-developers list:
http://lists.berlios.de/mailman/listinfo/mapnik-devel
* Joining the #mapnik channel on irc://irc.freenode.net/mapnik
* Signing up as a user or contributor at http://www.ohloh.net/p/mapnik/

View file

@ -54,17 +54,17 @@ DEFAULT_LINK_PRIORITY = ['internal','other','frameworks','user','system']
pretty_dep_names = { pretty_dep_names = {
'ociei':'Oracle database library | configure with OCCI_LIBS & OCCI_INCLUDES | more info: http://trac.mapnik.org/wiki/OCCI', 'ociei':'Oracle database library | configure with OCCI_LIBS & OCCI_INCLUDES | more info: https://github.com/mapnik/mapnik/wiki//OCCI',
'gdal':'GDAL C++ library | configured using gdal-config program | try setting GDAL_CONFIG SCons option | more info: http://trac.mapnik.org/wiki/GDAL', 'gdal':'GDAL C++ library | configured using gdal-config program | try setting GDAL_CONFIG SCons option | more info: https://github.com/mapnik/mapnik/wiki/GDAL',
'ogr':'OGR-enabled GDAL C++ Library | configured using gdal-config program | try setting GDAL_CONFIG SCons option | more info: http://trac.mapnik.org/wiki/OGR', 'ogr':'OGR-enabled GDAL C++ Library | configured using gdal-config program | try setting GDAL_CONFIG SCons option | more info: https://github.com/mapnik/mapnik/wiki//OGR',
'geos_c':'GEOS Simple Geometry Specification C Library | configured with GEOS_LIB & GEOS_INCLUDE | more info: http://trac.mapnik.org/wiki/GEOS', 'geos_c':'GEOS Simple Geometry Specification C Library | configured with GEOS_LIB & GEOS_INCLUDE | more info: https://github.com/mapnik/mapnik/wiki//GEOS',
'cairo':'Cairo C library | configured using pkg-config | try setting PKG_CONFIG_PATH SCons option', 'cairo':'Cairo C library | configured using pkg-config | try setting PKG_CONFIG_PATH SCons option',
'cairomm':'Cairomm C++ bindings to Cairo library | configured using pkg-config | try setting PKG_CONFIG_PATH SCons option', 'cairomm':'Cairomm C++ bindings to Cairo library | configured using pkg-config | try setting PKG_CONFIG_PATH SCons option',
'cairomm-version':'Cairomm version is too old (so cairo renderer will not be built), you need at least %s' % CAIROMM_MIN_VERSION, 'cairomm-version':'Cairomm version is too old (so cairo renderer will not be built), you need at least %s' % CAIROMM_MIN_VERSION,
'pycairo':'Python bindings to Cairo library | configured using pkg-config | try setting PKG_CONFIG_PATH SCons option', 'pycairo':'Python bindings to Cairo library | configured using pkg-config | try setting PKG_CONFIG_PATH SCons option',
'proj':'Proj.4 C Projections library | configure with PROJ_LIBS & PROJ_INCLUDES | more info: http://trac.osgeo.org/proj/', 'proj':'Proj.4 C Projections library | configure with PROJ_LIBS & PROJ_INCLUDES | more info: http://trac.osgeo.org/proj/',
'pg':'Postgres C Library requiered for PostGIS plugin | configure with pg_config program | more info: http://trac.mapnik.org/wiki/PostGIS', 'pg':'Postgres C Library requiered for PostGIS plugin | configure with pg_config program | more info: https://github.com/mapnik/mapnik/wiki//PostGIS',
'sqlite3':'SQLite3 C Library | configure with SQLITE_LIBS & SQLITE_INCLUDES | more info: http://trac.mapnik.org/wiki/SQLite', 'sqlite3':'SQLite3 C Library | configure with SQLITE_LIBS & SQLITE_INCLUDES | more info: https://github.com/mapnik/mapnik/wiki//SQLite',
'jpeg':'JPEG C library | configure with JPEG_LIBS & JPEG_INCLUDES', 'jpeg':'JPEG C library | configure with JPEG_LIBS & JPEG_INCLUDES',
'tiff':'TIFF C library | configure with TIFF_LIBS & TIFF_INCLUDES', 'tiff':'TIFF C library | configure with TIFF_LIBS & TIFF_INCLUDES',
'png':'PNG C library | configure with PNG_LIBS & PNG_INCLUDES', 'png':'PNG C library | configure with PNG_LIBS & PNG_INCLUDES',
@ -78,8 +78,8 @@ pretty_dep_names = {
'gdal-config':'gdal-config program | try setting GDAL_CONFIG SCons option', 'gdal-config':'gdal-config program | try setting GDAL_CONFIG SCons option',
'geos-config':'geos-config program | try setting GEOS_CONFIG SCons option', 'geos-config':'geos-config program | try setting GEOS_CONFIG SCons option',
'freetype-config':'freetype-config program | try setting FREETYPE_CONFIG SCons option', 'freetype-config':'freetype-config program | try setting FREETYPE_CONFIG SCons option',
'osm':'more info: http://trac.mapnik.org/wiki/OsmPlugin', 'osm':'more info: https://github.com/mapnik/mapnik/wiki//OsmPlugin',
'curl':'libcurl is required for the "osm" plugin - more info: http://trac.mapnik.org/wiki/OsmPlugin', 'curl':'libcurl is required for the "osm" plugin - more info: https://github.com/mapnik/mapnik/wiki//OsmPlugin',
'boost_regex_icu':'libboost_regex built with optional ICU unicode support is needed for unicode regex support in mapnik.', 'boost_regex_icu':'libboost_regex built with optional ICU unicode support is needed for unicode regex support in mapnik.',
'sqlite_rtree':'The SQLite plugin requires libsqlite3 built with RTREE support (-DSQLITE_ENABLE_RTREE=1)', 'sqlite_rtree':'The SQLite plugin requires libsqlite3 built with RTREE support (-DSQLITE_ENABLE_RTREE=1)',
'pgsql2sqlite_rtree':'The pgsql2sqlite program requires libsqlite3 built with RTREE support (-DSQLITE_ENABLE_RTREE=1)' 'pgsql2sqlite_rtree':'The pgsql2sqlite program requires libsqlite3 built with RTREE support (-DSQLITE_ENABLE_RTREE=1)'
@ -138,7 +138,7 @@ def call(cmd, silent=False):
if not stderr: if not stderr:
return stdin.strip() return stdin.strip()
elif not silent: elif not silent:
color_print(1,'Problem encounted with SCons scripts, please post bug report to: http://trac.mapnik.org\nError was: %s' % stderr) color_print(1,'Problem encounted with SCons scripts, please post bug report to: https://github.com/mapnik/mapnik/issues \nError was: %s' % stderr)
def strip_first(string,find,replace=''): def strip_first(string,find,replace=''):
if string.startswith(find): if string.startswith(find):
@ -244,7 +244,7 @@ def pretty_dep(dep):
if pretty: if pretty:
return '%s (%s)' % (dep,pretty) return '%s (%s)' % (dep,pretty)
elif 'boost' in dep: elif 'boost' in dep:
return '%s (%s)' % (dep,'more info see: http://trac.mapnik.org/wiki/MapnikInstallation & http://www.boost.org') return '%s (%s)' % (dep,'more info see: https://github.com/mapnik/mapnik/wiki//MapnikInstallation & http://www.boost.org')
return dep return dep
@ -1416,7 +1416,7 @@ if not preconfigured:
color_print(4," $ sudo python scons/scons.py install") color_print(4," $ sudo python scons/scons.py install")
color_print(4,"\nTo view available path variables:\n $ python scons/scons.py --help or -h") color_print(4,"\nTo view available path variables:\n $ python scons/scons.py --help or -h")
color_print(4,'\nTo view overall SCons help options:\n $ python scons/scons.py --help-options or -H\n') color_print(4,'\nTo view overall SCons help options:\n $ python scons/scons.py --help-options or -H\n')
color_print(4,'More info: http://trac.mapnik.org/wiki/MapnikInstallation') color_print(4,'More info: https://github.com/mapnik/mapnik/wiki//MapnikInstallation')
if not HELP_REQUESTED: if not HELP_REQUESTED:
Exit(1) Exit(1)
else: else:

View file

@ -65,7 +65,7 @@ if env['PLATFORM'] == 'Darwin':
# 3) the below will directly link _mapnik.so to a python version # 3) the below will directly link _mapnik.so to a python version
# 4) _mapnik.so must link to the same python lib as boost_python.dylib otherwise # 4) _mapnik.so must link to the same python lib as boost_python.dylib otherwise
# python will Abort with a Version Mismatch error. # python will Abort with a Version Mismatch error.
# See http://trac.mapnik.org/ticket/453 for the seeds of a better approach # See https://github.com/mapnik/mapnik/issues/453 for the seeds of a better approach
# for now we offer control over method of direct linking... # for now we offer control over method of direct linking...
# The default below is to link against the python dylib in the form of # The default below is to link against the python dylib in the form of
#/path/to/Python.framework/Python instead of -lpython #/path/to/Python.framework/Python instead of -lpython
@ -86,7 +86,7 @@ if env['PLATFORM'] == 'Darwin':
# /System/Library/Frameworks/Python.framework/Python/Versions/ # /System/Library/Frameworks/Python.framework/Python/Versions/
# or # or
# /Library/Frameworks/Python.framework/Python/Versions/ # /Library/Frameworks/Python.framework/Python/Versions/
# See: http://trac.mapnik.org/ticket/380 # See: https://github.com/mapnik/mapnik/issues/380
link_prefix = env['PYTHON_SYS_PREFIX'] link_prefix = env['PYTHON_SYS_PREFIX']
if '.framework' in link_prefix: if '.framework' in link_prefix:
python_link_flag = '-F%s -framework Python -Z' % os.path.dirname(link_prefix.split('.')[0]) python_link_flag = '-F%s -framework Python -Z' % os.path.dirname(link_prefix.split('.')[0])

View file

@ -287,8 +287,6 @@ void occi_featureset::convert_geometry(SDOGeometry* geom, feature_ptr feature)
{ {
const bool is_single_geom = false; const bool is_single_geom = false;
const bool is_point_type = true; const bool is_point_type = true;
// FIXME :http://trac.mapnik.org/ticket/458
convert_ordinates(feature, convert_ordinates(feature,
mapnik::Point, mapnik::Point,
elem_info, elem_info,

View file

@ -59,7 +59,7 @@ box2d<T>::box2d(const box2d &rhs)
maxx_(rhs.maxx_), maxx_(rhs.maxx_),
maxy_(rhs.maxy_) {} maxy_(rhs.maxy_) {}
// copy rather than init so dfl ctor (0,0,-1,-1) is not modified // copy rather than init so dfl ctor (0,0,-1,-1) is not modified
// http://trac.mapnik.org/ticket/749 // https://github.com/mapnik/mapnik/issues/749
/*{ /*{
init(rhs.minx_,rhs.miny_,rhs.maxx_,rhs.maxy_); init(rhs.minx_,rhs.miny_,rhs.maxx_,rhs.maxy_);
}*/ }*/

View file

@ -89,7 +89,7 @@ boost::optional<std::string> scaling_method_to_string(scaling_method_e scaling_m
return mode; return mode;
} }
// this has been replaced by agg impl - see https://trac.mapnik.org/ticket/656 // this has been replaced by agg impl - see https://github.com/mapnik/mapnik/issues/656
template <typename Image> template <typename Image>
void scale_image_bilinear_old (Image & target,Image const& source, double x_off_f, double y_off_f) void scale_image_bilinear_old (Image & target,Image const& source, double x_off_f, double y_off_f)
{ {

View file

@ -1,4 +1,4 @@
<!-- see: http://trac.mapnik.org/changeset/574 --><Map background-color="steelblue" srs="+proj=longlat +ellps=airy +datum=OSGB36 +no_defs" minimum-version="0.7.2"> <Map background-color="steelblue" srs="+proj=longlat +ellps=airy +datum=OSGB36 +no_defs" minimum-version="0.7.2">
<Style name="test"> <Style name="test">
<Rule> <Rule>

View file

@ -1,4 +1,4 @@
<!-- see: http://trac.mapnik.org/changeset/574 --><Map background-color="steelblue" srs="+proj=longlat +ellps=airy +datum=OSGB36 +no_defs" minimum-version="0.7.2"> <Map background-color="steelblue" srs="+proj=longlat +ellps=airy +datum=OSGB36 +no_defs" minimum-version="0.7.2">
<FileSource name="foo">../images/</FileSource> <FileSource name="foo">../images/</FileSource>

View file

@ -7,12 +7,12 @@
</Rule> </Rule>
<Rule name="europe"> <Rule name="europe">
<Filter>([REGION]=150)</Filter> <Filter>([REGION]=150)</Filter>
<!-- requires at least Mapnik 0.7.1 to work due to http://trac.mapnik.org/ticket/508 --> <!-- requires at least Mapnik 0.7.1 to work due to https://github.com/mapnik/mapnik/issues/508 -->
<PolygonPatternSymbolizer file="../images/dummy.png"/> <PolygonPatternSymbolizer file="../images/dummy.png"/>
</Rule> </Rule>
<Rule name="americas"> <Rule name="americas">
<Filter>([REGION]=19)</Filter> <Filter>([REGION]=19)</Filter>
<!-- requires at least Mapnik 0.7.1 to work due to http://trac.mapnik.org/ticket/508 --> <!-- requires at least Mapnik 0.7.1 to work due to https://github.com/mapnik/mapnik/issues/508 -->
<LinePatternSymbolizer file="../images/dummy.png"/> <LinePatternSymbolizer file="../images/dummy.png"/>
</Rule> </Rule>
<Rule name="Africa"> <Rule name="Africa">

View file

@ -1,4 +1,4 @@
<!-- see: http://trac.mapnik.org/changeset/574 --><Map background-color="transparent" srs="+proj=longlat +ellps=airy +datum=OSGB36 +no_defs" minimum-version="0.7.2"> <Map background-color="transparent" srs="+proj=longlat +ellps=airy +datum=OSGB36 +no_defs" minimum-version="0.7.2">
<FileSource name="foo">../images/</FileSource> <FileSource name="foo">../images/</FileSource>

View file

@ -15,7 +15,7 @@
<Parameter name="use_spatial_index">true</Parameter> <Parameter name="use_spatial_index">true</Parameter>
<!-- key_field is required if a subquery AND spatial index <!-- key_field is required if a subquery AND spatial index
is used. see: http://trac.mapnik.org/ticket/821 is used. see: https://github.com/mapnik/mapnik/issues/821
--> -->
<Parameter name="key_field">OGC_FID</Parameter> <Parameter name="key_field">OGC_FID</Parameter>
<!-- <!--

View file

@ -111,7 +111,7 @@ INSERT INTO test5(non_id, manual_id, geom) values (0, -1, GeomFromEWKT('SRID=432
INSERT INTO test5(non_id, manual_id, geom) values (0, 1, GeomFromEWKT('SRID=4326;POINT(0 0)')); INSERT INTO test5(non_id, manual_id, geom) values (0, 1, GeomFromEWKT('SRID=4326;POINT(0 0)'));
""" """
insert_table_6 = ''' insert_table_5b = '''
CREATE TABLE "tableWithMixedCase"(gid serial PRIMARY KEY, geom geometry); CREATE TABLE "tableWithMixedCase"(gid serial PRIMARY KEY, geom geometry);
INSERT INTO "tableWithMixedCase"(geom) values (ST_MakePoint(0,0)); INSERT INTO "tableWithMixedCase"(geom) values (ST_MakePoint(0,0));
INSERT INTO "tableWithMixedCase"(geom) values (ST_MakePoint(0,1)); INSERT INTO "tableWithMixedCase"(geom) values (ST_MakePoint(0,1));
@ -119,11 +119,17 @@ INSERT INTO "tableWithMixedCase"(geom) values (ST_MakePoint(1,0));
INSERT INTO "tableWithMixedCase"(geom) values (ST_MakePoint(1,1)); INSERT INTO "tableWithMixedCase"(geom) values (ST_MakePoint(1,1));
''' '''
insert_table_7 = ''' insert_table_6 = '''
CREATE TABLE test6(first_id int4, second_id int4,PRIMARY KEY (first_id,second_id), geom geometry); CREATE TABLE test6(first_id int4, second_id int4,PRIMARY KEY (first_id,second_id), geom geometry);
INSERT INTO test6(first_id, second_id, geom) values (0, 0, GeomFromEWKT('SRID=4326;POINT(0 0)')); INSERT INTO test6(first_id, second_id, geom) values (0, 0, GeomFromEWKT('SRID=4326;POINT(0 0)'));
''' '''
insert_table_7 = '''
CREATE TABLE test7(gid serial PRIMARY KEY, geom geometry);
INSERT INTO test7(gid, geom) values (1, GeomFromEWKT('SRID=4326;GEOMETRYCOLLECTION(MULTILINESTRING((10 10,20 20,10 40),(40 40,30 30,40 20,30 10)),LINESTRING EMPTY)'));
'''
def postgis_setup(): def postgis_setup():
call('dropdb %s' % MAPNIK_TEST_DBNAME,silent=True) call('dropdb %s' % MAPNIK_TEST_DBNAME,silent=True)
call('createdb -T %s %s' % (POSTGIS_TEMPLATE_DBNAME,MAPNIK_TEST_DBNAME),silent=False) call('createdb -T %s %s' % (POSTGIS_TEMPLATE_DBNAME,MAPNIK_TEST_DBNAME),silent=False)
@ -134,7 +140,8 @@ def postgis_setup():
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_3),silent=False) call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_3),silent=False)
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_4),silent=False) call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_4),silent=False)
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_5),silent=False) call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_5),silent=False)
call("""psql -q %s -c '%s'""" % (MAPNIK_TEST_DBNAME,insert_table_6),silent=False) call("""psql -q %s -c '%s'""" % (MAPNIK_TEST_DBNAME,insert_table_5b),silent=False)
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_6),silent=False)
call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_7),silent=False) call('''psql -q %s -c "%s"''' % (MAPNIK_TEST_DBNAME,insert_table_7),silent=False)
def postgis_takedown(): def postgis_takedown():
@ -430,6 +437,12 @@ if 'postgis' in mapnik.DatasourceCache.instance().plugin_names() \
for id in range(1,5): for id in range(1,5):
eq_(fs.next().id(),id) eq_(fs.next().id(),id)
def test_empty_geom():
ds = mapnik.PostGIS(dbname=MAPNIK_TEST_DBNAME,table='test7',
geometry_field='geom')
fs = ds.featureset()
eq_(fs.next()['gid'],1)
atexit.register(postgis_takedown) atexit.register(postgis_takedown)
if __name__ == "__main__": if __name__ == "__main__":

View file

@ -72,7 +72,7 @@ def handle_attr_changes(sym):
if sym.attrib.get('text_transform'): if sym.attrib.get('text_transform'):
sym.attrib.pop('text_transform') sym.attrib.pop('text_transform')
# http://trac.mapnik.org/ticket/807 # https://github.com/mapnik/mapnik/issues/807
justify_alignment = sym.attrib.get('justify_alignment',sym.attrib.get('justify-alignment')) justify_alignment = sym.attrib.get('justify_alignment',sym.attrib.get('justify-alignment'))
if justify_alignment and justify_alignment == "middle": if justify_alignment and justify_alignment == "middle":
sym.attrib['justify-alignment'] = 'center' sym.attrib['justify-alignment'] = 'center'