From 09d7082957439886f40605ad65b7f00f21bef3d6 Mon Sep 17 00:00:00 2001 From: dane Date: Tue, 10 Aug 2010 18:18:31 +0000 Subject: [PATCH] upgrade default projection of epsg:4326 to match exactly what proj4 stores in /usr/local/share/epsg for 4326 (aka WGS84) git-svn-id: svn+ssh://svn.mapnik.org/trunk@2130 d397654b-2ff0-0310-9e29-ba003691a0f9 --- CHANGELOG | 5 ++++ bindings/python/mapnik_layer.cpp | 30 +++++++++++----------- bindings/python/mapnik_map.cpp | 8 +++--- bindings/python/mapnik_python.cpp | 2 +- demo/test/charplacement.py | 2 +- demo/test/displacement.py | 2 +- demo/test/overlap.py | 2 +- demo/test/textspacing.py | 2 +- include/mapnik/layer.hpp | 4 +-- include/mapnik/map.hpp | 4 +-- include/mapnik/proj_transform.hpp | 4 +-- plugins/input/kismet/kismet_featureset.cpp | 2 +- plugins/input/osm/test.xml | 4 +-- plugins/input/osm/test2.xml | 16 ++++++------ plugins/input/osm/test3.xml | 16 ++++++------ src/map.cpp | 2 +- src/metawriter.cpp | 2 +- src/proj_transform.cpp | 12 ++++----- tests/python_tests/object_test.py | 4 +-- 19 files changed, 64 insertions(+), 59 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 8b59e5e..5fa3045 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -14,6 +14,11 @@ For a complete change history, see the SVN log. Mapnik Trunk ------------ +- Upgraded to the latest proj4 string literal for EPSG:4326 (WGS84) as global default projection (#333) + +- Added 'mapnik_version_from_string()' function in python bindings to easily convert string representation + of version number to the integer format used in 'mapnik/version.hpp'. e.g. '0.7.1' --> 701. + - Added 'mapnik_version_from_string()' function in python bindings to easily convert string representation of version number to the integer format used in 'mapnik/version.hpp'. e.g. '0.7.1' --> 701. diff --git a/bindings/python/mapnik_layer.cpp b/bindings/python/mapnik_layer.cpp index 5bb4e2f..ef9f226 100644 --- a/bindings/python/mapnik_layer.cpp +++ b/bindings/python/mapnik_layer.cpp @@ -128,11 +128,11 @@ void export_layer() "\n" "The srs can be either a Proj.4 epsg code ('+init=epsg:') or\n" "of a Proj.4 literal ('+proj=').\n" - "If no srs is specified it will default to '+proj=latlong +datum=WGS84'\n" + "If no srs is specified it will default to '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'\n" "\n" "Usage:\n" ">>> from mapnik import Layer\n" - ">>> lyr = Layer('My Layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr\n" "\n" )) @@ -146,7 +146,7 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import Layer\n" - ">>> lyr = Layer('My Layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.envelope()\n" "box2d(-1.0,-1.0,0.0,0.0) # default until a datasource is loaded\n" ) @@ -163,7 +163,7 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import Layer\n" - ">>> lyr = Layer('My Layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.visible(1.0/1000000)\n" "True\n" ">>> lyr.active = False\n" @@ -178,7 +178,7 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import Layer\n" - ">>> lyr = Layer('My Layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.abstract\n" "'' # default is en empty string\n" ">>> lyr.abstract = 'My Shapefile rendered with Mapnik'\n" @@ -193,7 +193,7 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import Layer\n" - ">>> lyr = Layer('My Layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.active\n" "True # Active by default\n" ">>> lyr.active = False # set False to disable layer rendering\n" @@ -217,7 +217,7 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import Layer, Datasource\n" - ">>> lyr = Layer('My Layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.datasource = Datasource(type='shape',file='world_borders')\n" ">>> lyr.datasource\n" "\n" @@ -230,7 +230,7 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import Layer\n" - ">>> lyr = Layer('My Layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.maxzoom\n" "1.7976931348623157e+308 # default is the numerical maximum\n" ">>> lyr.maxzoom = 1.0/1000000\n" @@ -245,7 +245,7 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import Layer\n" - ">>> lyr = Layer('My Layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.minzoom # default is 0\n" "0.0\n" ">>> lyr.minzoom = 1.0/1000000\n" @@ -260,7 +260,7 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import Layer\n" - ">>> lyr = Layer('My Layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.name\n" "'My Layer'\n" ">>> lyr.name = 'New Name'\n" @@ -275,7 +275,7 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import layer\n" - ">>> lyr = layer('My layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = layer('My layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.queryable\n" "False # Not queryable by default\n" ">>> lyr.queryable = True\n" @@ -290,9 +290,9 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import layer\n" - ">>> lyr = layer('My layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = layer('My layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.srs\n" - "'+proj=latlong +datum=WGS84' # The default srs if not initialized with custom srs\n" + "'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs' # The default srs if not initialized with custom srs\n" ">>> # set to google mercator with Proj.4 literal\n" "... \n" ">>> lyr.srs = '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over'\n" @@ -304,7 +304,7 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import layer\n" - ">>> lyr = layer('My layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = layer('My layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.styles\n" "\n" ">>> len(lyr.styles)\n" @@ -323,7 +323,7 @@ void export_layer() "\n" "Usage:\n" ">>> from mapnik import layer\n" - ">>> lyr = layer('My layer','+proj=latlong +datum=WGS84')\n" + ">>> lyr = layer('My layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n" ">>> lyr.title\n" "''\n" ">>> lyr.title = 'My first layer'\n" diff --git a/bindings/python/mapnik_map.cpp b/bindings/python/mapnik_map.cpp index 72ebc86..4aa4483 100644 --- a/bindings/python/mapnik_map.cpp +++ b/bindings/python/mapnik_map.cpp @@ -150,7 +150,7 @@ void export_map() "Create a Map with a width and height as integers and, optionally,\n" "an srs string either with a Proj.4 epsg code ('+init=epsg:')\n" "or with a Proj.4 literal ('+proj=').\n" - "If no srs is specified the map will default to '+proj=latlong +datum=WGS84'\n" + "If no srs is specified the map will default to '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'\n" "\n" "Usage:\n" ">>> from mapnik import Map\n" @@ -158,7 +158,7 @@ void export_map() ">>> m\n" "\n" ">>> m.srs\n" - "'+proj=latlong +datum=WGS84'\n" + "'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'\n" )) .def_pickle(map_pickle_suite() @@ -419,7 +419,7 @@ void export_map() "Spatial reference in Proj.4 format.\n" "Either an epsg code or proj literal.\n" "For example, a proj literal:\n" - "\t'+proj=latlong +datum=WGS84'\n" + "\t'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'\n" "and a proj epsg code:\n" "\t'+init=epsg:4326'\n" "\n" @@ -428,7 +428,7 @@ void export_map() "\n" "Usage:\n" ">>> m.srs\n" - "'+proj=latlong +datum=WGS84' # The default srs if not initialized with custom srs\n" + "'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs' # The default srs if not initialized with custom srs\n" ">>> # set to google mercator with Proj.4 literal\n" "... \n" ">>> m.srs = '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over'\n" diff --git a/bindings/python/mapnik_python.cpp b/bindings/python/mapnik_python.cpp index c883256..e382810 100644 --- a/bindings/python/mapnik_python.cpp +++ b/bindings/python/mapnik_python.cpp @@ -508,7 +508,7 @@ BOOST_PYTHON_MODULE(_mapnik2) ">>> m = Map(256,256)\n" ">>> load_map(m,'mapfile_wgs84.xml')\n" ">>> m.srs\n" - "'+proj=latlong +datum=WGS84'\n" + "'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'\n" ">>> m.srs = '+init=espg:3395'\n" ">>> save_map(m,'mapfile_mercator.xml')\n" "\n" diff --git a/demo/test/charplacement.py b/demo/test/charplacement.py index 64b45f1..6f89303 100644 --- a/demo/test/charplacement.py +++ b/demo/test/charplacement.py @@ -27,7 +27,7 @@ installed successfully before running this script.\n\n' raise -m = Map(690,690,"+proj=latlong +ellps=WGS84") +m = Map(690,690,"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") m.background = Color(255,100,100,255) diff --git a/demo/test/displacement.py b/demo/test/displacement.py index 5f6dbac..5e22826 100644 --- a/demo/test/displacement.py +++ b/demo/test/displacement.py @@ -27,7 +27,7 @@ installed successfully before running this script.\n\n' raise -m = Map(690,690,"+proj=latlong +ellps=WGS84") +m = Map(690,690,"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") m.background = Color(255,100,100,255) diff --git a/demo/test/overlap.py b/demo/test/overlap.py index 50eb008..a1d28a9 100644 --- a/demo/test/overlap.py +++ b/demo/test/overlap.py @@ -27,7 +27,7 @@ installed successfully before running this script.\n\n' raise -m = Map(690,690,"+proj=latlong +ellps=WGS84") +m = Map(690,690,"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") m.background = Color(255,100,100,255) diff --git a/demo/test/textspacing.py b/demo/test/textspacing.py index 1c8e19b..482ee40 100644 --- a/demo/test/textspacing.py +++ b/demo/test/textspacing.py @@ -27,7 +27,7 @@ installed successfully before running this script.\n\n' raise -m = Map(690,690,"+proj=latlong +ellps=WGS84") +m = Map(690,690,"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") m.background = Color(255,100,100,255) diff --git a/include/mapnik/layer.hpp b/include/mapnik/layer.hpp index c63f648..d74eea8 100644 --- a/include/mapnik/layer.hpp +++ b/include/mapnik/layer.hpp @@ -39,12 +39,12 @@ namespace mapnik * Create a layer with a named string and, optionally, an srs string either * with a Proj.4 epsg code ('+init=epsg:') or with a Proj.4 literal * ('+proj='). If no srs is specified it will default to - * '+proj=latlong +datum=WGS84' + * '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs' */ class MAPNIK_DECL layer { public: - explicit layer(std::string const& name, std::string const& srs="+proj=latlong +datum=WGS84"); + explicit layer(std::string const& name, std::string const& srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"); layer(layer const& l); layer& operator=(layer const& l); bool operator==(layer const& other) const; diff --git a/include/mapnik/map.hpp b/include/mapnik/map.hpp index 58052e5..5c036d2 100644 --- a/include/mapnik/map.hpp +++ b/include/mapnik/map.hpp @@ -95,7 +95,7 @@ class MAPNIK_DECL Map * Creates a map with these parameters: * - width = 400 * - height = 400 - * - projection = "+proj=latlong +datum=WGS84" + * - projection = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs" */ Map(); @@ -104,7 +104,7 @@ class MAPNIK_DECL Map * @param height Initial map height. * @param srs Initial map projection. */ - Map(int width, int height, std::string const& srs="+proj=latlong +datum=WGS84"); + Map(int width, int height, std::string const& srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"); /*! \brief Copy Constructur. * diff --git a/include/mapnik/proj_transform.hpp b/include/mapnik/proj_transform.hpp index f2f4dbc..78bfa3a 100644 --- a/include/mapnik/proj_transform.hpp +++ b/include/mapnik/proj_transform.hpp @@ -47,8 +47,8 @@ class MAPNIK_DECL proj_transform : private boost::noncopyable private: projection const& source_; projection const& dest_; - bool is_source_latlong_; - bool is_dest_latlong_; + bool is_source_longlat_; + bool is_dest_longlat_; bool is_source_equal_dest_; }; } diff --git a/plugins/input/kismet/kismet_featureset.cpp b/plugins/input/kismet/kismet_featureset.cpp index 414e812..77ed9ad 100644 --- a/plugins/input/kismet/kismet_featureset.cpp +++ b/plugins/input/kismet/kismet_featureset.cpp @@ -41,7 +41,7 @@ kismet_featureset::kismet_featureset(const std::list &knd_l tr_(new transcoder(encoding)), feature_id (0), knd_list_it(knd_list_.begin ()), - source_("+proj=latlong +datum=WGS84") + source_("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") { //cout << "kismet_featureset::kismet_featureset()" << endl; } diff --git a/plugins/input/osm/test.xml b/plugins/input/osm/test.xml index 7a73365..f1330c9 100644 --- a/plugins/input/osm/test.xml +++ b/plugins/input/osm/test.xml @@ -1,6 +1,6 @@ - + - + roads-casing footway cycleway diff --git a/plugins/input/osm/test2.xml b/plugins/input/osm/test2.xml index 0a01949..578dfb3 100644 --- a/plugins/input/osm/test2.xml +++ b/plugins/input/osm/test2.xml @@ -1,6 +1,6 @@ - + - + leisure osm @@ -474,7 +474,7 @@ - + river stream @@ -483,7 +483,7 @@ - + lakes osm @@ -491,7 +491,7 @@ - + roads-casing footway cycleway @@ -510,7 +510,7 @@ - + amenity osm @@ -518,7 +518,7 @@ - + roads-text osm @@ -526,7 +526,7 @@ - + text osm diff --git a/plugins/input/osm/test3.xml b/plugins/input/osm/test3.xml index 8ba6cfa..ad7fa78 100644 --- a/plugins/input/osm/test3.xml +++ b/plugins/input/osm/test3.xml @@ -1,6 +1,6 @@ - + - + leisure osm - + river stream @@ -481,14 +481,14 @@ - + lakes osm - + roads-casing footway cycleway @@ -506,21 +506,21 @@ - + amenity osm - + roads-text osm - + text osm diff --git a/src/map.cpp b/src/map.cpp index 87d734c..b5152b7 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -63,7 +63,7 @@ IMPLEMENT_ENUM( aspect_fix_mode_e, aspect_fix_mode_strings ); Map::Map() : width_(400), height_(400), - srs_("+proj=latlong +datum=WGS84"), + srs_("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"), buffer_size_(0), aspectFixMode_(GROW_BBOX) {} diff --git a/src/metawriter.cpp b/src/metawriter.cpp index cc201d0..495e8e0 100644 --- a/src/metawriter.cpp +++ b/src/metawriter.cpp @@ -91,7 +91,7 @@ metawriter_json_stream::~metawriter_json_stream() metawriter_json_stream::metawriter_json_stream(metawriter_properties dflt_properties) : metawriter(dflt_properties), count_(-1), only_nonempty_(true), - trans_(0), output_srs_("+proj=latlong +datum=WGS84"), f_(0) + trans_(0), output_srs_("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"), f_(0) { } diff --git a/src/proj_transform.cpp b/src/proj_transform.cpp index 44c1179..4da7c16 100644 --- a/src/proj_transform.cpp +++ b/src/proj_transform.cpp @@ -35,8 +35,8 @@ proj_transform::proj_transform(projection const& source, : source_(source), dest_(dest) { - is_source_latlong_ = source_.is_geographic(); - is_dest_latlong_ = dest_.is_geographic(); + is_source_longlat_ = source_.is_geographic(); + is_dest_longlat_ = dest_.is_geographic(); is_source_equal_dest_ = (source_ == dest_); } @@ -50,7 +50,7 @@ bool proj_transform::forward (double & x, double & y , double & z) const if (is_source_equal_dest_) return true; - if (is_source_latlong_) + if (is_source_longlat_) { x *= DEG_TO_RAD; y *= DEG_TO_RAD; @@ -66,7 +66,7 @@ bool proj_transform::forward (double & x, double & y , double & z) const return false; } - if (is_dest_latlong_) + if (is_dest_longlat_) { x *= RAD_TO_DEG; y *= RAD_TO_DEG; @@ -80,7 +80,7 @@ bool proj_transform::backward (double & x, double & y , double & z) const if (is_source_equal_dest_) return true; - if (is_dest_latlong_) + if (is_dest_longlat_) { x *= DEG_TO_RAD; y *= DEG_TO_RAD; @@ -96,7 +96,7 @@ bool proj_transform::backward (double & x, double & y , double & z) const return false; } - if (is_source_latlong_) + if (is_source_longlat_) { x *= RAD_TO_DEG; y *= RAD_TO_DEG; diff --git a/tests/python_tests/object_test.py b/tests/python_tests/object_test.py index 04c3d85..752ac7d 100644 --- a/tests/python_tests/object_test.py +++ b/tests/python_tests/object_test.py @@ -245,7 +245,7 @@ def test_map_init(): eq_(m.width, 256) eq_(m.height, 256) - eq_(m.srs, '+proj=latlong +datum=WGS84') + eq_(m.srs, '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs') m = mapnik2.Map(256, 256, '+proj=latlong') @@ -255,7 +255,7 @@ def test_map_init(): # Map initialization from string def test_map_init_from_string(): - map_string = ''' + map_string = '''