diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:12:59 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:12:59 +0900 |
commit | b8cf34c691623e4ec329053cbbf68522a855882d (patch) | |
tree | 34da08632a99677f6b79ecb65e5b655a5b69a67f /boost/geometry/srs/projections | |
parent | 3fdc3e5ee96dca5b11d1694975a65200787eab86 (diff) | |
download | boost-upstream/1.67.0.tar.gz boost-upstream/1.67.0.tar.bz2 boost-upstream/1.67.0.zip |
Imported Upstream version 1.67.0upstream/1.67.0
Diffstat (limited to 'boost/geometry/srs/projections')
143 files changed, 48457 insertions, 0 deletions
diff --git a/boost/geometry/srs/projections/code.hpp b/boost/geometry/srs/projections/code.hpp new file mode 100644 index 0000000000..852153d485 --- /dev/null +++ b/boost/geometry/srs/projections/code.hpp @@ -0,0 +1,56 @@ +// Boost.Geometry + +// Copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_CODE_HPP +#define BOOST_GEOMETRY_PROJECTIONS_CODE_HPP + + +#include <algorithm> +#include <string> + + +namespace boost { namespace geometry { namespace projections +{ + + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + + struct code_element + { + int code; + std::string proj4_str; + }; + + struct code_element_less + { + inline bool operator()(code_element const& l, code_element const& r) const + { + return l.code < r.code; + } + }; + + template<typename RandIt> + inline RandIt binary_find_code_element(RandIt first, RandIt last, int code) + { + code_element_less comp; + code_element value; + value.code = code; + first = std::lower_bound(first, last, value, code_element_less()); + return first != last && !comp(value, *first) ? first : last; + } + +} +#endif // DOXYGEN_NO_DETAIL + + +}}} // namespace boost::geometry::projections + +#endif diff --git a/boost/geometry/srs/projections/epsg.hpp b/boost/geometry/srs/projections/epsg.hpp new file mode 100644 index 0000000000..87f58b980d --- /dev/null +++ b/boost/geometry/srs/projections/epsg.hpp @@ -0,0 +1,4409 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + + +#ifndef BOOST_GEOMETRY_PROJECTIONS_EPGS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_EPGS_HPP + + +#include <boost/geometry/srs/projections/code.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + + inline std::string epsg_to_string(int code) + { + static const code_element arr[] = { + {2000, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs"}, + {2001, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs"}, + {2002, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +units=m +no_defs"}, + {2003, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +units=m +no_defs"}, + {2004, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +units=m +no_defs"}, + {2005, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs"}, + {2006, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +units=m +no_defs"}, + {2007, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=195.671,332.517,274.607,0,0,0,0 +units=m +no_defs"}, + {2008, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2009, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2010, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2011, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2012, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2013, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2014, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2015, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2016, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2017, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2018, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2019, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2020, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2021, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2022, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2023, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2024, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2025, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2026, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2027, "+proj=utm +zone=15 +ellps=clrk66 +units=m +no_defs"}, + {2028, "+proj=utm +zone=16 +ellps=clrk66 +units=m +no_defs"}, + {2029, "+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs"}, + {2030, "+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs"}, + {2031, "+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs"}, + {2032, "+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs"}, + {2033, "+proj=utm +zone=19 +ellps=clrk66 +units=m +no_defs"}, + {2034, "+proj=utm +zone=20 +ellps=clrk66 +units=m +no_defs"}, + {2035, "+proj=utm +zone=21 +ellps=clrk66 +units=m +no_defs"}, + {2036, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2037, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2038, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2039, "+proj=tmerc +lat_0=31.73439361111111 +lon_0=35.20451694444445 +k=1.0000067 +x_0=219529.584 +y_0=626907.39 +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +units=m +no_defs"}, + {2040, "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs"}, + {2041, "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs"}, + {2042, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs"}, + {2043, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs"}, + {2044, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs"}, + {2045, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs"}, + //{2046, ""}, + //{2047, ""}, + //{2048, ""}, + //{2049, ""}, + //{2050, ""}, + //{2051, ""}, + //{2052, ""}, + //{2053, ""}, + //{2054, ""}, + //{2055, ""}, + {2056, "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs"}, + {2057, "+proj=omerc +lat_0=27.51882880555555 +lonc=52.60353916666667 +alpha=0.5716611944444444 +k=0.999895934 +x_0=658377.437 +y_0=3044969.194 +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +units=m +no_defs"}, + {2058, "+proj=utm +zone=38 +ellps=intl +units=m +no_defs"}, + {2059, "+proj=utm +zone=39 +ellps=intl +units=m +no_defs"}, + {2060, "+proj=utm +zone=40 +ellps=intl +units=m +no_defs"}, + {2061, "+proj=utm +zone=41 +ellps=intl +units=m +no_defs"}, + {2062, "+proj=lcc +lat_1=40 +lat_0=40 +lon_0=0 +k_0=0.9988085293 +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.142669561 +pm=madrid +units=m +no_defs"}, + {2063, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs"}, + {2064, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs"}, + {2065, "+proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {2066, "+proj=cass +lat_0=11.25217861111111 +lon_0=-60.68600888888889 +x_0=37718.66159325 +y_0=36209.91512952 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 +no_defs"}, + {2067, "+proj=utm +zone=20 +ellps=intl +units=m +no_defs"}, + {2068, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2069, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2070, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2071, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2072, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2073, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2074, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2075, "+proj=tmerc +lat_0=0 +lon_0=23 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2076, "+proj=tmerc +lat_0=0 +lon_0=25 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2077, "+proj=utm +zone=32 +ellps=intl +units=m +no_defs"}, + {2078, "+proj=utm +zone=33 +ellps=intl +units=m +no_defs"}, + {2079, "+proj=utm +zone=34 +ellps=intl +units=m +no_defs"}, + {2080, "+proj=utm +zone=35 +ellps=intl +units=m +no_defs"}, + {2081, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2082, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +units=m +no_defs"}, + {2083, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2084, "+proj=utm +zone=19 +south +ellps=intl +units=m +no_defs"}, + {2085, "+proj=lcc +lat_1=22.35 +lat_0=22.35 +lon_0=-81 +k_0=0.99993602 +x_0=500000 +y_0=280296.016 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {2086, "+proj=lcc +lat_1=20.71666666666667 +lat_0=20.71666666666667 +lon_0=-76.83333333333333 +k_0=0.99994848 +x_0=500000 +y_0=229126.939 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {2087, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2088, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9996 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {2089, "+proj=utm +zone=38 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2090, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2091, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs"}, + {2092, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs"}, + {2093, "+proj=tmerc +lat_0=0 +lon_0=106 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs"}, + {2094, "+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y_0=0 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {2095, "+proj=utm +zone=28 +ellps=intl +towgs84=-173,253,27,0,0,0,0 +units=m +no_defs"}, + {2096, "+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs"}, + {2097, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs"}, + {2098, "+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs"}, + {2099, "+proj=cass +lat_0=25.38236111111111 +lon_0=50.76138888888889 +x_0=100000 +y_0=100000 +ellps=helmert +units=m +no_defs"}, + {2100, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0,0,0,0 +units=m +no_defs"}, + {2101, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=0 +y_0=-52684.972 +ellps=intl +units=m +no_defs"}, + {2102, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=200000 +y_0=147315.028 +ellps=intl +units=m +no_defs"}, + {2103, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=500000 +y_0=447315.028 +ellps=intl +units=m +no_defs"}, + {2104, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=-17044 +y_0=-23139.97 +ellps=intl +units=m +no_defs"}, + {2105, "+proj=tmerc +lat_0=-36.87972222222222 +lon_0=174.7641666666667 +k=0.9999 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2106, "+proj=tmerc +lat_0=-37.76111111111111 +lon_0=176.4661111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2107, "+proj=tmerc +lat_0=-38.62444444444444 +lon_0=177.8855555555556 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2108, "+proj=tmerc +lat_0=-39.65083333333333 +lon_0=176.6736111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2109, "+proj=tmerc +lat_0=-39.13555555555556 +lon_0=174.2277777777778 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2110, "+proj=tmerc +lat_0=-39.51222222222222 +lon_0=175.64 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2111, "+proj=tmerc +lat_0=-40.24194444444444 +lon_0=175.4880555555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2112, "+proj=tmerc +lat_0=-40.92527777777777 +lon_0=175.6472222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2113, "+proj=tmerc +lat_0=-41.3011111111111 +lon_0=174.7763888888889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2114, "+proj=tmerc +lat_0=-40.71472222222223 +lon_0=172.6719444444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2115, "+proj=tmerc +lat_0=-41.27444444444444 +lon_0=173.2991666666667 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2116, "+proj=tmerc +lat_0=-41.28972222222222 +lon_0=172.1088888888889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2117, "+proj=tmerc +lat_0=-41.81055555555555 +lon_0=171.5811111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2118, "+proj=tmerc +lat_0=-42.33361111111111 +lon_0=171.5497222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2119, "+proj=tmerc +lat_0=-42.68888888888888 +lon_0=173.01 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2120, "+proj=tmerc +lat_0=-41.54444444444444 +lon_0=173.8019444444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2121, "+proj=tmerc +lat_0=-42.88611111111111 +lon_0=170.9797222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2122, "+proj=tmerc +lat_0=-43.11 +lon_0=170.2608333333333 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2123, "+proj=tmerc +lat_0=-43.97777777777778 +lon_0=168.6061111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2124, "+proj=tmerc +lat_0=-43.59055555555556 +lon_0=172.7269444444445 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2125, "+proj=tmerc +lat_0=-43.74861111111111 +lon_0=171.3605555555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2126, "+proj=tmerc +lat_0=-44.40194444444445 +lon_0=171.0572222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2127, "+proj=tmerc +lat_0=-44.735 +lon_0=169.4675 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2128, "+proj=tmerc +lat_0=-45.13277777777778 +lon_0=168.3986111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2129, "+proj=tmerc +lat_0=-45.56361111111111 +lon_0=167.7386111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2130, "+proj=tmerc +lat_0=-45.81611111111111 +lon_0=170.6283333333333 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2131, "+proj=tmerc +lat_0=-45.86138888888889 +lon_0=170.2825 +k=0.99996 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2132, "+proj=tmerc +lat_0=-46.6 +lon_0=168.3427777777778 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2133, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2134, "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2135, "+proj=utm +zone=60 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2136, "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.99975 +x_0=274319.7391633579 +y_0=0 +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +to_meter=0.3047997101815088 +no_defs"}, + {2137, "+proj=tmerc +lat_0=0 +lon_0=-1 +k=0.9996 +x_0=500000 +y_0=0 +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +units=m +no_defs"}, + {2138, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {2139, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2140, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2141, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2142, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2143, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2144, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2145, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2146, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2147, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2148, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2149, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2150, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2151, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2152, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2153, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2154, "+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2155, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {2156, "+proj=utm +zone=59 +south +ellps=GRS80 +units=m +no_defs"}, + {2157, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=0.99982 +x_0=600000 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2158, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2159, "+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_0=152399.8550907544 +y_0=0 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defs"}, + {2160, "+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_0=243839.7681452071 +y_0=182879.8261089053 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defs"}, + {2161, "+proj=utm +zone=28 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defs"}, + {2162, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defs"}, + {2163, "+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defs"}, + {2164, "+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs"}, + {2165, "+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs"}, + {2166, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs"}, + {2167, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs"}, + {2168, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs"}, + {2169, "+proj=tmerc +lat_0=49.83333333333334 +lon_0=6.166666666666667 +k=1 +x_0=80000 +y_0=100000 +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +units=m +no_defs"}, + {2170, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {2171, "+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5647000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {2172, "+proj=sterea +lat_0=53.00194444444445 +lon_0=21.50277777777778 +k=0.9998 +x_0=4603000 +y_0=5806000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {2173, "+proj=sterea +lat_0=53.58333333333334 +lon_0=17.00833333333333 +k=0.9998 +x_0=3501000 +y_0=5999000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {2174, "+proj=sterea +lat_0=51.67083333333333 +lon_0=16.67222222222222 +k=0.9998 +x_0=3703000 +y_0=5627000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {2175, "+proj=tmerc +lat_0=0 +lon_0=18.95833333333333 +k=0.999983 +x_0=237000 +y_0=-4700000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {2176, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.999923 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2177, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.999923 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2178, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.999923 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2179, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.999923 +x_0=8500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2180, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9993 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +units=m +no_defs"}, + {2188, "+proj=utm +zone=25 +ellps=intl +units=m +no_defs"}, + {2189, "+proj=utm +zone=26 +ellps=intl +towgs84=-104,167,-38,0,0,0,0 +units=m +no_defs"}, + {2190, "+proj=utm +zone=26 +ellps=intl +towgs84=-203,141,53,0,0,0,0 +units=m +no_defs"}, + {2191, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs"}, + {2192, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.337229166666667 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +ellps=intl +units=m +no_defs"}, + {2193, "+proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2194, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {2195, "+proj=utm +zone=2 +south +ellps=GRS80 +units=m +no_defs"}, + {2196, "+proj=tmerc +lat_0=0 +lon_0=9.5 +k=0.99995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2197, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.99995 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2198, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2199, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2200, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=300000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defs"}, + {2201, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2202, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2203, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2204, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=609601.2192024384 +y_0=30480.06096012192 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {2205, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {2206, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2207, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2208, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2209, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2210, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2211, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2212, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2213, "+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2214, "+proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +units=m +no_defs"}, + {2215, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +units=m +no_defs"}, + {2216, "+proj=utm +zone=22 +ellps=intl +units=m +no_defs"}, + {2217, "+proj=utm +zone=23 +ellps=intl +units=m +no_defs"}, + //{2218, ""}, + {2219, "+proj=utm +zone=19 +a=6378135 +b=6356750.304921594 +units=m +no_defs"}, + {2220, "+proj=utm +zone=20 +a=6378135 +b=6356750.304921594 +units=m +no_defs"}, + //{2221, ""}, + {2222, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2223, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2224, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2225, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2226, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2227, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2228, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2229, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2230, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2231, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2232, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2233, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2234, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2235, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2236, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2237, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2238, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2239, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2240, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2241, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2242, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2243, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2244, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2245, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2246, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2247, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2248, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2249, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2250, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2251, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2252, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2253, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2254, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2255, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2256, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2257, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2258, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2259, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2260, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2261, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2262, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2263, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2264, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2265, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2266, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2267, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2268, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2269, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2270, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2271, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2272, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2273, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2274, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2275, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2276, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2277, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2278, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2279, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2280, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2281, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2282, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2283, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2284, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2285, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2286, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2287, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2288, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2289, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2290, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=700000 +y_0=400000 +a=6378135 +b=6356750.304921594 +units=m +no_defs"}, + {2291, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defs"}, + {2292, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2294, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=4500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defs"}, + {2295, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=5500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defs"}, + //{2296, ""}, + //{2297, ""}, + //{2298, ""}, + //{2299, ""}, + //{2300, ""}, + //{2301, ""}, + //{2302, ""}, + //{2303, ""}, + //{2304, ""}, + //{2305, ""}, + //{2306, ""}, + //{2307, ""}, + {2308, "+proj=tmerc +lat_0=0 +lon_0=109 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=bessel +units=m +no_defs"}, + {2309, "+proj=tmerc +lat_0=0 +lon_0=116 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {2310, "+proj=tmerc +lat_0=0 +lon_0=132 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {2311, "+proj=tmerc +lat_0=0 +lon_0=6 +k=0.9996 +x_0=500000 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {2312, "+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs"}, + {2313, "+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs"}, + {2314, "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392052001 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.3047972654 +no_defs"}, + {2315, "+proj=utm +zone=19 +south +ellps=intl +units=m +no_defs"}, + {2316, "+proj=utm +zone=20 +south +ellps=intl +units=m +no_defs"}, + {2317, "+proj=lcc +lat_1=9 +lat_2=3 +lat_0=6 +lon_0=-66 +x_0=1000000 +y_0=1000000 +ellps=intl +units=m +no_defs"}, + {2318, "+proj=lcc +lat_1=17 +lat_2=33 +lat_0=25.08951 +lon_0=48 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2319, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2320, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2321, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2322, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2323, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2324, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2325, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2326, "+proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +units=m +no_defs"}, + {2327, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2328, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2329, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2330, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2331, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2332, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2333, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2334, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2335, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2336, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2337, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2338, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2339, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2340, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2341, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2342, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2343, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2344, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2345, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2346, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2347, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2348, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2349, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2350, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2351, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2352, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2353, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2354, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2355, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2356, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2357, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2358, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2359, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2360, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2361, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2362, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2363, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2364, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2365, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2366, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2367, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2368, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2369, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2370, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2371, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2372, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2373, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2374, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2375, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2376, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2377, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2378, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2379, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2380, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2381, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2382, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2383, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2384, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2385, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2386, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2387, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2388, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2389, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2390, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs"}, + {2391, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2392, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2393, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2394, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=4500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {2395, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs"}, + {2396, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs"}, + {2397, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs"}, + {2398, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs"}, + {2399, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs"}, + {2400, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {2401, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2402, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2403, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2404, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2405, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2406, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2407, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2408, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2409, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2410, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2411, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2412, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2413, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2414, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2415, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2416, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2417, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2418, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2419, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2420, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2421, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2422, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2423, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2424, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2425, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2426, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2427, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2428, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2429, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2430, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2431, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2432, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2433, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2434, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2435, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2436, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2437, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2438, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2439, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2440, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2441, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2442, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2443, "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2444, "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2445, "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2446, "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2447, "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2448, "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2449, "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2450, "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2451, "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2452, "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2453, "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2454, "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2455, "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2456, "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2457, "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2458, "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2459, "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2460, "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2461, "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2462, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2463, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2464, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2465, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2466, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2467, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2468, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2469, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2470, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2471, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2472, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2473, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2474, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2475, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2476, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2477, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2478, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2479, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2480, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2481, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2482, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2483, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2484, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2485, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2486, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2487, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2488, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2489, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2490, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2491, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2492, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2493, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2494, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2495, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2496, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2497, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2498, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2499, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2500, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2501, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2502, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2503, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2504, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2505, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2506, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2507, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2508, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2509, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2510, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2511, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2512, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2513, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2514, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2515, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2516, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2517, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2518, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2519, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2520, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2521, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2522, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2523, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2524, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2525, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2526, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2527, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2528, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2529, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2530, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2531, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2532, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2533, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2534, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2535, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2536, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2537, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2538, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2539, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2540, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2541, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2542, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2543, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2544, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2545, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2546, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2547, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2548, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2549, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2550, "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +units=m +no_defs"}, + {2551, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2552, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2553, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2554, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2555, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2556, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2557, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2558, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2559, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2560, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2561, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2562, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2563, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2564, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2565, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2566, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2567, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2568, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2569, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2570, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2571, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2572, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2573, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2574, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2575, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2576, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2577, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2578, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2579, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2580, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2581, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2582, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2583, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2584, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2585, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2586, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2587, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2588, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2589, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2590, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2591, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2592, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2593, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2594, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2595, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2596, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2597, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2598, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2599, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2600, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2601, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2602, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2603, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2604, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2605, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2606, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2607, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2608, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2609, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2610, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2611, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2612, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2613, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2614, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2615, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2616, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2617, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2618, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2619, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2620, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2621, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2622, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2623, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2624, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2625, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2626, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2627, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2628, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2629, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2630, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2631, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2632, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2633, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2634, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2635, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2636, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2637, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2638, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2639, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2640, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2641, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2642, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2643, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2644, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2645, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2646, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2647, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2648, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2649, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2650, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2651, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2652, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2653, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2654, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2655, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2656, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2657, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2658, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2659, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2660, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2661, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2662, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2663, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2664, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2665, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2666, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2667, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2668, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2669, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2670, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2671, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2672, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2673, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2674, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2675, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2676, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2677, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2678, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2679, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2680, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2681, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2682, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2683, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2684, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2685, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2686, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2687, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2688, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2689, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2690, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2691, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2692, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2693, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2694, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2695, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2696, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2697, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2698, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2699, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2700, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2701, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2702, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2703, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2704, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2705, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2706, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2707, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2708, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2709, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2710, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2711, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2712, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2713, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2714, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2715, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2716, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2717, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2718, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2719, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2720, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2721, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2722, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2723, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2724, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2725, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2726, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2727, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2728, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2729, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2730, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2731, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2732, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2733, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2734, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2735, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2736, "+proj=utm +zone=36 +south +ellps=clrk66 +units=m +no_defs"}, + {2737, "+proj=utm +zone=37 +south +ellps=clrk66 +units=m +no_defs"}, + {2738, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2739, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2740, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2741, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2742, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2743, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2744, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2745, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2746, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2747, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2748, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2749, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2750, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2751, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2752, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2753, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2754, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2755, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2756, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2757, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2758, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2759, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2760, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2761, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2762, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2763, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2764, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2765, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs"}, + {2766, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {2767, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {2768, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {2769, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {2770, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {2771, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {2772, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs"}, + {2773, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs"}, + {2774, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs"}, + {2775, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +units=m +no_defs"}, + {2776, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2777, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2778, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2779, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2780, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2781, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2782, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2783, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2784, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2785, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2786, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2787, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2788, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2789, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2790, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2791, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2792, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m +no_defs"}, + {2793, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m +no_defs"}, + {2794, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs"}, + {2795, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2796, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2797, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs"}, + {2798, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2799, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {2800, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2801, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2802, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2803, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2804, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2805, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +units=m +no_defs"}, + {2806, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2807, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2808, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2809, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2810, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs"}, + {2811, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs"}, + {2812, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs"}, + {2813, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2814, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2815, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2816, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2817, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2818, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2819, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2820, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m +no_defs"}, + {2821, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs"}, + {2822, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs"}, + {2823, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2824, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2825, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2826, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2827, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2828, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2829, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2830, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2831, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2832, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2833, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2834, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2835, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2836, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2837, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2838, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2839, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2840, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2841, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2842, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2843, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2844, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs"}, + {2845, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs"}, + {2846, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs"}, + {2847, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs"}, + {2848, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs"}, + {2849, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs"}, + {2850, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs"}, + {2851, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs"}, + {2852, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2853, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs"}, + {2854, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs"}, + {2855, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2856, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2857, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2858, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2859, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2860, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2861, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2862, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2863, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m +no_defs"}, + {2864, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2865, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs"}, + {2866, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +units=m +no_defs"}, + {2867, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2868, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2869, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2870, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2871, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2872, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2873, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2874, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2875, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2876, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2877, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2878, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2879, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2880, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2881, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2882, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2883, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2884, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2885, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2886, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2887, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2888, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2889, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2890, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2891, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2892, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2893, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2894, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2895, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2896, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2897, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2898, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2899, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2900, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2901, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2902, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2903, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2904, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2905, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2906, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2907, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2908, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2909, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2910, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2911, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2912, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2913, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2914, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2915, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2916, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2917, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2918, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2919, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2920, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2921, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2922, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2923, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2924, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2925, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2926, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2927, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2928, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2929, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2930, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2931, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9996 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +towgs84=-106,-87,188,0,0,0,0 +units=m +no_defs"}, + {2932, "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.99999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +units=m +no_defs"}, + {2933, "+proj=utm +zone=50 +south +ellps=bessel +units=m +no_defs"}, + {2934, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defs"}, + {2935, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=41.53333333333333 +k=1 +x_0=1300000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2936, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=44.53333333333333 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2937, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=47.53333333333333 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2938, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=50.53333333333333 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2939, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=50.76666666666667 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2940, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=53.76666666666667 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2941, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=56.76666666666667 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {2942, "+proj=utm +zone=28 +ellps=intl +towgs84=-499,-249,314,0,0,0,0 +units=m +no_defs"}, + {2943, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs"}, + {2944, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2945, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2946, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2947, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2948, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2949, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2950, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2951, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2952, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2953, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +units=m +no_defs"}, + {2954, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +units=m +no_defs"}, + {2955, "+proj=utm +zone=11 +ellps=GRS80 +units=m +no_defs"}, + {2956, "+proj=utm +zone=12 +ellps=GRS80 +units=m +no_defs"}, + {2957, "+proj=utm +zone=13 +ellps=GRS80 +units=m +no_defs"}, + {2958, "+proj=utm +zone=17 +ellps=GRS80 +units=m +no_defs"}, + {2959, "+proj=utm +zone=18 +ellps=GRS80 +units=m +no_defs"}, + {2960, "+proj=utm +zone=19 +ellps=GRS80 +units=m +no_defs"}, + {2961, "+proj=utm +zone=20 +ellps=GRS80 +units=m +no_defs"}, + {2962, "+proj=utm +zone=21 +ellps=GRS80 +units=m +no_defs"}, + //{2963, ""}, + {2964, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {2965, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2966, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {2967, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2968, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {2969, "+proj=utm +zone=20 +ellps=intl +towgs84=137,248,-430,0,0,0,0 +units=m +no_defs"}, + {2970, "+proj=utm +zone=20 +ellps=intl +units=m +no_defs"}, + {2971, "+proj=utm +zone=22 +ellps=intl +towgs84=-186,230,110,0,0,0,0 +units=m +no_defs"}, + {2972, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defs"}, + {2973, "+proj=utm +zone=20 +ellps=intl +units=m +no_defs"}, + {2975, "+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2976, "+proj=utm +zone=6 +south +ellps=intl +towgs84=162,117,154,0,0,0,0 +units=m +no_defs"}, + {2977, "+proj=utm +zone=5 +south +ellps=intl +units=m +no_defs"}, + {2978, "+proj=utm +zone=7 +south +ellps=intl +units=m +no_defs"}, + {2979, "+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,103,0,0,0,0 +units=m +no_defs"}, + {2980, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,-262,0,0,0,0 +units=m +no_defs"}, + {2981, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs"}, + {2982, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs"}, + {2983, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +units=m +no_defs"}, + {2984, "+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.33333333333333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +ellps=intl +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + //{2985, ""}, + //{2986, ""}, + {2987, "+proj=utm +zone=21 +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 +units=m +no_defs"}, + {2988, "+proj=utm +zone=1 +south +ellps=intl +units=m +no_defs"}, + {2989, "+proj=utm +zone=20 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {2990, "+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333333333 +k=1 +x_0=50000 +y_0=160000 +ellps=intl +units=m +no_defs"}, + {2991, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {2992, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs"}, + {2993, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {2994, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {2995, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs"}, + {2996, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs"}, + {2997, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7 +units=m +no_defs"}, + {2998, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs"}, + {2999, "+proj=utm +zone=38 +south +ellps=intl +units=m +no_defs"}, + {3000, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs"}, + {3001, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs"}, + {3002, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +units=m +no_defs"}, + {3003, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {3004, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {3005, "+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3006, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3007, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3008, "+proj=tmerc +lat_0=0 +lon_0=13.5 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3009, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3010, "+proj=tmerc +lat_0=0 +lon_0=16.5 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3011, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3012, "+proj=tmerc +lat_0=0 +lon_0=14.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3013, "+proj=tmerc +lat_0=0 +lon_0=15.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3014, "+proj=tmerc +lat_0=0 +lon_0=17.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3015, "+proj=tmerc +lat_0=0 +lon_0=18.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3016, "+proj=tmerc +lat_0=0 +lon_0=20.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3017, "+proj=tmerc +lat_0=0 +lon_0=21.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3018, "+proj=tmerc +lat_0=0 +lon_0=23.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3019, "+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3020, "+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3021, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3022, "+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3023, "+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3024, "+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3025, "+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3026, "+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3027, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3028, "+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3029, "+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3030, "+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3031, "+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3032, "+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=70 +k=1 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3033, "+proj=lcc +lat_1=-68.5 +lat_2=-74.5 +lat_0=-50 +lon_0=70 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3034, "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4000000 +y_0=2800000 +ellps=GRS80 +units=m +no_defs"}, + {3035, "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs"}, + {3036, "+proj=utm +zone=36 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs"}, + {3037, "+proj=utm +zone=37 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs"}, + {3038, "+proj=utm +zone=26 +ellps=GRS80 +units=m +no_defs"}, + {3039, "+proj=utm +zone=27 +ellps=GRS80 +units=m +no_defs"}, + {3040, "+proj=utm +zone=28 +ellps=GRS80 +units=m +no_defs"}, + {3041, "+proj=utm +zone=29 +ellps=GRS80 +units=m +no_defs"}, + {3042, "+proj=utm +zone=30 +ellps=GRS80 +units=m +no_defs"}, + {3043, "+proj=utm +zone=31 +ellps=GRS80 +units=m +no_defs"}, + {3044, "+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs"}, + {3045, "+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs"}, + {3046, "+proj=utm +zone=34 +ellps=GRS80 +units=m +no_defs"}, + {3047, "+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs"}, + {3048, "+proj=utm +zone=36 +ellps=GRS80 +units=m +no_defs"}, + {3049, "+proj=utm +zone=37 +ellps=GRS80 +units=m +no_defs"}, + {3050, "+proj=utm +zone=38 +ellps=GRS80 +units=m +no_defs"}, + {3051, "+proj=utm +zone=39 +ellps=GRS80 +units=m +no_defs"}, + //{3052, ""}, + //{3053, ""}, + {3054, "+proj=utm +zone=26 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defs"}, + {3055, "+proj=utm +zone=27 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defs"}, + {3056, "+proj=utm +zone=28 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defs"}, + {3057, "+proj=lcc +lat_1=64.25 +lat_2=65.75 +lat_0=65 +lon_0=-19 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3058, "+proj=tmerc +lat_0=0 +lon_0=-8.5 +k=1 +x_0=50000 +y_0=-7800000 +ellps=intl +towgs84=982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805 +units=m +no_defs"}, + {3059, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3060, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs"}, + {3061, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs"}, + {3062, "+proj=utm +zone=26 +ellps=intl +units=m +no_defs"}, + {3063, "+proj=utm +zone=26 +ellps=intl +units=m +no_defs"}, + {3064, "+proj=utm +zone=32 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3065, "+proj=utm +zone=33 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3066, "+proj=tmerc +lat_0=0 +lon_0=37 +k=0.9998 +x_0=500000 +y_0=-3000000 +ellps=intl +units=m +no_defs"}, + {3067, "+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs"}, + {3068, "+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 +x_0=40000 +y_0=10000 +ellps=bessel +datum=potsdam +units=m +no_defs"}, + {3069, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=500000 +y_0=-4500000 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3070, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3071, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +units=m +no_defs"}, + {3072, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3073, "+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3074, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3075, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3076, "+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3077, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3078, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3079, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +units=m +no_defs"}, + {3080, "+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=914400 +y_0=914400 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048 +no_defs"}, + {3081, "+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3082, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3083, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3084, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs"}, + {3085, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs"}, + {3086, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3087, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3088, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3089, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3090, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs"}, + {3091, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3092, "+proj=utm +zone=51 +ellps=bessel +units=m +no_defs"}, + {3093, "+proj=utm +zone=52 +ellps=bessel +units=m +no_defs"}, + {3094, "+proj=utm +zone=53 +ellps=bessel +units=m +no_defs"}, + {3095, "+proj=utm +zone=54 +ellps=bessel +units=m +no_defs"}, + {3096, "+proj=utm +zone=55 +ellps=bessel +units=m +no_defs"}, + {3097, "+proj=utm +zone=51 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3098, "+proj=utm +zone=52 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3099, "+proj=utm +zone=53 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3100, "+proj=utm +zone=54 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3101, "+proj=utm +zone=55 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3102, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=95169.31165862332 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3103, "+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defs"}, + {3104, "+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs"}, + {3105, "+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs"}, + {3106, "+proj=tmerc +lat_0=0 +lon_0=90 +k=0.9996 +x_0=500000 +y_0=0 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs"}, + {3107, "+proj=lcc +lat_1=-28 +lat_2=-36 +lat_0=-32 +lon_0=135 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3108, "+proj=tmerc +lat_0=49.5 +lon_0=-2.416666666666667 +k=0.999997 +x_0=47000 +y_0=50000 +ellps=GRS80 +units=m +no_defs"}, + {3109, "+proj=tmerc +lat_0=49.225 +lon_0=-2.135 +k=0.9999999000000001 +x_0=40000 +y_0=70000 +ellps=GRS80 +units=m +no_defs"}, + {3110, "+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x_0=2500000 +y_0=4500000 +ellps=aust_SA +units=m +no_defs"}, + {3111, "+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x_0=2500000 +y_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3112, "+proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=134 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3113, "+proj=tmerc +lat_0=-28 +lon_0=153 +k=0.99999 +x_0=50000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3114, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-80.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3115, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3116, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-74.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3117, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-71.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3118, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-68.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3119, "+proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +units=m +no_defs"}, + {3120, "+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5467000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {3121, "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs"}, + {3122, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs"}, + {3123, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs"}, + {3124, "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs"}, + {3125, "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs"}, + {3126, "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3127, "+proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3128, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3129, "+proj=tmerc +lat_0=0 +lon_0=22 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3130, "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3131, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3132, "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3133, "+proj=tmerc +lat_0=0 +lon_0=26 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3134, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3135, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3136, "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3137, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3138, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + //{3139, ""}, + {3140, "+proj=cass +lat_0=-18 +lon_0=178 +x_0=109435.392 +y_0=141622.272 +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +to_meter=0.201168 +no_defs"}, + {3141, "+proj=utm +zone=60 +south +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +units=m +no_defs"}, + {3142, "+proj=utm +zone=1 +south +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +units=m +no_defs"}, + {3143, "+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=2000000 +y_0=4000000 +ellps=WGS72 +units=m +no_defs"}, + //{3144, ""}, + //{3145, ""}, + {3146, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {3147, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {3148, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs"}, + {3149, "+proj=utm +zone=49 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs"}, + {3150, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {3151, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {3152, "+proj=tmerc +lat_0=0 +lon_0=18.05779 +k=0.99999425 +x_0=100178.1808 +y_0=-6500614.7836 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3153, "+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3154, "+proj=utm +zone=7 +ellps=GRS80 +units=m +no_defs"}, + {3155, "+proj=utm +zone=8 +ellps=GRS80 +units=m +no_defs"}, + {3156, "+proj=utm +zone=9 +ellps=GRS80 +units=m +no_defs"}, + {3157, "+proj=utm +zone=10 +ellps=GRS80 +units=m +no_defs"}, + {3158, "+proj=utm +zone=14 +ellps=GRS80 +units=m +no_defs"}, + {3159, "+proj=utm +zone=15 +ellps=GRS80 +units=m +no_defs"}, + {3160, "+proj=utm +zone=16 +ellps=GRS80 +units=m +no_defs"}, + {3161, "+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x_0=930000 +y_0=6430000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3162, "+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x_0=930000 +y_0=6430000 +ellps=GRS80 +units=m +no_defs"}, + {3163, "+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.33333333333333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3164, "+proj=utm +zone=58 +south +ellps=WGS84 +towgs84=-56.263,16.136,-22.856,0,0,0,0 +units=m +no_defs"}, + {3165, "+proj=lcc +lat_1=-22.24469175 +lat_2=-22.29469175 +lat_0=-22.26969175 +lon_0=166.44242575 +x_0=0.66 +y_0=1.02 +ellps=intl +units=m +no_defs"}, + {3166, "+proj=lcc +lat_1=-22.24472222222222 +lat_2=-22.29472222222222 +lat_0=-22.26972222222222 +lon_0=166.4425 +x_0=8.313000000000001 +y_0=-2.354 +ellps=intl +units=m +no_defs"}, + {3167, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=40000 +y_0=0 +a=6377295.664 +b=6356094.667915204 +to_meter=20.116756 +no_defs"}, + {3168, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=804670.24 +y_0=0 +a=6377295.664 +b=6356094.667915204 +units=m +no_defs"}, + {3169, "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3170, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3171, "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3172, "+proj=utm +zone=59 +south +ellps=intl +units=m +no_defs"}, + //{3173, ""}, + {3174, "+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568977 +lon_0=-84.455955 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3175, "+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568977 +lon_0=-83.248627 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3176, "+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y_0=0 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs"}, + {3177, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9965000000000001 +x_0=1000000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3178, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3179, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3180, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3181, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3182, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3183, "+proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3184, "+proj=utm +zone=24 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3185, "+proj=utm +zone=25 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3186, "+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3187, "+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3188, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3189, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3190, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3191, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3192, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3193, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3194, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3195, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3196, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3197, "+proj=tmerc +lat_0=0 +lon_0=23 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3198, "+proj=tmerc +lat_0=0 +lon_0=25 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3199, "+proj=utm +zone=32 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3200, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defs"}, + {3201, "+proj=utm +zone=33 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3202, "+proj=utm +zone=34 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3203, "+proj=utm +zone=35 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs"}, + {3204, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3205, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3206, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3207, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-174 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3208, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3209, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3210, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3211, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3212, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3213, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3214, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3215, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3216, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3217, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3218, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3219, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3220, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3221, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3222, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3223, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3224, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3225, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-18 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3226, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-6 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3227, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=6 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3228, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=18 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3229, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=30 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3230, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3231, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3232, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3233, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3234, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3235, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3236, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3237, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3238, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3239, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3240, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3241, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=174 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3242, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-153 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3243, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-135 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3244, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-117 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3245, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-99 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3246, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-81 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3247, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-63 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3248, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-27 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3249, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-9 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3250, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=9 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3251, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=27 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3252, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=45 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3253, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=63 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3254, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=81 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3255, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=99 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3256, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=117 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3257, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=135 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3258, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=153 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3259, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=171 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3260, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-168 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3261, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-144 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3262, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-120 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3263, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-96 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3264, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-72 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3265, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-48 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3266, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-24 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3267, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3268, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=24 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3269, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=48 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3270, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=72 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3271, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=96 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3272, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=120 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3273, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=144 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3274, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=168 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3275, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-165 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3276, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-135 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3277, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-105 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3278, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-75 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3279, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3280, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-15 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3281, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=15 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3282, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3283, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=75 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3284, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=105 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3285, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=135 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3286, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=165 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3287, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3288, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-90 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3289, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-30 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3290, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=30 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3291, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=90 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3292, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3293, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3294, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-78 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + //{3295, ""}, + {3296, "+proj=utm +zone=5 +south +ellps=GRS80 +units=m +no_defs"}, + {3297, "+proj=utm +zone=6 +south +ellps=GRS80 +units=m +no_defs"}, + {3298, "+proj=utm +zone=7 +south +ellps=GRS80 +units=m +no_defs"}, + {3299, "+proj=utm +zone=8 +south +ellps=GRS80 +units=m +no_defs"}, + {3300, "+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +units=m +no_defs"}, + {3301, "+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3302, "+proj=utm +zone=7 +south +ellps=intl +units=m +no_defs"}, + {3303, "+proj=utm +zone=7 +south +ellps=intl +towgs84=347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074 +units=m +no_defs"}, + {3304, "+proj=utm +zone=6 +south +ellps=intl +units=m +no_defs"}, + {3305, "+proj=utm +zone=6 +south +ellps=intl +towgs84=215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +units=m +no_defs"}, + {3306, "+proj=utm +zone=5 +south +ellps=intl +towgs84=217.037,86.959,23.956,0,0,0,0 +units=m +no_defs"}, + {3307, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0 +units=m +no_defs"}, + {3308, "+proj=lcc +lat_1=-30.75 +lat_2=-35.75 +lat_0=-33.25 +lon_0=147 +x_0=9300000 +y_0=4500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3309, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3310, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3311, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +units=m +no_defs"}, + {3312, "+proj=utm +zone=21 +ellps=intl +towgs84=-186,230,110,0,0,0,0 +units=m +no_defs"}, + {3313, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defs"}, + {3314, "+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=0 +lon_0=26 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {3315, "+proj=tmerc +lat_0=-9 +lon_0=26 +k=0.9998 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {3316, "+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3317, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3318, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3319, "+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3320, "+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3321, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3322, "+proj=tmerc +lat_0=0 +lon_0=20 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3323, "+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3324, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3325, "+proj=tmerc +lat_0=0 +lon_0=26 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3326, "+proj=tmerc +lat_0=0 +lon_0=28 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3327, "+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {3328, "+proj=sterea +lat_0=52.16666666666666 +lon_0=19.16666666666667 +k=0.999714 +x_0=500000 +y_0=500000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {3329, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {3330, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {3331, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {3332, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {3333, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {3334, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {3335, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs"}, + {3336, "+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,103,0,0,0,0 +units=m +no_defs"}, + {3337, "+proj=lcc +lat_1=-20.19506944444445 +lat_0=-20.19506944444445 +lon_0=57.52182777777778 +k_0=1 +x_0=1000000 +y_0=1000000 +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0,0 +units=m +no_defs"}, + {3338, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3339, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs"}, + {3340, "+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs"}, + {3341, "+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs"}, + {3342, "+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs"}, + {3343, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3344, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3345, "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3346, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3347, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3348, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs"}, + {3349, "+proj=merc +lon_0=-150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3350, "+proj=tmerc +lat_0=0.1 +lon_0=21.95 +k=1 +x_0=250000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {3351, "+proj=tmerc +lat_0=0.1 +lon_0=24.95 +k=1 +x_0=1250000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {3352, "+proj=tmerc +lat_0=0.1 +lon_0=27.95 +k=1 +x_0=2250000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {3353, "+proj=utm +zone=32 +south +ellps=intl +units=m +no_defs"}, + {3354, "+proj=utm +zone=32 +south +ellps=intl +units=m +no_defs"}, + {3355, "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=810000 +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0 +units=m +no_defs"}, + {3356, "+proj=utm +zone=17 +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,0,0,0 +units=m +no_defs"}, + {3357, "+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs"}, + {3358, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3359, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024385 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {3360, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3361, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs"}, + {3362, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3363, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3364, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3365, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3366, "+proj=cass +lat_0=22.31213333333334 +lon_0=114.1785555555556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=6378293.645208759 +b=6356617.987679838 +units=m +no_defs"}, + {3367, "+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defs"}, + {3368, "+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs"}, + {3369, "+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs"}, + {3370, "+proj=utm +zone=59 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3371, "+proj=utm +zone=60 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3372, "+proj=utm +zone=59 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3373, "+proj=utm +zone=60 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3374, "+proj=utm +zone=29 +ellps=intl +units=m +no_defs"}, + {3375, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257964666666 +k=0.99984 +x_0=804671 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3376, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.99984 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3377, "+proj=cass +lat_0=2.121679744444445 +lon_0=103.4279362361111 +x_0=-14810.562 +y_0=8758.32 +ellps=GRS80 +units=m +no_defs"}, + {3378, "+proj=cass +lat_0=2.682347636111111 +lon_0=101.9749050416667 +x_0=3673.785 +y_0=-4240.573 +ellps=GRS80 +units=m +no_defs"}, + {3379, "+proj=cass +lat_0=3.769388088888889 +lon_0=102.3682989833333 +x_0=-7368.228 +y_0=6485.858 +ellps=GRS80 +units=m +no_defs"}, + {3380, "+proj=cass +lat_0=3.68464905 +lon_0=101.3891079138889 +x_0=-34836.161 +y_0=56464.049 +ellps=GRS80 +units=m +no_defs"}, + {3381, "+proj=cass +lat_0=4.9762852 +lon_0=103.070275625 +x_0=19594.245 +y_0=3371.895 +ellps=GRS80 +units=m +no_defs"}, + {3382, "+proj=cass +lat_0=5.421517541666667 +lon_0=100.3443769638889 +x_0=-23.414 +y_0=62.283 +ellps=GRS80 +units=m +no_defs"}, + {3383, "+proj=cass +lat_0=5.964672713888889 +lon_0=100.6363711111111 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3384, "+proj=cass +lat_0=4.859063022222222 +lon_0=100.8154105861111 +x_0=-1.769 +y_0=133454.779 +ellps=GRS80 +units=m +no_defs"}, + {3385, "+proj=cass +lat_0=5.972543658333334 +lon_0=102.2952416694444 +x_0=13227.851 +y_0=8739.894 +ellps=GRS80 +units=m +no_defs"}, + {3386, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {3387, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=5500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {3388, "+proj=merc +lon_0=51 +k=1 +x_0=0 +y_0=0 +ellps=krass +units=m +no_defs"}, + {3389, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {3390, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {3391, "+proj=utm +zone=37 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defs"}, + {3392, "+proj=utm +zone=38 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defs"}, + {3393, "+proj=utm +zone=39 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defs"}, + {3394, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defs"}, + {3395, "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3396, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3397, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3398, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3399, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {3400, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3401, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3402, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3403, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3404, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3405, "+proj=utm +zone=48 +ellps=WGS84 +units=m +no_defs"}, + {3406, "+proj=utm +zone=49 +ellps=WGS84 +units=m +no_defs"}, + {3407, "+proj=cass +lat_0=22.31213333333334 +lon_0=114.1785555555556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.3047972654 +no_defs"}, + {3408, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defs"}, + {3409, "+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defs"}, + {3410, "+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defs"}, + {3411, "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs"}, + {3412, "+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs"}, + {3413, "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3414, "+proj=tmerc +lat_0=1.366666666666667 +lon_0=103.8333333333333 +k=1 +x_0=28001.642 +y_0=38744.572 +ellps=WGS84 +units=m +no_defs"}, + {3415, "+proj=lcc +lat_1=18 +lat_2=24 +lat_0=21 +lon_0=114 +x_0=500000 +y_0=500000 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {3416, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs"}, + {3417, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3418, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3419, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3420, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3421, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3422, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3423, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3424, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3425, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3426, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3427, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3428, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3429, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3430, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3431, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3432, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3433, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3434, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3435, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3436, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3437, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3438, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3439, "+proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs"}, + {3440, "+proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs"}, + {3441, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3442, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3443, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3444, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3445, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3446, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3447, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=50.797815 +lon_0=4.359215833333333 +x_0=150328 +y_0=166262 +ellps=GRS80 +units=m +no_defs"}, + {3448, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=750000 +y_0=650000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3449, "+proj=utm +zone=17 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3450, "+proj=utm +zone=18 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3451, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3452, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3453, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3454, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3455, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3456, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3457, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3458, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3459, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3460, "+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=2000000 +y_0=4000000 +ellps=WGS72 +units=m +no_defs"}, + {3461, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +units=m +no_defs"}, + {3462, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +units=m +no_defs"}, + {3463, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3464, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3465, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3466, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3467, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3468, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3469, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3470, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3471, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3472, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3473, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3474, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3475, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3476, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3477, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3478, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3479, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3480, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3481, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3482, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3483, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3484, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3485, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3486, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3487, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3488, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3489, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3490, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3491, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3492, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3493, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3494, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3495, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3496, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3497, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3498, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3499, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3500, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3501, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3502, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3503, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3504, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3505, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3506, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3507, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3508, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3509, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3510, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3511, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3512, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3513, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3514, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3515, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3516, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3517, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3518, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3519, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3520, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3521, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3522, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3523, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3524, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3525, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3526, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3527, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3528, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3529, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3530, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3531, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3532, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3533, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3534, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3535, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3536, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3537, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3538, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3539, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3540, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3541, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3542, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3543, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3544, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3545, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3546, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3547, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3548, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3549, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3550, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3551, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3552, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3553, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3554, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3555, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3556, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3557, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3558, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3559, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3560, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=999999.9999898402 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3561, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs"}, + {3562, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs"}, + {3563, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs"}, + {3564, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs"}, + {3565, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs"}, + {3566, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=2000000.00001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3567, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3568, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=999999.9999898402 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3569, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=2000000.00001016 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3570, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0=3000000 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3571, "+proj=laea +lat_0=90 +lon_0=180 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3572, "+proj=laea +lat_0=90 +lon_0=-150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3573, "+proj=laea +lat_0=90 +lon_0=-100 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3574, "+proj=laea +lat_0=90 +lon_0=-40 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3575, "+proj=laea +lat_0=90 +lon_0=10 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3576, "+proj=laea +lat_0=90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3577, "+proj=aea +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=132 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3578, "+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +lon_0=-132.5 +x_0=500000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3579, "+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +lon_0=-132.5 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {3580, "+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3581, "+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3582, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3583, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3584, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3585, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3586, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3587, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3588, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3589, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3590, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3591, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3592, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3593, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3594, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3595, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3596, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3597, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3598, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3599, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3600, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3601, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3602, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3603, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3604, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3605, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3606, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3607, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3608, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3609, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3610, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3611, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3612, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3613, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3614, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3615, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3616, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3617, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3618, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3619, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3620, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3621, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3622, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3623, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3624, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3625, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3626, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3627, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3628, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3629, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3630, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3631, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3632, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3633, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3634, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3635, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3636, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3637, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3638, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3639, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3640, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3641, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3642, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3643, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3644, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3645, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3646, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3647, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3648, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3649, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3650, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3651, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3652, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3653, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3654, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3655, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3656, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3657, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3658, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3659, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3660, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3661, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3662, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3663, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3664, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3665, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3666, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3667, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3668, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3669, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3670, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3671, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3672, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3673, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3674, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3675, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3676, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3677, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=2000000.00001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3678, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3679, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3680, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3681, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3682, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs"}, + {3683, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3684, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3685, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3686, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3687, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3688, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3689, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3690, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3691, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3692, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3693, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3694, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3695, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3696, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3697, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3698, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3699, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3700, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3701, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3702, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3703, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3704, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3705, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3706, "+proj=utm +zone=59 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3707, "+proj=utm +zone=60 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3708, "+proj=utm +zone=1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3709, "+proj=utm +zone=2 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3710, "+proj=utm +zone=3 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3711, "+proj=utm +zone=4 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3712, "+proj=utm +zone=5 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3713, "+proj=utm +zone=6 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3714, "+proj=utm +zone=7 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3715, "+proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3716, "+proj=utm +zone=9 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3717, "+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3718, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3719, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3720, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3721, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3722, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3723, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3724, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3725, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3726, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3727, "+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333333333 +k=1 +x_0=160000 +y_0=50000 +ellps=intl +units=m +no_defs"}, + {3728, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3729, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3730, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3731, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3732, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3733, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3734, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3735, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3736, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3737, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3738, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3739, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3740, "+proj=utm +zone=10 +ellps=GRS80 +units=m +no_defs"}, + {3741, "+proj=utm +zone=11 +ellps=GRS80 +units=m +no_defs"}, + {3742, "+proj=utm +zone=12 +ellps=GRS80 +units=m +no_defs"}, + {3743, "+proj=utm +zone=13 +ellps=GRS80 +units=m +no_defs"}, + {3744, "+proj=utm +zone=14 +ellps=GRS80 +units=m +no_defs"}, + {3745, "+proj=utm +zone=15 +ellps=GRS80 +units=m +no_defs"}, + {3746, "+proj=utm +zone=16 +ellps=GRS80 +units=m +no_defs"}, + {3747, "+proj=utm +zone=17 +ellps=GRS80 +units=m +no_defs"}, + {3748, "+proj=utm +zone=18 +ellps=GRS80 +units=m +no_defs"}, + {3749, "+proj=utm +zone=19 +ellps=GRS80 +units=m +no_defs"}, + {3750, "+proj=utm +zone=4 +ellps=GRS80 +units=m +no_defs"}, + {3751, "+proj=utm +zone=5 +ellps=GRS80 +units=m +no_defs"}, + {3752, "+proj=merc +lon_0=100 +lat_ts=-41 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3753, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3754, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3755, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3756, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3757, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3758, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3759, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {3760, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {3761, "+proj=utm +zone=22 +ellps=GRS80 +units=m +no_defs"}, + {3762, "+proj=lcc +lat_1=-54 +lat_2=-54.75 +lat_0=-55 +lon_0=-37 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {3763, "+proj=tmerc +lat_0=39.66825833333333 +lon_0=-8.133108333333334 +k=1 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3764, "+proj=tmerc +lat_0=-44 +lon_0=-176.5 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3765, "+proj=tmerc +lat_0=0 +lon_0=16.5 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3766, "+proj=lcc +lat_1=45.91666666666666 +lat_2=43.08333333333334 +lat_0=0 +lon_0=16.5 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3767, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3768, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3769, "+proj=utm +zone=20 +ellps=clrk66 +units=m +no_defs"}, + {3770, "+proj=tmerc +lat_0=32 +lon_0=-64.75 +k=1 +x_0=550000 +y_0=100000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3771, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3772, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3773, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3774, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3775, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3776, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3777, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3778, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3779, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3780, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3781, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3782, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3783, "+proj=tmerc +lat_0=-25.06855261111111 +lon_0=-130.1129671111111 +k=1 +x_0=14200 +y_0=15500 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3784, "+proj=utm +zone=9 +south +ellps=intl +towgs84=185,165,42,0,0,0,0 +units=m +no_defs"}, + {3785, "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3786, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371007 +b=6371007 +units=m +no_defs"}, + {3787, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {3788, "+proj=tmerc +lat_0=0 +lon_0=166 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3789, "+proj=tmerc +lat_0=0 +lon_0=169 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3790, "+proj=tmerc +lat_0=0 +lon_0=179 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3791, "+proj=tmerc +lat_0=0 +lon_0=-178 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3793, "+proj=tmerc +lat_0=0 +lon_0=-176.5 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3794, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3795, "+proj=lcc +lat_1=23 +lat_2=21.7 +lat_0=22.35 +lon_0=-81 +x_0=500000 +y_0=280296.016 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3796, "+proj=lcc +lat_1=21.3 +lat_2=20.13333333333333 +lat_0=20.71666666666667 +lon_0=-76.83333333333333 +x_0=500000 +y_0=229126.939 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3797, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3798, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3799, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {3800, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {3801, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {3802, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + //{3812, ""}, + //{3814, ""}, + //{3815, ""}, + //{3816, ""}, + {3819, "+proj=longlat +ellps=bessel +towgs84=595.48,121.69,515.35,4.115,2.9383,-0.853,-0.7029504596901044 +no_defs"}, + {3821, "+proj=longlat +ellps=aust_SA +no_defs"}, + //{3822, ""}, + {3823, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {3824, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{3825, ""}, + //{3826, ""}, + //{3827, ""}, + //{3828, ""}, + //{3829, ""}, + //{3832, ""}, + //{3833, ""}, + //{3834, ""}, + //{3835, ""}, + //{3836, ""}, + //{3837, ""}, + //{3838, ""}, + //{3839, ""}, + //{3840, ""}, + //{3841, ""}, + //{3842, ""}, + //{3843, ""}, + //{3844, ""}, + //{3845, ""}, + //{3846, ""}, + //{3847, ""}, + //{3848, ""}, + //{3849, ""}, + //{3850, ""}, + {3920, "+proj=utm +zone=20 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +units=m +no_defs"}, + {3942, "+proj=lcc +lat_1=41.25 +lat_2=42.75 +lat_0=42 +lon_0=3 +x_0=1700000 +y_0=1200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3943, "+proj=lcc +lat_1=42.25 +lat_2=43.75 +lat_0=43 +lon_0=3 +x_0=1700000 +y_0=2200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3944, "+proj=lcc +lat_1=43.25 +lat_2=44.75 +lat_0=44 +lon_0=3 +x_0=1700000 +y_0=3200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3945, "+proj=lcc +lat_1=44.25 +lat_2=45.75 +lat_0=45 +lon_0=3 +x_0=1700000 +y_0=4200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3946, "+proj=lcc +lat_1=45.25 +lat_2=46.75 +lat_0=46 +lon_0=3 +x_0=1700000 +y_0=5200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3947, "+proj=lcc +lat_1=46.25 +lat_2=47.75 +lat_0=47 +lon_0=3 +x_0=1700000 +y_0=6200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3948, "+proj=lcc +lat_1=47.25 +lat_2=48.75 +lat_0=48 +lon_0=3 +x_0=1700000 +y_0=7200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3949, "+proj=lcc +lat_1=48.25 +lat_2=49.75 +lat_0=49 +lon_0=3 +x_0=1700000 +y_0=8200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3950, "+proj=lcc +lat_1=49.25 +lat_2=50.75 +lat_0=50 +lon_0=3 +x_0=1700000 +y_0=9200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {3991, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {3992, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=30480.06096012192 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + //{3993, ""}, + //{3994, ""}, + //{3995, ""}, + //{3996, ""}, + //{3997, ""}, + {4001, "+proj=longlat +ellps=airy +no_defs"}, + {4002, "+proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs"}, + {4003, "+proj=longlat +ellps=aust_SA +no_defs"}, + {4004, "+proj=longlat +ellps=bessel +no_defs"}, + {4005, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +no_defs"}, + {4006, "+proj=longlat +ellps=bess_nam +no_defs"}, + {4007, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs"}, + {4008, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4009, "+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs"}, + {4010, "+proj=longlat +a=6378300.789 +b=6356566.435 +no_defs"}, + {4011, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4012, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4013, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs"}, + {4014, "+proj=longlat +a=6378249.2 +b=6356514.996941779 +no_defs"}, + {4015, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs"}, + {4016, "+proj=longlat +ellps=evrstSS +no_defs"}, + {4018, "+proj=longlat +a=6377304.063 +b=6356103.038993155 +no_defs"}, + {4019, "+proj=longlat +ellps=GRS80 +no_defs"}, + {4020, "+proj=longlat +ellps=helmert +no_defs"}, + {4021, "+proj=longlat +a=6378160 +b=6356774.50408554 +no_defs"}, + {4022, "+proj=longlat +ellps=intl +no_defs"}, + {4024, "+proj=longlat +ellps=krass +no_defs"}, + {4025, "+proj=longlat +ellps=WGS66 +no_defs"}, + {4027, "+proj=longlat +a=6376523 +b=6355862.933255573 +no_defs"}, + {4028, "+proj=longlat +a=6378298.3 +b=6356657.142669561 +no_defs"}, + {4029, "+proj=longlat +a=6378300 +b=6356751.689189189 +no_defs"}, + {4030, "+proj=longlat +ellps=WGS84 +no_defs"}, + {4031, "+proj=longlat +ellps=WGS84 +no_defs"}, + {4032, "+proj=longlat +a=6378136.2 +b=6356751.516927429 +no_defs"}, + {4033, "+proj=longlat +a=6378136.3 +b=6356751.616592146 +no_defs"}, + {4034, "+proj=longlat +a=6378249.144808011 +b=6356514.966204134 +no_defs"}, + {4035, "+proj=longlat +a=6371000 +b=6371000 +no_defs"}, + {4036, "+proj=longlat +ellps=GRS67 +no_defs"}, + {4041, "+proj=longlat +a=6378135 +b=6356750.304921594 +no_defs"}, + {4042, "+proj=longlat +a=6377299.36559538 +b=6356098.359005157 +no_defs"}, + {4043, "+proj=longlat +ellps=WGS72 +no_defs"}, + {4044, "+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defs"}, + {4045, "+proj=longlat +a=6377299.151 +b=6356098.145120132 +no_defs"}, + {4047, "+proj=longlat +a=6371007 +b=6371007 +no_defs"}, + {4052, "+proj=longlat +a=6370997 +b=6370997 +no_defs"}, + {4053, "+proj=longlat +a=6371228 +b=6371228 +no_defs"}, + {4054, "+proj=longlat +a=6378273 +b=6356889.449 +no_defs"}, + {4055, "+proj=longlat +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4120, "+proj=longlat +ellps=bessel +no_defs"}, + {4121, "+proj=longlat +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0,0,0,0 +no_defs"}, + {4122, "+proj=longlat +a=6378135 +b=6356750.304921594 +no_defs"}, + {4123, "+proj=longlat +ellps=intl +no_defs"}, + {4124, "+proj=longlat +ellps=bessel +no_defs"}, + {4125, "+proj=longlat +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +no_defs"}, + {4126, "+proj=longlat +ellps=GRS80 +no_defs"}, + {4127, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4128, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4129, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4130, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +no_defs"}, + {4131, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs"}, + {4132, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4133, "+proj=longlat +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +no_defs"}, + {4134, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4135, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4136, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4137, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4138, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4139, "+proj=longlat +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +no_defs"}, + {4140, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4141, "+proj=longlat +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +no_defs"}, + {4142, "+proj=longlat +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +no_defs"}, + {4143, "+proj=longlat +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +no_defs"}, + {4144, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs"}, + {4145, "+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defs"}, + {4146, "+proj=longlat +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +no_defs"}, + {4147, "+proj=longlat +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +no_defs"}, + {4148, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4149, "+proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +no_defs"}, + {4150, "+proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +no_defs"}, + {4151, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4152, "+proj=longlat +ellps=GRS80 +no_defs"}, + {4153, "+proj=longlat +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +no_defs"}, + {4154, "+proj=longlat +ellps=intl +no_defs"}, + {4155, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +no_defs"}, + {4156, "+proj=longlat +ellps=bessel +no_defs"}, + {4157, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs"}, + {4158, "+proj=longlat +ellps=intl +no_defs"}, + {4159, "+proj=longlat +ellps=intl +no_defs"}, + {4160, "+proj=longlat +ellps=intl +no_defs"}, + {4161, "+proj=longlat +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +no_defs"}, + {4162, "+proj=longlat +ellps=bessel +no_defs"}, + {4163, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4164, "+proj=longlat +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +no_defs"}, + {4165, "+proj=longlat +ellps=intl +towgs84=-173,253,27,0,0,0,0 +no_defs"}, + {4166, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4167, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4168, "+proj=longlat +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +no_defs"}, + {4169, "+proj=longlat +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +no_defs"}, + {4170, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4171, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4172, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4173, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4174, "+proj=longlat +a=6378300 +b=6356751.689189189 +no_defs"}, + {4175, "+proj=longlat +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +no_defs"}, + {4176, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4178, "+proj=longlat +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +no_defs"}, + {4179, "+proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +no_defs"}, + {4180, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4181, "+proj=longlat +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +no_defs"}, + {4182, "+proj=longlat +ellps=intl +no_defs"}, + {4183, "+proj=longlat +ellps=intl +towgs84=-104,167,-38,0,0,0,0 +no_defs"}, + {4184, "+proj=longlat +ellps=intl +towgs84=-203,141,53,0,0,0,0 +no_defs"}, + {4185, "+proj=longlat +ellps=intl +no_defs"}, + {4188, "+proj=longlat +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +no_defs"}, + {4189, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4190, "+proj=longlat +ellps=GRS80 +no_defs"}, + {4191, "+proj=longlat +ellps=krass +no_defs"}, + {4192, "+proj=longlat +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +no_defs"}, + {4193, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +no_defs"}, + {4194, "+proj=longlat +ellps=intl +no_defs"}, + {4195, "+proj=longlat +ellps=intl +towgs84=105,326,-102.5,0,0,0.814,-0.6 +no_defs"}, + {4196, "+proj=longlat +ellps=intl +towgs84=-45,417,-3.5,0,0,0.814,-0.6 +no_defs"}, + {4197, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4198, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4199, "+proj=longlat +ellps=intl +no_defs"}, + {4200, "+proj=longlat +ellps=krass +no_defs"}, + {4201, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4202, "+proj=longlat +ellps=aust_SA +no_defs"}, + {4203, "+proj=longlat +ellps=aust_SA +no_defs"}, + {4204, "+proj=longlat +ellps=intl +no_defs"}, + {4205, "+proj=longlat +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +no_defs"}, + {4206, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4207, "+proj=longlat +ellps=intl +no_defs"}, + {4208, "+proj=longlat +ellps=intl +no_defs"}, + {4209, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs"}, + {4210, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4211, "+proj=longlat +ellps=bessel +no_defs"}, + {4212, "+proj=longlat +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +no_defs"}, + {4213, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-106,-87,188,0,0,0,0 +no_defs"}, + {4214, "+proj=longlat +ellps=krass +no_defs"}, + {4215, "+proj=longlat +ellps=intl +no_defs"}, + {4216, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4218, "+proj=longlat +ellps=intl +towgs84=307,304,-318,0,0,0,0 +no_defs"}, + {4219, "+proj=longlat +ellps=bessel +towgs84=-384,664,-48,0,0,0,0 +no_defs"}, + {4220, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4221, "+proj=longlat +ellps=intl +no_defs"}, + {4222, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs"}, + {4223, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4224, "+proj=longlat +ellps=intl +towgs84=-134,229,-29,0,0,0,0 +no_defs"}, + {4225, "+proj=longlat +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +no_defs"}, + {4226, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4227, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4228, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4229, "+proj=longlat +ellps=helmert +no_defs"}, + {4230, "+proj=longlat +ellps=intl +no_defs"}, + {4231, "+proj=longlat +ellps=intl +no_defs"}, + {4232, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4233, "+proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 +no_defs"}, + {4234, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4235, "+proj=longlat +ellps=intl +no_defs"}, + {4236, "+proj=longlat +ellps=intl +towgs84=-637,-549,-203,0,0,0,0 +no_defs"}, + {4237, "+proj=longlat +ellps=GRS67 +no_defs"}, + {4238, "+proj=longlat +a=6378160 +b=6356774.50408554 +no_defs"}, + {4239, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +no_defs"}, + {4240, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs"}, + {4241, "+proj=longlat +a=6378249.144808011 +b=6356514.966204134 +no_defs"}, + {4242, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4243, "+proj=longlat +a=6377299.36559538 +b=6356098.359005157 +no_defs"}, + {4244, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=-97,787,86,0,0,0,0 +no_defs"}, + {4245, "+proj=longlat +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +no_defs"}, + {4246, "+proj=longlat +ellps=clrk80 +towgs84=-294.7,-200.1,525.5,0,0,0,0 +no_defs"}, + {4247, "+proj=longlat +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +no_defs"}, + {4248, "+proj=longlat +ellps=intl +no_defs"}, + {4249, "+proj=longlat +ellps=intl +no_defs"}, + {4250, "+proj=longlat +ellps=clrk80 +towgs84=-130,29,364,0,0,0,0 +no_defs"}, + {4251, "+proj=longlat +ellps=clrk80 +towgs84=-90,40,88,0,0,0,0 +no_defs"}, + {4252, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4253, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4254, "+proj=longlat +ellps=intl +no_defs"}, + {4255, "+proj=longlat +ellps=intl +towgs84=-333,-222,114,0,0,0,0 +no_defs"}, + {4256, "+proj=longlat +ellps=clrk80 +towgs84=41,-220,-134,0,0,0,0 +no_defs"}, + {4257, "+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +no_defs"}, + {4258, "+proj=longlat +ellps=GRS80 +no_defs"}, + {4259, "+proj=longlat +ellps=intl +no_defs"}, + {4260, "+proj=longlat +ellps=clrk80 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +no_defs"}, + {4261, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +no_defs"}, + {4262, "+proj=longlat +ellps=bessel +towgs84=639,405,60,0,0,0,0 +no_defs"}, + {4263, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4264, "+proj=longlat +ellps=intl +towgs84=-252.95,-4.11,-96.38,0,0,0,0 +no_defs"}, + {4265, "+proj=longlat +ellps=intl +no_defs"}, + {4266, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4267, "+proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs"}, + {4268, "+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs"}, + {4269, "+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs"}, + {4270, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4271, "+proj=longlat +ellps=intl +no_defs"}, + {4272, "+proj=longlat +ellps=intl +datum=nzgd49 +no_defs"}, + {4273, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +no_defs"}, + {4274, "+proj=longlat +ellps=intl +no_defs"}, + {4275, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +no_defs"}, + {4276, "+proj=longlat +ellps=WGS66 +no_defs"}, + {4277, "+proj=longlat +ellps=airy +datum=OSGB36 +no_defs"}, + {4278, "+proj=longlat +ellps=airy +no_defs"}, + {4279, "+proj=longlat +ellps=airy +no_defs"}, + {4280, "+proj=longlat +ellps=bessel +no_defs"}, + {4281, "+proj=longlat +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +no_defs"}, + {4282, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4283, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4284, "+proj=longlat +ellps=krass +no_defs"}, + {4285, "+proj=longlat +ellps=intl +no_defs"}, + {4286, "+proj=longlat +ellps=helmert +no_defs"}, + {4287, "+proj=longlat +ellps=intl +towgs84=164,138,-189,0,0,0,0 +no_defs"}, + {4288, "+proj=longlat +ellps=intl +no_defs"}, + {4289, "+proj=longlat +ellps=bessel +no_defs"}, + {4291, "+proj=longlat +ellps=GRS67 +no_defs"}, + {4292, "+proj=longlat +ellps=intl +towgs84=-355,21,72,0,0,0,0 +no_defs"}, + {4293, "+proj=longlat +ellps=bess_nam +no_defs"}, + {4294, "+proj=longlat +ellps=bessel +no_defs"}, + {4295, "+proj=longlat +ellps=bessel +no_defs"}, + {4296, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4297, "+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +no_defs"}, + {4298, "+proj=longlat +ellps=evrstSS +no_defs"}, + {4299, "+proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs"}, + {4300, "+proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs"}, + {4301, "+proj=longlat +ellps=bessel +no_defs"}, + {4302, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs"}, + {4303, "+proj=longlat +ellps=helmert +no_defs"}, + {4304, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +no_defs"}, + {4306, "+proj=longlat +ellps=bessel +no_defs"}, + {4307, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4308, "+proj=longlat +ellps=bessel +no_defs"}, + {4309, "+proj=longlat +ellps=intl +towgs84=-155,171,37,0,0,0,0 +no_defs"}, + {4310, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4311, "+proj=longlat +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +no_defs"}, + {4312, "+proj=longlat +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +no_defs"}, + {4313, "+proj=longlat +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +no_defs"}, + {4314, "+proj=longlat +ellps=bessel +datum=potsdam +no_defs"}, + {4315, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +no_defs"}, + {4316, "+proj=longlat +ellps=intl +no_defs"}, + {4317, "+proj=longlat +ellps=krass +no_defs"}, + {4318, "+proj=longlat +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +no_defs"}, + {4319, "+proj=longlat +ellps=GRS80 +no_defs"}, + {4322, "+proj=longlat +ellps=WGS72 +no_defs"}, + {4324, "+proj=longlat +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +no_defs"}, + {4326, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"}, + {4327, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"}, + //{4328, ""}, + {4329, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"}, + //{4330, ""}, + //{4331, ""}, + //{4332, ""}, + //{4333, ""}, + //{4334, ""}, + //{4335, ""}, + //{4336, ""}, + //{4337, ""}, + //{4338, ""}, + {4339, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4340, ""}, + {4341, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4342, ""}, + {4343, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4344, ""}, + {4345, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4346, ""}, + {4347, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4348, ""}, + {4349, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4350, ""}, + {4351, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4352, ""}, + {4353, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4354, ""}, + {4355, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4356, ""}, + {4357, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,-0.0,0.0,0.0,0.0 +no_defs"}, + //{4358, ""}, + {4359, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs"}, + //{4360, ""}, + {4361, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs"}, + //{4362, ""}, + {4363, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4364, ""}, + {4365, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4366, ""}, + {4367, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4368, ""}, + {4369, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4370, ""}, + {4371, "+proj=longlat +ellps=GRS80 +towgs84=2.0,2.0,-2.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4372, ""}, + {4373, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4374, ""}, + {4375, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4376, ""}, + {4377, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4378, ""}, + {4379, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4380, ""}, + {4381, "+proj=longlat +ellps=intl +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4382, ""}, + {4383, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4384, ""}, + //{4385, ""}, + {4386, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4387, ""}, + {4388, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4389, ""}, + {4600, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4601, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4602, "+proj=longlat +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +no_defs"}, + {4603, "+proj=longlat +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +no_defs"}, + {4604, "+proj=longlat +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +no_defs"}, + {4605, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4606, "+proj=longlat +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +no_defs"}, + {4607, "+proj=longlat +ellps=clrk80 +towgs84=195.671,332.517,274.607,0,0,0,0 +no_defs"}, + {4608, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4609, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4610, "+proj=longlat +a=6378140 +b=6356755.288157528 +no_defs"}, + {4611, "+proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +no_defs"}, + {4612, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4613, "+proj=longlat +ellps=bessel +no_defs"}, + {4614, "+proj=longlat +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +no_defs"}, + {4615, "+proj=longlat +ellps=intl +towgs84=-499,-249,314,0,0,0,0 +no_defs"}, + {4616, "+proj=longlat +ellps=intl +no_defs"}, + {4617, "+proj=longlat +ellps=GRS80 +no_defs"}, + {4618, "+proj=longlat +ellps=aust_SA +no_defs"}, + {4619, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4620, "+proj=longlat +ellps=clrk80 +towgs84=-106,-129,165,0,0,0,0 +no_defs"}, + {4621, "+proj=longlat +ellps=intl +towgs84=137,248,-430,0,0,0,0 +no_defs"}, + {4622, "+proj=longlat +ellps=intl +no_defs"}, + {4623, "+proj=longlat +ellps=intl +towgs84=-186,230,110,0,0,0,0 +no_defs"}, + {4624, "+proj=longlat +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +no_defs"}, + {4625, "+proj=longlat +ellps=intl +no_defs"}, + {4626, "+proj=longlat +ellps=intl +no_defs"}, + {4627, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4628, "+proj=longlat +ellps=intl +towgs84=162,117,154,0,0,0,0 +no_defs"}, + {4629, "+proj=longlat +ellps=intl +no_defs"}, + {4630, "+proj=longlat +ellps=intl +no_defs"}, + {4631, "+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 +no_defs"}, + {4632, "+proj=longlat +ellps=intl +towgs84=-382,-59,-262,0,0,0,0 +no_defs"}, + {4633, "+proj=longlat +ellps=intl +no_defs"}, + {4634, "+proj=longlat +ellps=intl +no_defs"}, + {4635, "+proj=longlat +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +no_defs"}, + {4636, "+proj=longlat +ellps=intl +towgs84=365,194,166,0,0,0,0 +no_defs"}, + {4637, "+proj=longlat +ellps=intl +towgs84=325,154,172,0,0,0,0 +no_defs"}, + {4638, "+proj=longlat +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 +no_defs"}, + {4639, "+proj=longlat +ellps=intl +no_defs"}, + {4640, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4641, "+proj=longlat +ellps=intl +no_defs"}, + {4642, "+proj=longlat +ellps=intl +no_defs"}, + {4643, "+proj=longlat +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7 +no_defs"}, + {4644, "+proj=longlat +ellps=intl +no_defs"}, + {4645, "+proj=longlat +ellps=intl +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4646, "+proj=longlat +ellps=intl +no_defs"}, + {4657, "+proj=longlat +a=6377019.27 +b=6355762.5391 +towgs84=-28,199,5,0,0,0,0 +no_defs"}, + {4658, "+proj=longlat +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +no_defs"}, + {4659, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4660, "+proj=longlat +ellps=intl +towgs84=982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805 +no_defs"}, + {4661, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4662, "+proj=longlat +ellps=intl +no_defs"}, + {4663, "+proj=longlat +ellps=intl +no_defs"}, + {4664, "+proj=longlat +ellps=intl +no_defs"}, + {4665, "+proj=longlat +ellps=intl +no_defs"}, + {4666, "+proj=longlat +ellps=bessel +no_defs"}, + {4667, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4668, "+proj=longlat +ellps=intl +towgs84=-86,-98,-119,0,0,0,0 +no_defs"}, + {4669, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4670, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4671, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {4672, "+proj=longlat +ellps=intl +towgs84=175,-38,113,0,0,0,0 +no_defs"}, + {4673, "+proj=longlat +ellps=intl +towgs84=174.05,-25.49,112.57,-0,-0,0.554,0.2263 +no_defs"}, + {4674, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4675, "+proj=longlat +ellps=clrk66 +towgs84=-100,-248,259,0,0,0,0 +no_defs"}, + {4676, "+proj=longlat +ellps=krass +no_defs"}, + {4677, "+proj=longlat +ellps=krass +no_defs"}, + {4678, "+proj=longlat +ellps=krass +towgs84=44.585,-131.212,-39.544,0,0,0,0 +no_defs"}, + {4679, "+proj=longlat +ellps=clrk80 +towgs84=-80.01,253.26,291.19,0,0,0,0 +no_defs"}, + {4680, "+proj=longlat +ellps=clrk80 +towgs84=124.5,-63.5,-281,0,0,0,0 +no_defs"}, + {4681, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4682, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs"}, + {4683, "+proj=longlat +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +no_defs"}, + {4684, "+proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 +no_defs"}, + {4685, "+proj=longlat +ellps=intl +no_defs"}, + {4686, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4687, "+proj=longlat +ellps=GRS80 +no_defs"}, + {4688, "+proj=longlat +ellps=intl +towgs84=347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074 +no_defs"}, + {4689, "+proj=longlat +ellps=intl +no_defs"}, + {4690, "+proj=longlat +ellps=intl +no_defs"}, + {4691, "+proj=longlat +ellps=intl +towgs84=215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +no_defs"}, + {4692, "+proj=longlat +ellps=intl +towgs84=217.037,86.959,23.956,0,0,0,0 +no_defs"}, + {4693, "+proj=longlat +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0 +no_defs"}, + {4694, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4695, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4696, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4697, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4698, "+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 +no_defs"}, + {4699, "+proj=longlat +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0,0 +no_defs"}, + {4700, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4701, "+proj=longlat +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +no_defs"}, + {4702, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4703, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4704, "+proj=longlat +ellps=intl +no_defs"}, + {4705, "+proj=longlat +ellps=intl +no_defs"}, + {4706, "+proj=longlat +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0 +no_defs"}, + {4707, "+proj=longlat +ellps=intl +towgs84=114,-116,-333,0,0,0,0 +no_defs"}, + {4708, "+proj=longlat +ellps=aust_SA +towgs84=-491,-22,435,0,0,0,0 +no_defs"}, + {4709, "+proj=longlat +ellps=intl +towgs84=145,75,-272,0,0,0,0 +no_defs"}, + {4710, "+proj=longlat +ellps=intl +towgs84=-320,550,-494,0,0,0,0 +no_defs"}, + {4711, "+proj=longlat +ellps=intl +towgs84=124,-234,-25,0,0,0,0 +no_defs"}, + {4712, "+proj=longlat +ellps=intl +towgs84=-205,107,53,0,0,0,0 +no_defs"}, + {4713, "+proj=longlat +ellps=clrk80 +towgs84=-79,-129,145,0,0,0,0 +no_defs"}, + {4714, "+proj=longlat +ellps=intl +towgs84=-127,-769,472,0,0,0,0 +no_defs"}, + {4715, "+proj=longlat +ellps=intl +towgs84=-104,-129,239,0,0,0,0 +no_defs"}, + {4716, "+proj=longlat +ellps=intl +towgs84=298,-304,-375,0,0,0,0 +no_defs"}, + {4717, "+proj=longlat +ellps=clrk66 +towgs84=-2,151,181,0,0,0,0 +no_defs"}, + {4718, "+proj=longlat +ellps=intl +no_defs"}, + {4719, "+proj=longlat +ellps=intl +towgs84=211,147,111,0,0,0,0 +no_defs"}, + {4720, "+proj=longlat +ellps=WGS72 +no_defs"}, + {4721, "+proj=longlat +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +no_defs"}, + {4722, "+proj=longlat +ellps=intl +towgs84=-794,119,-298,0,0,0,0 +no_defs"}, + {4723, "+proj=longlat +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,0,0,0 +no_defs"}, + {4724, "+proj=longlat +ellps=intl +towgs84=208,-435,-229,0,0,0,0 +no_defs"}, + {4725, "+proj=longlat +ellps=intl +towgs84=189,-79,-202,0,0,0,0 +no_defs"}, + {4726, "+proj=longlat +ellps=clrk66 +no_defs"}, + {4727, "+proj=longlat +ellps=intl +no_defs"}, + {4728, "+proj=longlat +ellps=intl +towgs84=-307,-92,127,0,0,0,0 +no_defs"}, + {4729, "+proj=longlat +ellps=intl +towgs84=185,165,42,0,0,0,0 +no_defs"}, + {4730, "+proj=longlat +ellps=intl +towgs84=170,42,84,0,0,0,0 +no_defs"}, + {4731, "+proj=longlat +ellps=clrk80 +towgs84=51,391,-36,0,0,0,0 +no_defs"}, + {4732, "+proj=longlat +a=6378270 +b=6356794.343434343 +towgs84=102,52,-38,0,0,0,0 +no_defs"}, + {4733, "+proj=longlat +ellps=intl +towgs84=276,-57,149,0,0,0,0 +no_defs"}, + {4734, "+proj=longlat +ellps=intl +towgs84=-632,438,-609,0,0,0,0 +no_defs"}, + {4735, "+proj=longlat +ellps=intl +towgs84=647,1777,-1124,0,0,0,0 +no_defs"}, + {4736, "+proj=longlat +ellps=clrk80 +towgs84=260,12,-147,0,0,0,0 +no_defs"}, + {4737, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4738, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs"}, + {4739, "+proj=longlat +ellps=intl +towgs84=-156,-271,-189,0,0,0,0 +no_defs"}, + {4740, "+proj=longlat +a=6378136 +b=6356751.361745712 +towgs84=0,0,1.5,-0,-0,0.076,0 +no_defs"}, + {4741, "+proj=longlat +ellps=intl +no_defs"}, + {4742, "+proj=longlat +ellps=GRS80 +no_defs"}, + {4743, "+proj=longlat +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +no_defs"}, + {4744, "+proj=longlat +ellps=clrk80 +no_defs"}, + {4745, "+proj=longlat +ellps=bessel +no_defs"}, + {4746, "+proj=longlat +ellps=bessel +no_defs"}, + {4747, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4748, "+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +no_defs"}, + {4749, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4750, "+proj=longlat +ellps=WGS84 +towgs84=-56.263,16.136,-22.856,0,0,0,0 +no_defs"}, + {4751, "+proj=longlat +a=6377295.664 +b=6356094.667915204 +no_defs"}, + {4752, "+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +no_defs"}, + {4753, "+proj=longlat +ellps=intl +no_defs"}, + {4754, "+proj=longlat +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +no_defs"}, + {4755, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4756, "+proj=longlat +ellps=WGS84 +no_defs"}, + {4757, "+proj=longlat +ellps=WGS84 +no_defs"}, + {4758, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4759, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4760, "+proj=longlat +ellps=WGS66 +no_defs"}, + {4761, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4762, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4763, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4764, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4765, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"}, + {4801, "+proj=longlat +ellps=bessel +pm=bern +no_defs"}, + {4802, "+proj=longlat +ellps=intl +pm=bogota +no_defs"}, + {4803, "+proj=longlat +ellps=intl +pm=lisbon +no_defs"}, + {4804, "+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=jakarta +no_defs"}, + {4805, "+proj=longlat +ellps=bessel +pm=ferro +no_defs"}, + {4806, "+proj=longlat +ellps=intl +pm=rome +no_defs"}, + {4807, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +no_defs"}, + {4808, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs"}, + {4809, "+proj=longlat +ellps=intl +pm=brussels +no_defs"}, + {4810, "+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +no_defs"}, + {4811, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +pm=paris +no_defs"}, + {4813, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs"}, + {4814, "+proj=longlat +ellps=bessel +pm=stockholm +no_defs"}, + {4815, "+proj=longlat +ellps=bessel +pm=athens +no_defs"}, + {4816, "+proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defs"}, + {4817, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +no_defs"}, + {4818, "+proj=longlat +ellps=bessel +pm=ferro +no_defs"}, + {4819, "+proj=longlat +ellps=clrk80 +pm=paris +no_defs"}, + {4820, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs"}, + {4821, "+proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defs"}, + //{4882, ""}, + {4883, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4884, ""}, + {4885, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4886, ""}, + {4887, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4888, ""}, + {4889, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4890, ""}, + {4891, "+proj=longlat +ellps=WGS66 +no_defs"}, + //{4892, ""}, + {4893, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4894, ""}, + {4895, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4896, ""}, + //{4897, ""}, + {4898, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4899, ""}, + {4900, "+proj=longlat +ellps=intl +towgs84=-208.4058,-109.8777,-2.5764,0.0,0.0,0.0,0.0 +no_defs"}, + {4901, "+proj=longlat +a=6376523 +b=6355862.933255573 +pm=2.3372291666985 +no_defs"}, + {4902, "+proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris +no_defs"}, + {4903, "+proj=longlat +a=6378298.3 +b=6356657.142669561 +pm=madrid +no_defs"}, + {4904, "+proj=longlat +ellps=bessel +pm=lisbon +no_defs"}, + //{4906, ""}, + {4907, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4908, ""}, + {4909, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4910, ""}, + //{4911, ""}, + //{4912, ""}, + //{4913, ""}, + //{4914, ""}, + //{4915, ""}, + //{4916, ""}, + //{4917, ""}, + //{4918, ""}, + //{4919, ""}, + //{4920, ""}, + {4921, "+proj=longlat +ellps=GRS80 +no_defs"}, + //{4922, ""}, + {4923, "+proj=longlat +a=6378136 +b=6356751.361745712 +towgs84=0.0,0.0,1.5,-0.0,0.0,-0.076,0.0 +no_defs"}, + //{4924, ""}, + {4925, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4926, ""}, + {4927, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4928, ""}, + {4929, "+proj=longlat +ellps=GRS80 +no_defs"}, + //{4930, ""}, + {4931, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4932, ""}, + {4933, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4934, ""}, + {4935, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4936, ""}, + {4937, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4938, ""}, + {4939, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4940, ""}, + {4941, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4942, ""}, + {4943, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4944, ""}, + {4945, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4946, ""}, + {4947, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4948, ""}, + {4949, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4950, ""}, + {4951, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4952, ""}, + {4953, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,-0.0,0.0,0.0,0.0 +no_defs"}, + //{4954, ""}, + {4955, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs"}, + //{4956, ""}, + {4957, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs"}, + //{4958, ""}, + {4959, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4960, ""}, + {4961, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4962, ""}, + {4963, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4964, ""}, + {4965, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4966, ""}, + {4967, "+proj=longlat +ellps=GRS80 +towgs84=2.0,2.0,-2.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4968, ""}, + {4969, "+proj=longlat +ellps=intl +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4970, ""}, + {4971, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4972, ""}, + {4973, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4974, ""}, + {4975, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4976, ""}, + {4977, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4978, ""}, + {4979, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"}, + //{4980, ""}, + {4981, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4982, ""}, + {4983, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4984, ""}, + {4985, "+proj=longlat +ellps=WGS72 +towgs84=0.0,0.0,4.5,0.0,0.0,0.554,0.045171992568114105 +no_defs"}, + //{4986, ""}, + {4987, "+proj=longlat +ellps=WGS72 +towgs84=0.0,0.0,1.9,0.0,0.0,0.814,-0.07838062637389662 +no_defs"}, + //{4988, ""}, + {4989, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4990, ""}, + {4991, "+proj=longlat +ellps=krass +no_defs"}, + //{4992, ""}, + {4993, "+proj=longlat +ellps=krass +towgs84=44.585,-131.212,-39.544,0.0,0.0,0.0,0.0 +no_defs"}, + //{4994, ""}, + {4995, "+proj=longlat +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,-4.903,-1.578,-0.21864069462192215 +no_defs"}, + //{4996, ""}, + {4997, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + //{4998, ""}, + {4999, "+proj=longlat +ellps=GRS80 +towgs84=0.072,-0.507,-0.245,-0.0183,-0.0003,0.007,-0.001918262698097996 +no_defs"}, + //{5600, ""}, + //{5601, ""}, + //{5602, ""}, + //{5603, ""}, + //{5604, ""}, + //{5605, ""}, + //{5606, ""}, + //{5607, ""}, + //{5608, ""}, + //{5609, ""}, + //{5610, ""}, + //{5611, ""}, + //{5612, ""}, + //{5613, ""}, + //{5614, ""}, + //{5615, ""}, + //{5616, ""}, + //{5617, ""}, + //{5618, ""}, + //{5619, ""}, + //{5620, ""}, + //{5701, ""}, + //{5702, ""}, + //{5703, ""}, + //{5704, ""}, + //{5705, ""}, + //{5706, ""}, + //{5709, ""}, + //{5710, ""}, + //{5711, ""}, + //{5712, ""}, + //{5713, ""}, + //{5714, ""}, + //{5715, ""}, + //{5716, ""}, + //{5717, ""}, + //{5718, ""}, + //{5719, ""}, + //{5720, ""}, + //{5721, ""}, + //{5722, ""}, + //{5723, ""}, + //{5724, ""}, + //{5725, ""}, + //{5726, ""}, + //{5727, ""}, + //{5728, ""}, + //{5729, ""}, + //{5730, ""}, + //{5731, ""}, + //{5732, ""}, + //{5733, ""}, + //{5734, ""}, + //{5735, ""}, + //{5736, ""}, + //{5737, ""}, + //{5738, ""}, + //{5739, ""}, + //{5740, ""}, + //{5741, ""}, + //{5742, ""}, + //{5743, ""}, + //{5744, ""}, + //{5745, ""}, + //{5746, ""}, + //{5747, ""}, + //{5748, ""}, + //{5749, ""}, + //{5750, ""}, + //{5751, ""}, + //{5752, ""}, + //{5753, ""}, + //{5754, ""}, + //{5755, ""}, + //{5756, ""}, + //{5757, ""}, + //{5758, ""}, + //{5759, ""}, + //{5760, ""}, + //{5761, ""}, + //{5762, ""}, + //{5763, ""}, + //{5764, ""}, + //{5765, ""}, + //{5766, ""}, + //{5767, ""}, + //{5768, ""}, + //{5769, ""}, + //{5770, ""}, + //{5771, ""}, + //{5772, ""}, + //{5773, ""}, + //{5774, ""}, + //{5775, ""}, + //{5776, ""}, + //{5777, ""}, + //{5778, ""}, + //{5779, ""}, + //{5780, ""}, + //{5781, ""}, + //{5782, ""}, + //{5783, ""}, + //{5784, ""}, + //{5785, ""}, + //{5786, ""}, + //{5787, ""}, + //{5788, ""}, + //{5789, ""}, + //{5790, ""}, + //{5791, ""}, + //{5792, ""}, + //{5793, ""}, + //{5794, ""}, + //{5795, ""}, + //{5796, ""}, + //{5797, ""}, + //{5798, ""}, + //{5799, ""}, + //{5800, ""}, + //{5801, ""}, + //{5802, ""}, + //{5803, ""}, + //{5804, ""}, + //{5805, ""}, + //{5806, ""}, + //{5807, ""}, + //{5808, ""}, + //{5809, ""}, + //{5810, ""}, + //{5811, ""}, + //{5812, ""}, + //{5813, ""}, + //{5814, ""}, + //{5815, ""}, + //{5816, ""}, + //{5817, ""}, + //{5818, ""}, + //{5819, ""}, + //{5820, ""}, + //{5821, ""}, + //{7400, ""}, + //{7401, ""}, + //{7402, ""}, + //{7403, ""}, + //{7404, ""}, + //{7405, ""}, + //{7406, ""}, + //{7407, ""}, + //{7408, ""}, + //{7409, ""}, + //{7410, ""}, + //{7411, ""}, + //{7412, ""}, + //{7413, ""}, + //{7414, ""}, + //{7415, ""}, + //{7416, ""}, + //{7417, ""}, + //{7418, ""}, + //{7419, ""}, + //{7420, ""}, + //{7421, ""}, + //{7422, ""}, + {20004, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20005, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20006, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20007, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20008, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20009, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20010, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20011, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20012, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20013, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20014, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20015, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20016, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20017, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20018, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20019, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20020, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20021, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20022, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20023, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20024, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20025, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20026, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20027, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20028, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20029, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20030, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20031, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20032, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20064, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20065, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20066, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20067, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20068, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20069, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20070, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20071, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20072, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20073, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20074, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20075, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20076, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20077, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20078, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20079, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20080, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20081, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20082, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20083, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20084, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20085, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20086, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20087, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20088, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20089, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20090, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20091, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20092, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {20135, "+proj=utm +zone=35 +ellps=clrk80 +units=m +no_defs"}, + {20136, "+proj=utm +zone=36 +ellps=clrk80 +units=m +no_defs"}, + {20137, "+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defs"}, + {20138, "+proj=utm +zone=38 +ellps=clrk80 +units=m +no_defs"}, + {20248, "+proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defs"}, + {20249, "+proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defs"}, + {20250, "+proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defs"}, + {20251, "+proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defs"}, + {20252, "+proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defs"}, + {20253, "+proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defs"}, + {20254, "+proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defs"}, + {20255, "+proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defs"}, + {20256, "+proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defs"}, + {20257, "+proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defs"}, + {20258, "+proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defs"}, + {20348, "+proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defs"}, + {20349, "+proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defs"}, + {20350, "+proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defs"}, + {20351, "+proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defs"}, + {20352, "+proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defs"}, + {20353, "+proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defs"}, + {20354, "+proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defs"}, + {20355, "+proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defs"}, + {20356, "+proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defs"}, + {20357, "+proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defs"}, + {20358, "+proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defs"}, + {20436, "+proj=utm +zone=36 +ellps=intl +units=m +no_defs"}, + {20437, "+proj=utm +zone=37 +ellps=intl +units=m +no_defs"}, + {20438, "+proj=utm +zone=38 +ellps=intl +units=m +no_defs"}, + {20439, "+proj=utm +zone=39 +ellps=intl +units=m +no_defs"}, + {20440, "+proj=utm +zone=40 +ellps=intl +units=m +no_defs"}, + {20499, "+proj=utm +zone=39 +ellps=intl +units=m +no_defs"}, + {20538, "+proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defs"}, + {20539, "+proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defs"}, + {20790, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=200000 +y_0=300000 +ellps=intl +pm=lisbon +units=m +no_defs"}, + {20791, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=0 +y_0=0 +ellps=intl +pm=lisbon +units=m +no_defs"}, + {20822, "+proj=utm +zone=22 +south +ellps=intl +units=m +no_defs"}, + {20823, "+proj=utm +zone=23 +south +ellps=intl +units=m +no_defs"}, + {20824, "+proj=utm +zone=24 +south +ellps=intl +units=m +no_defs"}, + {20934, "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs"}, + {20935, "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs"}, + {20936, "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs"}, + {21035, "+proj=utm +zone=35 +south +ellps=clrk80 +units=m +no_defs"}, + {21036, "+proj=utm +zone=36 +south +ellps=clrk80 +units=m +no_defs"}, + {21037, "+proj=utm +zone=37 +south +ellps=clrk80 +units=m +no_defs"}, + {21095, "+proj=utm +zone=35 +ellps=clrk80 +units=m +no_defs"}, + {21096, "+proj=utm +zone=36 +ellps=clrk80 +units=m +no_defs"}, + {21097, "+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defs"}, + {21100, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defs"}, + {21148, "+proj=utm +zone=48 +south +ellps=bessel +units=m +no_defs"}, + {21149, "+proj=utm +zone=49 +south +ellps=bessel +units=m +no_defs"}, + {21150, "+proj=utm +zone=50 +south +ellps=bessel +units=m +no_defs"}, + {21291, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs"}, + {21292, "+proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222222222 +k=0.9999986 +x_0=30000 +y_0=75000 +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs"}, + {21413, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21414, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21415, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21416, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21417, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21418, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21419, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21420, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21421, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21422, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21423, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21453, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21454, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21455, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21456, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21457, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21458, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21459, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21460, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21461, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21462, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21463, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21473, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21474, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21475, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21476, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21477, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21478, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21479, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21480, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21481, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21482, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21483, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {21500, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=90 +lon_0=0 +x_0=150000 +y_0=5400000 +ellps=intl +pm=brussels +units=m +no_defs"}, + {21780, "+proj=somerc +lat_0=46.95240555555556 +lon_0=0 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +pm=bern +units=m +no_defs"}, + {21781, "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs"}, + //{21782, ""}, + {21817, "+proj=utm +zone=17 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs"}, + {21818, "+proj=utm +zone=18 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs"}, + {21891, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs"}, + {21892, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs"}, + {21893, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs"}, + {21894, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs"}, + {21896, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs"}, + {21897, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs"}, + {21898, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs"}, + {21899, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs"}, + {22032, "+proj=utm +zone=32 +south +ellps=clrk80 +units=m +no_defs"}, + {22033, "+proj=utm +zone=33 +south +ellps=clrk80 +units=m +no_defs"}, + {22091, "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {22092, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs"}, + {22171, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {22172, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {22173, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {22174, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {22175, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {22176, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {22177, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {22181, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {22182, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {22183, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {22184, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {22185, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {22186, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {22187, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {22191, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {22192, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {22193, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {22194, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {22195, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {22196, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {22197, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {22234, "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs"}, + {22235, "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs"}, + {22236, "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs"}, + //{22275, ""}, + //{22277, ""}, + //{22279, ""}, + //{22281, ""}, + //{22283, ""}, + //{22285, ""}, + //{22287, ""}, + //{22289, ""}, + //{22291, ""}, + //{22293, ""}, + //{22300, ""}, + {22332, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {22391, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=9.9 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {22392, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=9.9 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {22521, "+proj=utm +zone=21 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs"}, + {22522, "+proj=utm +zone=22 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs"}, + {22523, "+proj=utm +zone=23 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs"}, + {22524, "+proj=utm +zone=24 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs"}, + {22525, "+proj=utm +zone=25 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs"}, + {22700, "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {22770, "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {22780, "+proj=sterea +lat_0=34.2 +lon_0=39.15 +k=0.9995341 +x_0=0 +y_0=0 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {22832, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {22991, "+proj=tmerc +lat_0=30 +lon_0=35 +k=1 +x_0=300000 +y_0=1100000 +ellps=helmert +units=m +no_defs"}, + {22992, "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=810000 +ellps=helmert +units=m +no_defs"}, + {22993, "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=200000 +ellps=helmert +units=m +no_defs"}, + {22994, "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=1200000 +ellps=helmert +units=m +no_defs"}, + {23028, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs"}, + {23029, "+proj=utm +zone=29 +ellps=intl +units=m +no_defs"}, + {23030, "+proj=utm +zone=30 +ellps=intl +units=m +no_defs"}, + {23031, "+proj=utm +zone=31 +ellps=intl +units=m +no_defs"}, + {23032, "+proj=utm +zone=32 +ellps=intl +units=m +no_defs"}, + {23033, "+proj=utm +zone=33 +ellps=intl +units=m +no_defs"}, + {23034, "+proj=utm +zone=34 +ellps=intl +units=m +no_defs"}, + {23035, "+proj=utm +zone=35 +ellps=intl +units=m +no_defs"}, + {23036, "+proj=utm +zone=36 +ellps=intl +units=m +no_defs"}, + {23037, "+proj=utm +zone=37 +ellps=intl +units=m +no_defs"}, + {23038, "+proj=utm +zone=38 +ellps=intl +units=m +no_defs"}, + {23090, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {23095, "+proj=tmerc +lat_0=0 +lon_0=5 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {23239, "+proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs"}, + {23240, "+proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs"}, + {23433, "+proj=utm +zone=33 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {23700, "+proj=somerc +lat_0=47.14439372222222 +lon_0=19.04857177777778 +k_0=0.99993 +x_0=650000 +y_0=200000 +ellps=GRS67 +units=m +no_defs"}, + {23830, "+proj=tmerc +lat_0=0 +lon_0=94.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23831, "+proj=tmerc +lat_0=0 +lon_0=97.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23832, "+proj=tmerc +lat_0=0 +lon_0=100.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23833, "+proj=tmerc +lat_0=0 +lon_0=103.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23834, "+proj=tmerc +lat_0=0 +lon_0=106.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23835, "+proj=tmerc +lat_0=0 +lon_0=109.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23836, "+proj=tmerc +lat_0=0 +lon_0=112.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23837, "+proj=tmerc +lat_0=0 +lon_0=115.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23838, "+proj=tmerc +lat_0=0 +lon_0=118.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23839, "+proj=tmerc +lat_0=0 +lon_0=121.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23840, "+proj=tmerc +lat_0=0 +lon_0=124.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23841, "+proj=tmerc +lat_0=0 +lon_0=127.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23842, "+proj=tmerc +lat_0=0 +lon_0=130.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23843, "+proj=tmerc +lat_0=0 +lon_0=133.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23844, "+proj=tmerc +lat_0=0 +lon_0=136.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23845, "+proj=tmerc +lat_0=0 +lon_0=139.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23846, "+proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23847, "+proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23848, "+proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23849, "+proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23850, "+proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23851, "+proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23852, "+proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23853, "+proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23866, "+proj=utm +zone=46 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23867, "+proj=utm +zone=47 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23868, "+proj=utm +zone=48 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23869, "+proj=utm +zone=49 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23870, "+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23871, "+proj=utm +zone=51 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23872, "+proj=utm +zone=52 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23877, "+proj=utm +zone=47 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23878, "+proj=utm +zone=48 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23879, "+proj=utm +zone=49 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23880, "+proj=utm +zone=50 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23881, "+proj=utm +zone=51 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23882, "+proj=utm +zone=52 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23883, "+proj=utm +zone=53 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23884, "+proj=utm +zone=54 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {23886, "+proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23887, "+proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23888, "+proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23889, "+proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23890, "+proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23891, "+proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23892, "+proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23893, "+proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23894, "+proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs"}, + {23946, "+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs"}, + {23947, "+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs"}, + {23948, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs"}, + {24047, "+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs"}, + {24048, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs"}, + {24100, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167638.49597 +y_0=121918.90616 +a=6378249.144808011 +b=6356514.966204134 +to_meter=0.3047972654 +no_defs"}, + {24200, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250000 +y_0=150000 +ellps=clrk66 +units=m +no_defs"}, + {24305, "+proj=utm +zone=45 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs"}, + {24306, "+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs"}, + {24311, "+proj=utm +zone=41 +a=6377301.243 +b=6356100.230165384 +units=m +no_defs"}, + {24312, "+proj=utm +zone=42 +a=6377301.243 +b=6356100.230165384 +units=m +no_defs"}, + {24313, "+proj=utm +zone=43 +a=6377301.243 +b=6356100.230165384 +units=m +no_defs"}, + {24342, "+proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"}, + {24343, "+proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"}, + {24344, "+proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"}, + {24345, "+proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"}, + {24346, "+proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"}, + {24347, "+proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"}, + {24370, "+proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs"}, + {24371, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs"}, + {24372, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs"}, + {24373, "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs"}, + {24374, "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs"}, + {24375, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs"}, + {24376, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165384 +units=m +no_defs"}, + {24377, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165384 +units=m +no_defs"}, + {24378, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"}, + {24379, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"}, + {24380, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"}, + {24381, "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"}, + {24382, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs"}, + {24383, "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs"}, + {24500, "+proj=cass +lat_0=1.287646666666667 +lon_0=103.8530022222222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"}, + {24547, "+proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"}, + {24548, "+proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs"}, + {24571, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=804671.2997750348 +y_0=0 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +to_meter=20.11678249437587 +no_defs"}, + {24600, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +towgs84=-294.7,-200.1,525.5,0,0,0,0 +units=m +no_defs"}, + {24718, "+proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs"}, + {24719, "+proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs"}, + {24720, "+proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs"}, + {24817, "+proj=utm +zone=17 +ellps=intl +units=m +no_defs"}, + {24818, "+proj=utm +zone=18 +ellps=intl +units=m +no_defs"}, + {24819, "+proj=utm +zone=19 +ellps=intl +units=m +no_defs"}, + {24820, "+proj=utm +zone=20 +ellps=intl +units=m +no_defs"}, + {24821, "+proj=utm +zone=21 +ellps=intl +units=m +no_defs"}, + {24877, "+proj=utm +zone=17 +south +ellps=intl +units=m +no_defs"}, + {24878, "+proj=utm +zone=18 +south +ellps=intl +units=m +no_defs"}, + {24879, "+proj=utm +zone=19 +south +ellps=intl +units=m +no_defs"}, + {24880, "+proj=utm +zone=20 +south +ellps=intl +units=m +no_defs"}, + {24881, "+proj=utm +zone=21 +south +ellps=intl +units=m +no_defs"}, + {24882, "+proj=utm +zone=22 +south +ellps=intl +units=m +no_defs"}, + {24891, "+proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.99983008 +x_0=222000 +y_0=1426834.743 +ellps=intl +units=m +no_defs"}, + {24892, "+proj=tmerc +lat_0=-9.5 +lon_0=-76 +k=0.99932994 +x_0=720000 +y_0=1039979.159 +ellps=intl +units=m +no_defs"}, + {24893, "+proj=tmerc +lat_0=-9.5 +lon_0=-70.5 +k=0.99952992 +x_0=1324000 +y_0=1040084.558 +ellps=intl +units=m +no_defs"}, + {25000, "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.99975 +x_0=274319.51 +y_0=0 +ellps=clrk80 +towgs84=-130,29,364,0,0,0,0 +units=m +no_defs"}, + {25231, "+proj=utm +zone=31 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {25391, "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {25392, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {25393, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {25394, "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {25395, "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs"}, + {25700, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=jakarta +units=m +no_defs"}, + {25828, "+proj=utm +zone=28 +ellps=GRS80 +units=m +no_defs"}, + {25829, "+proj=utm +zone=29 +ellps=GRS80 +units=m +no_defs"}, + {25830, "+proj=utm +zone=30 +ellps=GRS80 +units=m +no_defs"}, + {25831, "+proj=utm +zone=31 +ellps=GRS80 +units=m +no_defs"}, + {25832, "+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs"}, + {25833, "+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs"}, + {25834, "+proj=utm +zone=34 +ellps=GRS80 +units=m +no_defs"}, + {25835, "+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs"}, + {25836, "+proj=utm +zone=36 +ellps=GRS80 +units=m +no_defs"}, + {25837, "+proj=utm +zone=37 +ellps=GRS80 +units=m +no_defs"}, + {25838, "+proj=utm +zone=38 +ellps=GRS80 +units=m +no_defs"}, + {25884, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {25932, "+proj=utm +zone=32 +south +ellps=intl +units=m +no_defs"}, + {26191, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs"}, + {26192, "+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.9996155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs"}, + {26193, "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.9996 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs"}, + {26194, "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999616304 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs"}, + {26195, "+proj=lcc +lat_1=22.5 +lat_0=22.5 +lon_0=-5.4 +k_0=0.999616437 +x_0=1500000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs"}, + {26237, "+proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0,0,0 +units=m +no_defs"}, + {26331, "+proj=utm +zone=31 +ellps=clrk80 +units=m +no_defs"}, + {26332, "+proj=utm +zone=32 +ellps=clrk80 +units=m +no_defs"}, + {26391, "+proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.99975 +x_0=230738.26 +y_0=0 +ellps=clrk80 +units=m +no_defs"}, + {26392, "+proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.99975 +x_0=670553.98 +y_0=0 +ellps=clrk80 +units=m +no_defs"}, + {26393, "+proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.99975 +x_0=1110369.7 +y_0=0 +ellps=clrk80 +units=m +no_defs"}, + {26432, "+proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-4.11,-96.38,0,0,0,0 +units=m +no_defs"}, + {26591, "+proj=tmerc +lat_0=0 +lon_0=-3.45233333333333 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defs"}, + {26592, "+proj=tmerc +lat_0=0 +lon_0=2.54766666666666 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defs"}, + {26632, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {26692, "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {26701, "+proj=utm +zone=1 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26702, "+proj=utm +zone=2 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26703, "+proj=utm +zone=3 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26704, "+proj=utm +zone=4 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26705, "+proj=utm +zone=5 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26706, "+proj=utm +zone=6 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26707, "+proj=utm +zone=7 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26708, "+proj=utm +zone=8 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26709, "+proj=utm +zone=9 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26710, "+proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26711, "+proj=utm +zone=11 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26712, "+proj=utm +zone=12 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26713, "+proj=utm +zone=13 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26714, "+proj=utm +zone=14 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26715, "+proj=utm +zone=15 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26716, "+proj=utm +zone=16 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26717, "+proj=utm +zone=17 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26718, "+proj=utm +zone=18 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26719, "+proj=utm +zone=19 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26720, "+proj=utm +zone=20 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26721, "+proj=utm +zone=21 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26722, "+proj=utm +zone=22 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {26729, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26730, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26731, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5000000.001016002 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26732, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26733, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26734, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26735, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26736, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26737, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=213360.4267208534 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26738, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26739, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26740, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26741, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26742, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26743, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26744, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26745, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26746, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26747, "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +x_0=1276106.450596901 +y_0=127079.524511049 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26748, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26749, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26750, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26751, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26752, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26753, "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26754, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26755, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26756, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26757, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26758, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26759, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26760, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26766, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26767, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26768, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26769, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26770, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26771, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26772, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26773, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26774, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26775, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26776, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26777, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26778, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26779, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26780, "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26781, "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26782, "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.66666666666667 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26783, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26784, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26785, "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26786, "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26787, "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26791, "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26792, "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26793, "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26794, "+proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26795, "+proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26796, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26797, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26798, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26799, "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +x_0=1276106.450596901 +y_0=1268253.006858014 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {26801, "+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.999942857 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs"}, + {26802, "+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs"}, + {26803, "+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs"}, + {26811, "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs"}, + {26812, "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs"}, + {26813, "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs"}, + {26814, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26815, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26819, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26820, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26821, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26822, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26823, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26824, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26825, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26826, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26830, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defs"}, + {26831, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defs"}, + {26832, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defs"}, + {26833, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26834, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26835, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26836, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {26837, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {26841, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {26842, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {26843, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {26844, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {26845, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {26846, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {26847, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {26848, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {26849, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {26850, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {26851, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {26852, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {26853, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {26854, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {26855, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {26856, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {26857, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {26858, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {26859, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {26860, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {26861, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {26862, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs"}, + {26863, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {26864, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {26865, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {26866, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {26867, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {26868, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {26869, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {26870, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs"}, + {26891, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26892, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26893, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26894, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26895, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26896, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26897, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26898, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26899, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {26901, "+proj=utm +zone=1 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26902, "+proj=utm +zone=2 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26903, "+proj=utm +zone=3 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26904, "+proj=utm +zone=4 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26905, "+proj=utm +zone=5 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26906, "+proj=utm +zone=6 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26907, "+proj=utm +zone=7 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26908, "+proj=utm +zone=8 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26909, "+proj=utm +zone=9 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26910, "+proj=utm +zone=10 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26911, "+proj=utm +zone=11 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26912, "+proj=utm +zone=12 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26913, "+proj=utm +zone=13 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26914, "+proj=utm +zone=14 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26915, "+proj=utm +zone=15 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26916, "+proj=utm +zone=16 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26917, "+proj=utm +zone=17 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26918, "+proj=utm +zone=18 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26919, "+proj=utm +zone=19 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26920, "+proj=utm +zone=20 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26921, "+proj=utm +zone=21 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26922, "+proj=utm +zone=22 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26923, "+proj=utm +zone=23 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26929, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26930, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26931, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26932, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26933, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26934, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26935, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26936, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26937, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26938, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26939, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26940, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26941, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26942, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26943, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26944, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26945, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26946, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26948, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26949, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26950, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26951, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26952, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26953, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26954, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26955, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26956, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26957, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26958, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26959, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26960, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26961, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26962, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26963, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26964, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26965, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26966, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26967, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26968, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26969, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26970, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26971, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26972, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26973, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26974, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26975, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26976, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26977, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26978, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26979, "+proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26980, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26981, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26982, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26983, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26984, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26985, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26986, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26987, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26988, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26989, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26990, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26991, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26992, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26993, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26994, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26995, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26996, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26997, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {26998, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {27037, "+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defs"}, + {27038, "+proj=utm +zone=38 +ellps=clrk80 +units=m +no_defs"}, + {27039, "+proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs"}, + {27040, "+proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs"}, + {27120, "+proj=utm +zone=20 +ellps=intl +units=m +no_defs"}, + {27200, "+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=6023150 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27205, "+proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393611111 +k=0.9999 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27206, "+proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.46619725 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27207, "+proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362777778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27208, "+proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805277778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27209, "+proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.22801175 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27210, "+proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368055556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27211, "+proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27212, "+proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496666667 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27213, "+proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27214, "+proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27215, "+proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168055555 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27216, "+proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281944444 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27217, "+proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600555556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27218, "+proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713055556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27219, "+proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333888889 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27220, "+proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27221, "+proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27222, "+proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258333333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27223, "+proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27224, "+proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935833333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27225, "+proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484722222 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27226, "+proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508333333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27227, "+proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550833333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27228, "+proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411944444 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27229, "+proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617777778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27230, "+proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951666667 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27231, "+proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891111111 +k=0.99996 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27232, "+proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 +k=1 +x_0=300002.66 +y_0=699999.58 +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27258, "+proj=utm +zone=58 +south +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27259, "+proj=utm +zone=59 +south +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27260, "+proj=utm +zone=60 +south +ellps=intl +datum=nzgd49 +units=m +no_defs"}, + {27291, "+proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1 +x_0=274319.5243848086 +y_0=365759.3658464114 +ellps=intl +datum=nzgd49 +to_meter=0.9143984146160287 +no_defs"}, + {27292, "+proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1 +x_0=457199.2073080143 +y_0=457199.2073080143 +ellps=intl +datum=nzgd49 +to_meter=0.9143984146160287 +no_defs"}, + {27391, "+proj=tmerc +lat_0=58 +lon_0=-4.666666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"}, + {27392, "+proj=tmerc +lat_0=58 +lon_0=-2.333333333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"}, + {27393, "+proj=tmerc +lat_0=58 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"}, + {27394, "+proj=tmerc +lat_0=58 +lon_0=2.5 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"}, + {27395, "+proj=tmerc +lat_0=58 +lon_0=6.166666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"}, + {27396, "+proj=tmerc +lat_0=58 +lon_0=10.16666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"}, + {27397, "+proj=tmerc +lat_0=58 +lon_0=14.16666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"}, + {27398, "+proj=tmerc +lat_0=58 +lon_0=18.33333333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs"}, + {27429, "+proj=utm +zone=29 +ellps=intl +units=m +no_defs"}, + {27492, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defs"}, + {27493, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defs"}, + {27500, "+proj=lcc +lat_1=49.5 +lat_0=49.5 +lon_0=5.4 +k_0=0.99950908 +x_0=500000 +y_0=300000 +a=6376523 +b=6355862.933255573 +pm=2.3372291666985 +units=m +no_defs"}, + {27561, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27562, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27563, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27564, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27571, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27572, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27573, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27574, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27581, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27582, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27583, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27584, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27591, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27592, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27593, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27594, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs"}, + {27700, "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs"}, + {28191, "+proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs"}, + {28192, "+proj=tmerc +lat_0=31.73409694444445 +lon_0=35.21208055555556 +k=1 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs"}, + {28193, "+proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs"}, + {28232, "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {28348, "+proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {28349, "+proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {28350, "+proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {28351, "+proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {28352, "+proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {28353, "+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {28354, "+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {28355, "+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {28356, "+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {28357, "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {28358, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {28402, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28403, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28404, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28405, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28406, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28407, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28408, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28409, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28410, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28411, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28412, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28413, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28414, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28415, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28416, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28417, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28418, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28419, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28420, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28421, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28422, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28423, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28424, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28425, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28426, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28427, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28428, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28429, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28430, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28431, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28432, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28462, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28463, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28464, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28465, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28466, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28467, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28468, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28469, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28470, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28471, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28472, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28473, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28474, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28475, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28476, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28477, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28478, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28479, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28480, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28481, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28482, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28483, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28484, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28485, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28486, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28487, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28488, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28489, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28490, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28491, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28492, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs"}, + {28600, "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.99999 +x_0=200000 +y_0=300000 +ellps=intl +units=m +no_defs"}, + {28991, "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {28992, "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs"}, + {29100, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=GRS67 +units=m +no_defs"}, + {29101, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=aust_SA +units=m +no_defs"}, + {29118, "+proj=utm +zone=18 +ellps=GRS67 +units=m +no_defs"}, + {29119, "+proj=utm +zone=19 +ellps=GRS67 +units=m +no_defs"}, + {29120, "+proj=utm +zone=20 +ellps=GRS67 +units=m +no_defs"}, + {29121, "+proj=utm +zone=21 +ellps=GRS67 +units=m +no_defs"}, + {29122, "+proj=utm +zone=22 +ellps=GRS67 +units=m +no_defs"}, + {29168, "+proj=utm +zone=18 +ellps=aust_SA +units=m +no_defs"}, + {29169, "+proj=utm +zone=19 +ellps=aust_SA +units=m +no_defs"}, + {29170, "+proj=utm +zone=20 +ellps=aust_SA +units=m +no_defs"}, + {29171, "+proj=utm +zone=21 +ellps=aust_SA +units=m +no_defs"}, + {29172, "+proj=utm +zone=22 +ellps=aust_SA +units=m +no_defs"}, + {29177, "+proj=utm +zone=17 +south +ellps=GRS67 +units=m +no_defs"}, + {29178, "+proj=utm +zone=18 +south +ellps=GRS67 +units=m +no_defs"}, + {29179, "+proj=utm +zone=19 +south +ellps=GRS67 +units=m +no_defs"}, + {29180, "+proj=utm +zone=20 +south +ellps=GRS67 +units=m +no_defs"}, + {29181, "+proj=utm +zone=21 +south +ellps=GRS67 +units=m +no_defs"}, + {29182, "+proj=utm +zone=22 +south +ellps=GRS67 +units=m +no_defs"}, + {29183, "+proj=utm +zone=23 +south +ellps=GRS67 +units=m +no_defs"}, + {29184, "+proj=utm +zone=24 +south +ellps=GRS67 +units=m +no_defs"}, + {29185, "+proj=utm +zone=25 +south +ellps=GRS67 +units=m +no_defs"}, + {29187, "+proj=utm +zone=17 +south +ellps=aust_SA +units=m +no_defs"}, + {29188, "+proj=utm +zone=18 +south +ellps=aust_SA +units=m +no_defs"}, + {29189, "+proj=utm +zone=19 +south +ellps=aust_SA +units=m +no_defs"}, + {29190, "+proj=utm +zone=20 +south +ellps=aust_SA +units=m +no_defs"}, + {29191, "+proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_defs"}, + {29192, "+proj=utm +zone=22 +south +ellps=aust_SA +units=m +no_defs"}, + {29193, "+proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_defs"}, + {29194, "+proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_defs"}, + {29195, "+proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_defs"}, + {29220, "+proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defs"}, + {29221, "+proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defs"}, + {29333, "+proj=utm +zone=33 +south +ellps=bess_nam +units=m +no_defs"}, + //{29371, ""}, + //{29373, ""}, + //{29375, ""}, + //{29377, ""}, + //{29379, ""}, + //{29381, ""}, + //{29383, ""}, + //{29385, ""}, + {29635, "+proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {29636, "+proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {29700, "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +units=m +no_defs"}, + //{29701, ""}, + {29702, "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +units=m +no_defs"}, + {29738, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defs"}, + {29739, "+proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defs"}, + {29849, "+proj=utm +zone=49 +ellps=evrstSS +units=m +no_defs"}, + {29850, "+proj=utm +zone=50 +ellps=evrstSS +units=m +no_defs"}, + {29871, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 +ellps=evrstSS +to_meter=20.11676512155263 +no_defs"}, + {29872, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985 +ellps=evrstSS +to_meter=0.3047994715386762 +no_defs"}, + {29873, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.87 +y_0=442857.65 +ellps=evrstSS +units=m +no_defs"}, + {29900, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs"}, + {29901, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1 +x_0=200000 +y_0=250000 +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +units=m +no_defs"}, + {29902, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs"}, + {29903, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs"}, + {30161, "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30162, "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30163, "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30164, "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30165, "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30166, "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30167, "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30168, "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30169, "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30170, "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30171, "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30172, "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30173, "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30174, "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30175, "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30176, "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30177, "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30178, "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30179, "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {30200, "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 +no_defs"}, + {30339, "+proj=utm +zone=39 +ellps=helmert +units=m +no_defs"}, + {30340, "+proj=utm +zone=40 +ellps=helmert +units=m +no_defs"}, + {30491, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defs"}, + {30492, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defs"}, + {30493, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {30494, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {30729, "+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs"}, + {30730, "+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs"}, + {30731, "+proj=utm +zone=31 +ellps=clrk80 +units=m +no_defs"}, + {30732, "+proj=utm +zone=32 +ellps=clrk80 +units=m +no_defs"}, + {30791, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs"}, + {30792, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs"}, + {30800, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {31028, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_defs"}, + {31121, "+proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs"}, + {31154, "+proj=tmerc +lat_0=0 +lon_0=-54 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs"}, + {31170, "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs"}, + {31171, "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9999 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs"}, + {31251, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31252, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31253, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31254, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31255, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31256, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31257, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31258, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31259, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31265, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31266, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31267, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31268, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31275, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31276, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31277, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31278, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31279, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31281, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31282, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31283, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31284, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31285, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31286, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31287, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31288, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31289, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31290, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31291, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31292, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31293, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs"}, + {31294, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31295, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31296, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + {31297, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs"}, + //{31300, ""}, + {31370, "+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +lat_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=5400088.438 +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +units=m +no_defs"}, + {31461, "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"}, + {31462, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"}, + {31463, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"}, + {31464, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"}, + {31465, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"}, + {31466, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"}, + {31467, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"}, + {31468, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"}, + {31469, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs"}, + {31528, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs"}, + {31529, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs"}, + {31600, "+proj=sterea +lat_0=45.9 +lon_0=25.39246588888889 +k=0.9996667 +x_0=500000 +y_0=500000 +ellps=intl +units=m +no_defs"}, + {31700, "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 +y_0=500000 +ellps=krass +units=m +no_defs"}, + {31838, "+proj=utm +zone=38 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +units=m +no_defs"}, + {31839, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +units=m +no_defs"}, + {31900, "+proj=tmerc +lat_0=0 +lon_0=48 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {31901, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {31965, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31966, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31967, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31968, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31969, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31970, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31971, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31972, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31973, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31974, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31975, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31976, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31977, "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31978, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31979, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31980, "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31981, "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31982, "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31983, "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31984, "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31985, "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31986, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31987, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31988, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31989, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31990, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31991, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31992, "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31993, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31994, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31995, "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31996, "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31997, "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31998, "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {31999, "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {32000, "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"}, + {32001, "+proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=47 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32002, "+proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=45.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32003, "+proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32005, "+proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=41.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32006, "+proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32007, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32008, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32009, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32010, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32011, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666666667 +k=0.9999749999999999 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32012, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32013, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32014, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32015, "+proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32016, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32017, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32018, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32019, "+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32020, "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32021, "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32022, "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32023, "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32024, "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32025, "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32026, "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32027, "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32028, "+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32029, "+proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32030, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9999938 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32031, "+proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32033, "+proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32034, "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32035, "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32036, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32037, "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32038, "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32039, "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32040, "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32041, "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32042, "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32043, "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32044, "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32045, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32046, "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32047, "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32048, "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32049, "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32050, "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32051, "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32052, "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32053, "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32054, "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32055, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32056, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32057, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32058, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32061, "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=500000 +y_0=292209.579 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {32062, "+proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {32064, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32065, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32066, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32067, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32074, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32075, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32076, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32077, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32081, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {32082, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {32083, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {32084, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {32085, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {32086, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {32098, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {32099, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {32100, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32104, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32107, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32108, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32109, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32110, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32111, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32112, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32113, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32114, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32115, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32116, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32117, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32118, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32119, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32120, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32121, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32122, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32123, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32124, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32125, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32126, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32127, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32128, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32129, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32130, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32133, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32134, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32135, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32136, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32137, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32138, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32139, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32140, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32141, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32142, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32143, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32144, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32145, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32146, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32147, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32148, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32149, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32150, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32151, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32152, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32153, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32154, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32155, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32156, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32157, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32158, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32161, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32164, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {32165, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {32166, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {32167, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {32180, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32181, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32182, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32183, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32184, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32185, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32186, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32187, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32188, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32189, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32190, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32191, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32192, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32193, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32194, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32195, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32196, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32197, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32198, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32199, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {32201, "+proj=utm +zone=1 +ellps=WGS72 +units=m +no_defs"}, + {32202, "+proj=utm +zone=2 +ellps=WGS72 +units=m +no_defs"}, + {32203, "+proj=utm +zone=3 +ellps=WGS72 +units=m +no_defs"}, + {32204, "+proj=utm +zone=4 +ellps=WGS72 +units=m +no_defs"}, + {32205, "+proj=utm +zone=5 +ellps=WGS72 +units=m +no_defs"}, + {32206, "+proj=utm +zone=6 +ellps=WGS72 +units=m +no_defs"}, + {32207, "+proj=utm +zone=7 +ellps=WGS72 +units=m +no_defs"}, + {32208, "+proj=utm +zone=8 +ellps=WGS72 +units=m +no_defs"}, + {32209, "+proj=utm +zone=9 +ellps=WGS72 +units=m +no_defs"}, + {32210, "+proj=utm +zone=10 +ellps=WGS72 +units=m +no_defs"}, + {32211, "+proj=utm +zone=11 +ellps=WGS72 +units=m +no_defs"}, + {32212, "+proj=utm +zone=12 +ellps=WGS72 +units=m +no_defs"}, + {32213, "+proj=utm +zone=13 +ellps=WGS72 +units=m +no_defs"}, + {32214, "+proj=utm +zone=14 +ellps=WGS72 +units=m +no_defs"}, + {32215, "+proj=utm +zone=15 +ellps=WGS72 +units=m +no_defs"}, + {32216, "+proj=utm +zone=16 +ellps=WGS72 +units=m +no_defs"}, + {32217, "+proj=utm +zone=17 +ellps=WGS72 +units=m +no_defs"}, + {32218, "+proj=utm +zone=18 +ellps=WGS72 +units=m +no_defs"}, + {32219, "+proj=utm +zone=19 +ellps=WGS72 +units=m +no_defs"}, + {32220, "+proj=utm +zone=20 +ellps=WGS72 +units=m +no_defs"}, + {32221, "+proj=utm +zone=21 +ellps=WGS72 +units=m +no_defs"}, + {32222, "+proj=utm +zone=22 +ellps=WGS72 +units=m +no_defs"}, + {32223, "+proj=utm +zone=23 +ellps=WGS72 +units=m +no_defs"}, + {32224, "+proj=utm +zone=24 +ellps=WGS72 +units=m +no_defs"}, + {32225, "+proj=utm +zone=25 +ellps=WGS72 +units=m +no_defs"}, + {32226, "+proj=utm +zone=26 +ellps=WGS72 +units=m +no_defs"}, + {32227, "+proj=utm +zone=27 +ellps=WGS72 +units=m +no_defs"}, + {32228, "+proj=utm +zone=28 +ellps=WGS72 +units=m +no_defs"}, + {32229, "+proj=utm +zone=29 +ellps=WGS72 +units=m +no_defs"}, + {32230, "+proj=utm +zone=30 +ellps=WGS72 +units=m +no_defs"}, + {32231, "+proj=utm +zone=31 +ellps=WGS72 +units=m +no_defs"}, + {32232, "+proj=utm +zone=32 +ellps=WGS72 +units=m +no_defs"}, + {32233, "+proj=utm +zone=33 +ellps=WGS72 +units=m +no_defs"}, + {32234, "+proj=utm +zone=34 +ellps=WGS72 +units=m +no_defs"}, + {32235, "+proj=utm +zone=35 +ellps=WGS72 +units=m +no_defs"}, + {32236, "+proj=utm +zone=36 +ellps=WGS72 +units=m +no_defs"}, + {32237, "+proj=utm +zone=37 +ellps=WGS72 +units=m +no_defs"}, + {32238, "+proj=utm +zone=38 +ellps=WGS72 +units=m +no_defs"}, + {32239, "+proj=utm +zone=39 +ellps=WGS72 +units=m +no_defs"}, + {32240, "+proj=utm +zone=40 +ellps=WGS72 +units=m +no_defs"}, + {32241, "+proj=utm +zone=41 +ellps=WGS72 +units=m +no_defs"}, + {32242, "+proj=utm +zone=42 +ellps=WGS72 +units=m +no_defs"}, + {32243, "+proj=utm +zone=43 +ellps=WGS72 +units=m +no_defs"}, + {32244, "+proj=utm +zone=44 +ellps=WGS72 +units=m +no_defs"}, + {32245, "+proj=utm +zone=45 +ellps=WGS72 +units=m +no_defs"}, + {32246, "+proj=utm +zone=46 +ellps=WGS72 +units=m +no_defs"}, + {32247, "+proj=utm +zone=47 +ellps=WGS72 +units=m +no_defs"}, + {32248, "+proj=utm +zone=48 +ellps=WGS72 +units=m +no_defs"}, + {32249, "+proj=utm +zone=49 +ellps=WGS72 +units=m +no_defs"}, + {32250, "+proj=utm +zone=50 +ellps=WGS72 +units=m +no_defs"}, + {32251, "+proj=utm +zone=51 +ellps=WGS72 +units=m +no_defs"}, + {32252, "+proj=utm +zone=52 +ellps=WGS72 +units=m +no_defs"}, + {32253, "+proj=utm +zone=53 +ellps=WGS72 +units=m +no_defs"}, + {32254, "+proj=utm +zone=54 +ellps=WGS72 +units=m +no_defs"}, + {32255, "+proj=utm +zone=55 +ellps=WGS72 +units=m +no_defs"}, + {32256, "+proj=utm +zone=56 +ellps=WGS72 +units=m +no_defs"}, + {32257, "+proj=utm +zone=57 +ellps=WGS72 +units=m +no_defs"}, + {32258, "+proj=utm +zone=58 +ellps=WGS72 +units=m +no_defs"}, + {32259, "+proj=utm +zone=59 +ellps=WGS72 +units=m +no_defs"}, + {32260, "+proj=utm +zone=60 +ellps=WGS72 +units=m +no_defs"}, + {32301, "+proj=utm +zone=1 +south +ellps=WGS72 +units=m +no_defs"}, + {32302, "+proj=utm +zone=2 +south +ellps=WGS72 +units=m +no_defs"}, + {32303, "+proj=utm +zone=3 +south +ellps=WGS72 +units=m +no_defs"}, + {32304, "+proj=utm +zone=4 +south +ellps=WGS72 +units=m +no_defs"}, + {32305, "+proj=utm +zone=5 +south +ellps=WGS72 +units=m +no_defs"}, + {32306, "+proj=utm +zone=6 +south +ellps=WGS72 +units=m +no_defs"}, + {32307, "+proj=utm +zone=7 +south +ellps=WGS72 +units=m +no_defs"}, + {32308, "+proj=utm +zone=8 +south +ellps=WGS72 +units=m +no_defs"}, + {32309, "+proj=utm +zone=9 +south +ellps=WGS72 +units=m +no_defs"}, + {32310, "+proj=utm +zone=10 +south +ellps=WGS72 +units=m +no_defs"}, + {32311, "+proj=utm +zone=11 +south +ellps=WGS72 +units=m +no_defs"}, + {32312, "+proj=utm +zone=12 +south +ellps=WGS72 +units=m +no_defs"}, + {32313, "+proj=utm +zone=13 +south +ellps=WGS72 +units=m +no_defs"}, + {32314, "+proj=utm +zone=14 +south +ellps=WGS72 +units=m +no_defs"}, + {32315, "+proj=utm +zone=15 +south +ellps=WGS72 +units=m +no_defs"}, + {32316, "+proj=utm +zone=16 +south +ellps=WGS72 +units=m +no_defs"}, + {32317, "+proj=utm +zone=17 +south +ellps=WGS72 +units=m +no_defs"}, + {32318, "+proj=utm +zone=18 +south +ellps=WGS72 +units=m +no_defs"}, + {32319, "+proj=utm +zone=19 +south +ellps=WGS72 +units=m +no_defs"}, + {32320, "+proj=utm +zone=20 +south +ellps=WGS72 +units=m +no_defs"}, + {32321, "+proj=utm +zone=21 +south +ellps=WGS72 +units=m +no_defs"}, + {32322, "+proj=utm +zone=22 +south +ellps=WGS72 +units=m +no_defs"}, + {32323, "+proj=utm +zone=23 +south +ellps=WGS72 +units=m +no_defs"}, + {32324, "+proj=utm +zone=24 +south +ellps=WGS72 +units=m +no_defs"}, + {32325, "+proj=utm +zone=25 +south +ellps=WGS72 +units=m +no_defs"}, + {32326, "+proj=utm +zone=26 +south +ellps=WGS72 +units=m +no_defs"}, + {32327, "+proj=utm +zone=27 +south +ellps=WGS72 +units=m +no_defs"}, + {32328, "+proj=utm +zone=28 +south +ellps=WGS72 +units=m +no_defs"}, + {32329, "+proj=utm +zone=29 +south +ellps=WGS72 +units=m +no_defs"}, + {32330, "+proj=utm +zone=30 +south +ellps=WGS72 +units=m +no_defs"}, + {32331, "+proj=utm +zone=31 +south +ellps=WGS72 +units=m +no_defs"}, + {32332, "+proj=utm +zone=32 +south +ellps=WGS72 +units=m +no_defs"}, + {32333, "+proj=utm +zone=33 +south +ellps=WGS72 +units=m +no_defs"}, + {32334, "+proj=utm +zone=34 +south +ellps=WGS72 +units=m +no_defs"}, + {32335, "+proj=utm +zone=35 +south +ellps=WGS72 +units=m +no_defs"}, + {32336, "+proj=utm +zone=36 +south +ellps=WGS72 +units=m +no_defs"}, + {32337, "+proj=utm +zone=37 +south +ellps=WGS72 +units=m +no_defs"}, + {32338, "+proj=utm +zone=38 +south +ellps=WGS72 +units=m +no_defs"}, + {32339, "+proj=utm +zone=39 +south +ellps=WGS72 +units=m +no_defs"}, + {32340, "+proj=utm +zone=40 +south +ellps=WGS72 +units=m +no_defs"}, + {32341, "+proj=utm +zone=41 +south +ellps=WGS72 +units=m +no_defs"}, + {32342, "+proj=utm +zone=42 +south +ellps=WGS72 +units=m +no_defs"}, + {32343, "+proj=utm +zone=43 +south +ellps=WGS72 +units=m +no_defs"}, + {32344, "+proj=utm +zone=44 +south +ellps=WGS72 +units=m +no_defs"}, + {32345, "+proj=utm +zone=45 +south +ellps=WGS72 +units=m +no_defs"}, + {32346, "+proj=utm +zone=46 +south +ellps=WGS72 +units=m +no_defs"}, + {32347, "+proj=utm +zone=47 +south +ellps=WGS72 +units=m +no_defs"}, + {32348, "+proj=utm +zone=48 +south +ellps=WGS72 +units=m +no_defs"}, + {32349, "+proj=utm +zone=49 +south +ellps=WGS72 +units=m +no_defs"}, + {32350, "+proj=utm +zone=50 +south +ellps=WGS72 +units=m +no_defs"}, + {32351, "+proj=utm +zone=51 +south +ellps=WGS72 +units=m +no_defs"}, + {32352, "+proj=utm +zone=52 +south +ellps=WGS72 +units=m +no_defs"}, + {32353, "+proj=utm +zone=53 +south +ellps=WGS72 +units=m +no_defs"}, + {32354, "+proj=utm +zone=54 +south +ellps=WGS72 +units=m +no_defs"}, + {32355, "+proj=utm +zone=55 +south +ellps=WGS72 +units=m +no_defs"}, + {32356, "+proj=utm +zone=56 +south +ellps=WGS72 +units=m +no_defs"}, + {32357, "+proj=utm +zone=57 +south +ellps=WGS72 +units=m +no_defs"}, + {32358, "+proj=utm +zone=58 +south +ellps=WGS72 +units=m +no_defs"}, + {32359, "+proj=utm +zone=59 +south +ellps=WGS72 +units=m +no_defs"}, + {32360, "+proj=utm +zone=60 +south +ellps=WGS72 +units=m +no_defs"}, + {32401, "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32402, "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32403, "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32404, "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32405, "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32406, "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32407, "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32408, "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32409, "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32410, "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32411, "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32412, "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32413, "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32414, "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32415, "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32416, "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32417, "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32418, "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32419, "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32420, "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32421, "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32422, "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32423, "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32424, "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32425, "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32426, "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32427, "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32428, "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32429, "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32430, "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32431, "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32432, "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32433, "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32434, "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32435, "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32436, "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32437, "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32438, "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32439, "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32440, "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32441, "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32442, "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32443, "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32444, "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32445, "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32446, "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32447, "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32448, "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32449, "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32450, "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32451, "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32452, "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32453, "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32454, "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32455, "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32456, "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32457, "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32458, "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32459, "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32460, "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32501, "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32502, "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32503, "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32504, "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32505, "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32506, "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32507, "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32508, "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32509, "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32510, "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32511, "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32512, "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32513, "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32514, "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32515, "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32516, "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32517, "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32518, "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32519, "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32520, "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32521, "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32522, "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32523, "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32524, "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32525, "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32526, "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32527, "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32528, "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32529, "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32530, "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32531, "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32532, "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32533, "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32534, "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32535, "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32536, "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32537, "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32538, "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32539, "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32540, "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32541, "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32542, "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32543, "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32544, "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32545, "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32546, "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32547, "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32548, "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32549, "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32550, "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32551, "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32552, "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32553, "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32554, "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32555, "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32556, "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32557, "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32558, "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32559, "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + {32560, "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs"}, + //{32600, ""}, + {32601, "+proj=utm +zone=1 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32602, "+proj=utm +zone=2 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32603, "+proj=utm +zone=3 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32604, "+proj=utm +zone=4 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32605, "+proj=utm +zone=5 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32606, "+proj=utm +zone=6 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32607, "+proj=utm +zone=7 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32608, "+proj=utm +zone=8 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32609, "+proj=utm +zone=9 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32610, "+proj=utm +zone=10 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32611, "+proj=utm +zone=11 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32612, "+proj=utm +zone=12 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32613, "+proj=utm +zone=13 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32614, "+proj=utm +zone=14 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32615, "+proj=utm +zone=15 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32616, "+proj=utm +zone=16 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32617, "+proj=utm +zone=17 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32618, "+proj=utm +zone=18 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32619, "+proj=utm +zone=19 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32620, "+proj=utm +zone=20 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32621, "+proj=utm +zone=21 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32622, "+proj=utm +zone=22 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32623, "+proj=utm +zone=23 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32624, "+proj=utm +zone=24 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32625, "+proj=utm +zone=25 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32626, "+proj=utm +zone=26 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32627, "+proj=utm +zone=27 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32628, "+proj=utm +zone=28 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32629, "+proj=utm +zone=29 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32630, "+proj=utm +zone=30 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32631, "+proj=utm +zone=31 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32632, "+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32633, "+proj=utm +zone=33 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32634, "+proj=utm +zone=34 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32635, "+proj=utm +zone=35 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32636, "+proj=utm +zone=36 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32637, "+proj=utm +zone=37 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32638, "+proj=utm +zone=38 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32639, "+proj=utm +zone=39 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32640, "+proj=utm +zone=40 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32641, "+proj=utm +zone=41 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32642, "+proj=utm +zone=42 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32643, "+proj=utm +zone=43 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32644, "+proj=utm +zone=44 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32645, "+proj=utm +zone=45 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32646, "+proj=utm +zone=46 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32647, "+proj=utm +zone=47 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32648, "+proj=utm +zone=48 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32649, "+proj=utm +zone=49 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32650, "+proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32651, "+proj=utm +zone=51 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32652, "+proj=utm +zone=52 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32653, "+proj=utm +zone=53 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32654, "+proj=utm +zone=54 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32655, "+proj=utm +zone=55 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32656, "+proj=utm +zone=56 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32657, "+proj=utm +zone=57 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32658, "+proj=utm +zone=58 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32659, "+proj=utm +zone=59 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32660, "+proj=utm +zone=60 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32661, "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32662, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + //{32663, ""}, + {32664, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs"}, + {32665, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs"}, + {32666, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs"}, + {32667, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs"}, + //{32700, ""}, + {32701, "+proj=utm +zone=1 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32702, "+proj=utm +zone=2 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32703, "+proj=utm +zone=3 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32704, "+proj=utm +zone=4 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32705, "+proj=utm +zone=5 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32706, "+proj=utm +zone=6 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32707, "+proj=utm +zone=7 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32708, "+proj=utm +zone=8 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32709, "+proj=utm +zone=9 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32710, "+proj=utm +zone=10 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32711, "+proj=utm +zone=11 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32712, "+proj=utm +zone=12 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32713, "+proj=utm +zone=13 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32714, "+proj=utm +zone=14 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32715, "+proj=utm +zone=15 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32716, "+proj=utm +zone=16 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32717, "+proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32718, "+proj=utm +zone=18 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32719, "+proj=utm +zone=19 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32720, "+proj=utm +zone=20 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32721, "+proj=utm +zone=21 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32722, "+proj=utm +zone=22 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32723, "+proj=utm +zone=23 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32724, "+proj=utm +zone=24 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32725, "+proj=utm +zone=25 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32726, "+proj=utm +zone=26 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32727, "+proj=utm +zone=27 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32728, "+proj=utm +zone=28 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32729, "+proj=utm +zone=29 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32730, "+proj=utm +zone=30 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32731, "+proj=utm +zone=31 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32732, "+proj=utm +zone=32 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32733, "+proj=utm +zone=33 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32734, "+proj=utm +zone=34 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32735, "+proj=utm +zone=35 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32736, "+proj=utm +zone=36 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32737, "+proj=utm +zone=37 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32738, "+proj=utm +zone=38 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32739, "+proj=utm +zone=39 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32740, "+proj=utm +zone=40 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32741, "+proj=utm +zone=41 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32742, "+proj=utm +zone=42 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32743, "+proj=utm +zone=43 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32744, "+proj=utm +zone=44 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32745, "+proj=utm +zone=45 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32746, "+proj=utm +zone=46 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32747, "+proj=utm +zone=47 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32748, "+proj=utm +zone=48 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32749, "+proj=utm +zone=49 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32750, "+proj=utm +zone=50 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32751, "+proj=utm +zone=51 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32752, "+proj=utm +zone=52 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32753, "+proj=utm +zone=53 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32754, "+proj=utm +zone=54 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32755, "+proj=utm +zone=55 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32756, "+proj=utm +zone=56 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32757, "+proj=utm +zone=57 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32758, "+proj=utm +zone=58 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32759, "+proj=utm +zone=59 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32760, "+proj=utm +zone=60 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32761, "+proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {32766, "+proj=tmerc +lat_0=0 +lon_0=36 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {61206405, "+proj=longlat +ellps=bessel +no_defs"}, + {61216405, "+proj=longlat +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0.0,0.0,0.0,0.0 +no_defs"}, + {61226405, "+proj=longlat +a=6378135 +b=6356750.304921594 +no_defs"}, + {61236405, "+proj=longlat +ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,-0.345,1.376,0.30857215014565614 +no_defs"}, + {61246405, "+proj=longlat +ellps=bessel +towgs84=414.1,41.3,603.1,-0.855,-2.141,7.023,0.0 +no_defs"}, + {61266405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61266413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61276405, "+proj=longlat +ellps=clrk66 +towgs84=-82.875,-57.097,-156.768,-2.158,-1.524,0.982,-0.07404906544270759 +no_defs"}, + {61286405, "+proj=longlat +ellps=clrk66 +no_defs"}, + {61296405, "+proj=longlat +ellps=clrk66 +no_defs"}, + {61306405, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,-0.0,0.0,0.0,0.0 +no_defs"}, + {61306413, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,-0.0,0.0,0.0,0.0 +no_defs"}, + {61316405, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=182.0,915.0,344.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61326405, "+proj=longlat +ellps=clrk80 +towgs84=-244.72,-162.773,400.75,0.0,0.0,0.0,0.0 +no_defs"}, + {61336405, "+proj=longlat +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,0.0003,0.007,-0.002887707287459349 +no_defs"}, + {61346405, "+proj=longlat +ellps=clrk80 +towgs84=-191.808,-250.512,167.861,-0.792,-1.653,8.558,4.270300283733636 +no_defs"}, + {61356405, "+proj=longlat +ellps=clrk66 +towgs84=58.0,-283.0,-182.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61366405, "+proj=longlat +ellps=clrk66 +no_defs"}, + {61376405, "+proj=longlat +ellps=clrk66 +no_defs"}, + {61386405, "+proj=longlat +ellps=clrk66 +no_defs"}, + {61396405, "+proj=longlat +ellps=clrk66 +towgs84=11.0,72.0,-101.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61406405, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs"}, + {61406413, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs"}, + {61416405, "+proj=longlat +ellps=GRS80 +towgs84=-48.0,55.0,52.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61426405, "+proj=longlat +ellps=clrk80 +towgs84=-125.0,53.0,467.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61436405, "+proj=longlat +ellps=clrk80 +towgs84=-124.76,53.0,466.79,0.0,0.0,0.0,0.0 +no_defs"}, + {61446405, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=214.0,804.0,268.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61456405, "+proj=longlat +a=6377301.243 +b=6356100.230165384 +towgs84=275.57,676.78,229.6,0.0,0.0,0.0,0.0 +no_defs"}, + {61466405, "+proj=longlat +a=6377299.151 +b=6356098.145120132 +towgs84=295.0,736.0,257.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61476405, "+proj=longlat +ellps=krass +towgs84=-17.51,-108.32,-62.39,0.0,0.0,0.0,0.0 +no_defs"}, + {61486405, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61486413, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61496405, "+proj=longlat +ellps=bessel +towgs84=674.4,15.1,405.3,0.0,0.0,0.0,0.0 +no_defs"}, + {61506405, "+proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0.0,0.0,0.0,0.0 +no_defs"}, + {61516405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61516413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61526405, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs"}, + {61526413, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs"}, + {61536405, "+proj=longlat +ellps=intl +towgs84=-133.63,-157.5,-158.62,0.0,0.0,0.0,0.0 +no_defs"}, + {61546405, "+proj=longlat +ellps=intl +towgs84=-123.02,-158.95,-168.47,0.0,0.0,0.0,0.0 +no_defs"}, + {61556405, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-83.0,37.0,124.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61566405, "+proj=longlat +ellps=bessel +towgs84=559.0,68.7,451.5,7.92,4.073,4.251,1.1777720436709203 +no_defs"}, + {61576405, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs"}, + {61586405, "+proj=longlat +ellps=intl +towgs84=-0.465,372.095,171.736,0.0,0.0,0.0,0.0 +no_defs"}, + {61596405, "+proj=longlat +ellps=intl +towgs84=-114.7,-98.5,-150.7,0.0,0.0,0.0,0.0 +no_defs"}, + {61606405, "+proj=longlat +ellps=intl +no_defs"}, + {61616405, "+proj=longlat +ellps=intl +towgs84=27.5,14.0,186.4,0.0,0.0,0.0,0.0 +no_defs"}, + {61626405, "+proj=longlat +ellps=bessel +no_defs"}, + {61636405, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61636413, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61646405, "+proj=longlat +ellps=krass +towgs84=-76.0,-138.0,67.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61656405, "+proj=longlat +ellps=intl +towgs84=-173.0,253.0,27.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61666405, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61676405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61676413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61686405, "+proj=longlat +a=6378300 +b=6356751.689189189 +towgs84=-199.0,32.0,322.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61696405, "+proj=longlat +ellps=clrk66 +towgs84=-115.0,118.0,426.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61706405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61706413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61716405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61716413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61736405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61736413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61746405, "+proj=longlat +a=6378300 +b=6356751.689189189 +no_defs"}, + {61756405, "+proj=longlat +ellps=clrk80 +towgs84=-88.0,4.0,101.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61766405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61766413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61786405, "+proj=longlat +ellps=krass +towgs84=24.0,-123.0,-94.0,0.02,0.25,0.13,0.226891286871806 +no_defs"}, + {61796405, "+proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.17326243724756094 +no_defs"}, + {61806405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61806413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61816405, "+proj=longlat +ellps=intl +towgs84=-193.0,13.7,-39.3,-0.41,-2.933,2.688,0.08869386668625144 +no_defs"}, + {61826405, "+proj=longlat +ellps=intl +towgs84=-422.651,-172.995,84.02,0.0,0.0,0.0,0.0 +no_defs"}, + {61836405, "+proj=longlat +ellps=intl +towgs84=-104.0,167.0,-38.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61846405, "+proj=longlat +ellps=intl +towgs84=-203.0,141.0,53.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61886405, "+proj=longlat +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,1.6810581709138355 +no_defs"}, + {61896405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61896413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61906405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61906413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {61916405, "+proj=longlat +ellps=krass +no_defs"}, + {61926405, "+proj=longlat +ellps=intl +towgs84=-206.1,-174.7,-87.7,0.0,0.0,0.0,0.0 +no_defs"}, + {61936405, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0.0,0.0,0.0,0.0 +no_defs"}, + {61946405, "+proj=longlat +ellps=intl +towgs84=163.511,127.533,-159.789,0.0,0.0,0.814,-0.12375888374825782 +no_defs"}, + {61956405, "+proj=longlat +ellps=intl +towgs84=105.0,326.0,-102.5,0.0,0.0,0.814,-0.12375888374825782 +no_defs"}, + {61966405, "+proj=longlat +ellps=intl +towgs84=-45.0,417.0,-3.5,0.0,0.0,0.814,-0.12375888374825782 +no_defs"}, + {61976405, "+proj=longlat +ellps=clrk80 +no_defs"}, + {61986405, "+proj=longlat +ellps=clrk80 +no_defs"}, + {61996405, "+proj=longlat +ellps=intl +no_defs"}, + {62006405, "+proj=longlat +ellps=krass +no_defs"}, + {62016405, "+proj=longlat +ellps=clrk80 +towgs84=-165.0,-11.0,206.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62026405, "+proj=longlat +ellps=aust_SA +towgs84=-124.133,-42.003,137.4,-0.008,-0.557,-0.178,-0.3824149507821167 +no_defs"}, + {62036405, "+proj=longlat +ellps=aust_SA +towgs84=-117.763,-51.51,139.061,0.292,-0.443,-0.277,-0.03939657799319541 +no_defs"}, + {62046405, "+proj=longlat +ellps=intl +towgs84=-18.944,-379.364,-24.063,0.04,0.764,-6.431,0.7543103964456315 +no_defs"}, + {62056405, "+proj=longlat +ellps=krass +towgs84=-43.0,-163.0,45.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62066405, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {62076405, "+proj=longlat +ellps=intl +towgs84=-288.885,-91.744,126.244,-1.691,-0.41,0.211,-0.948405579124149 +no_defs"}, + {62086405, "+proj=longlat +ellps=intl +towgs84=-161.0,310.0,-145.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62096405, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +towgs84=-138.0,-105.0,-289.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62106405, "+proj=longlat +ellps=clrk80 +towgs84=-157.0,-2.0,-299.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62116405, "+proj=longlat +ellps=bessel +towgs84=-377.7,675.1,-52.2,0.0,0.0,0.0,0.0 +no_defs"}, + {62126405, "+proj=longlat +ellps=clrk80 +towgs84=31.95,300.99,419.19,0.0,0.0,0.0,0.0 +no_defs"}, + {62136405, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-106.0,-87.0,188.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62146405, "+proj=longlat +ellps=krass +towgs84=15.8,-154.4,-82.3,0.0,0.0,0.0,0.0 +no_defs"}, + {62156405, "+proj=longlat +ellps=intl +no_defs"}, + {62166405, "+proj=longlat +ellps=clrk66 +towgs84=-73.0,213.0,296.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62186405, "+proj=longlat +ellps=intl +towgs84=304.5,306.5,-318.1,0.0,0.0,0.0,0.0 +no_defs"}, + {62196405, "+proj=longlat +ellps=bessel +towgs84=-384.0,664.0,-48.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62206405, "+proj=longlat +ellps=clrk80 +towgs84=-50.9,-347.6,-231.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62216405, "+proj=longlat +ellps=intl +towgs84=-154.5,150.7,100.4,0.0,0.0,0.0,0.0 +no_defs"}, + {62226405, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +towgs84=-136.0,-108.0,-292.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62236405, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-260.1,5.5,432.2,0.0,0.0,0.0,0.0 +no_defs"}, + {62246405, "+proj=longlat +ellps=intl +towgs84=-134.0,229.0,-29.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62256405, "+proj=longlat +ellps=intl +towgs84=-206.0,172.0,-6.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62276405, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-83.58,-397.54,458.78,-17.595,-2.847,4.256,0.6652040001468859 +no_defs"}, + {62296405, "+proj=longlat +ellps=helmert +towgs84=-130.0,110.0,-13.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62306405, "+proj=longlat +ellps=intl +towgs84=-157.89,-17.16,-78.41,2.118,2.697,-1.434,-1.1097046576093785 +no_defs"}, + {62316405, "+proj=longlat +ellps=intl +towgs84=-82.981,-99.719,-110.709,-0.10470001565102613,0.031001600378938583,0.08040202147511816,-0.06482902860346239 +no_defs"}, + {62326405, "+proj=longlat +ellps=clrk80 +towgs84=-346.0,-1.0,224.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62336405, "+proj=longlat +ellps=intl +towgs84=-133.0,-321.0,50.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62366405, "+proj=longlat +ellps=intl +towgs84=-637.0,-549.0,-203.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62376405, "+proj=longlat +ellps=GRS67 +towgs84=57.01,-69.97,-9.29,0.0,0.0,0.0,0.0 +no_defs"}, + {62386405, "+proj=longlat +a=6378160 +b=6356774.50408554 +towgs84=-1.977,-13.06,-9.993,0.364,-0.254,-0.689,-0.2138966040782389 +no_defs"}, + {62396405, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=217.0,823.0,299.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62406405, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=204.64,834.74,293.8,0.0,0.0,0.0,0.0 +no_defs"}, + {62416405, "+proj=longlat +ellps=clrk80 +no_defs"}, + {62426405, "+proj=longlat +ellps=clrk66 +towgs84=-33.722,153.789,94.959,-8.581,4.478,-4.54,1.8460700159115124 +no_defs"}, + {62436405, "+proj=longlat +a=6377299.36559538 +b=6356098.357204818 +no_defs"}, + {62446405, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=-97.0,787.0,86.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62456405, "+proj=longlat +a=6377304.063 +b=6356103.038993155 +towgs84=-11.0,851.0,5.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62466405, "+proj=longlat +ellps=clrk80 +towgs84=-294.7,-200.1,525.5,0.0,0.0,0.0,0.0 +no_defs"}, + {62476405, "+proj=longlat +ellps=intl +towgs84=-273.5,110.6,-357.9,0.0,0.0,0.0,0.0 +no_defs"}, + {62486405, "+proj=longlat +ellps=intl +towgs84=-307.7,265.3,-363.5,0.0,0.0,0.0,0.0 +no_defs"}, + {62496405, "+proj=longlat +ellps=intl +no_defs"}, + {62506405, "+proj=longlat +ellps=clrk80 +towgs84=-130.0,29.0,364.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62516405, "+proj=longlat +ellps=clrk80 +towgs84=-90.0,40.0,88.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62526405, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {62536405, "+proj=longlat +ellps=clrk66 +towgs84=-133.0,-77.0,-51.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62546405, "+proj=longlat +ellps=intl +towgs84=18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0002681442481212253 +no_defs"}, + {62556405, "+proj=longlat +ellps=intl +towgs84=-333.0,-222.0,114.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62566405, "+proj=longlat +ellps=clrk80 +towgs84=41.0,-220.0,-134.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62576405, "+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0.0,0.0,0.0,0.0 +no_defs"}, + {62586405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62586413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62596405, "+proj=longlat +ellps=intl +towgs84=-254.1,-5.36,-100.29,0.0,0.0,0.0,0.0 +no_defs"}, + {62616405, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=31.0,146.0,47.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62626405, "+proj=longlat +ellps=bessel +towgs84=639.0,405.0,60.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62636405, "+proj=longlat +ellps=clrk80 +towgs84=-90.2,-87.32,114.17,0.0,0.0,0.0,0.0 +no_defs"}, + {62646405, "+proj=longlat +ellps=intl +towgs84=-252.95,-4.11,-96.38,0.0,0.0,0.0,0.0 +no_defs"}, + {62656405, "+proj=longlat +ellps=intl +towgs84=-50.2,-50.4,84.8,-0.69,-2.012,0.459,-5.791915759418465 +no_defs"}, + {62666405, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-80.7,-132.5,41.1,0.0,0.0,0.0,0.0 +no_defs"}, + {62676405, "+proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs"}, + {62686405, "+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs"}, + {62696405, "+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs"}, + {62706405, "+proj=longlat +ellps=clrk80 +towgs84=-245.0,-153.9,382.8,0.0,0.0,0.0,0.0 +no_defs"}, + {62716405, "+proj=longlat +ellps=intl +towgs84=-2.0,374.0,172.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62726405, "+proj=longlat +ellps=intl +datum=nzgd49 +no_defs"}, + {62736405, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93.0,474.5,7.889,0.05,-6.61,1.2809044467944684 +no_defs"}, + {62746405, "+proj=longlat +ellps=intl +towgs84=-239.749,88.181,30.488,0.263,-0.082,-1.211,0.4597642531247778 +no_defs"}, + {62756405, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168.0,-60.0,320.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62766405, "+proj=longlat +ellps=WGS66 +no_defs"}, + {62776405, "+proj=longlat +ellps=airy +datum=OSGB36 +no_defs"}, + {62786405, "+proj=longlat +ellps=airy +no_defs"}, + {62796405, "+proj=longlat +ellps=airy +no_defs"}, + {62806405, "+proj=longlat +ellps=bessel +no_defs"}, + {62816405, "+proj=longlat +a=6378300.789 +b=6356566.435 +towgs84=-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,0.20626480624709637 +no_defs"}, + {62826405, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-178.3,-316.7,-131.5,5.278,6.077,10.979,3.953271276531849 +no_defs"}, + {62836405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62836413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62846405, "+proj=longlat +ellps=krass +towgs84=-40.595,-18.55,-69.339,2.508,-1.832,2.611,-0.8867324020562674 +no_defs"}, + {62856405, "+proj=longlat +ellps=intl +towgs84=-128.033,-283.697,21.052,0.0,0.0,0.0,0.0 +no_defs"}, + {62866405, "+proj=longlat +ellps=helmert +no_defs"}, + {62886405, "+proj=longlat +ellps=intl +no_defs"}, + {62896405, "+proj=longlat +ellps=bessel +towgs84=565.04,49.91,465.84,-0.40939438743923684,-0.35970519561431136,1.868491000350572,0.8409828680306614 +no_defs"}, + {62926405, "+proj=longlat +ellps=intl +towgs84=-355.0,21.0,72.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62936405, "+proj=longlat +ellps=bess_nam +towgs84=616.0,97.0,-251.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62956405, "+proj=longlat +ellps=bessel +no_defs"}, + {62976405, "+proj=longlat +ellps=intl +towgs84=-189.0,-242.0,-91.0,0.0,0.0,0.0,0.0 +no_defs"}, + {62986405, "+proj=longlat +ellps=evrstSS +towgs84=-533.4,669.2,-52.5,0.0,0.0,4.28,1.9388891787227058 +no_defs"}, + {62996405, "+proj=longlat +a=6377340.189 +b=6356034.447938534 +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,1.6810581709138355 +no_defs"}, + {63006405, "+proj=longlat +a=6377340.189 +b=6356034.447938534 +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,1.6810581709138355 +no_defs"}, + {63016405, "+proj=longlat +ellps=bessel +towgs84=-147.0,506.0,687.0,0.0,0.0,0.0,0.0 +no_defs"}, + {63026405, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +towgs84=-61.702,284.488,472.052,0.0,0.0,0.0,0.0 +no_defs"}, + {63036405, "+proj=longlat +ellps=helmert +no_defs"}, + {63046405, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73.0,-247.0,227.0,0.0,0.0,0.0,0.0 +no_defs"}, + {63066405, "+proj=longlat +ellps=bessel +no_defs"}, + {63076405, "+proj=longlat +ellps=clrk80 +towgs84=-169.559,-72.34,303.102,0.0,0.0,0.0,0.0 +no_defs"}, + {63086405, "+proj=longlat +ellps=bessel +no_defs"}, + {63096405, "+proj=longlat +ellps=intl +towgs84=-155.0,171.0,37.0,0.0,0.0,0.0,0.0 +no_defs"}, + {63106405, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs"}, + {63116405, "+proj=longlat +ellps=intl +towgs84=-265.0,120.0,-358.0,0.0,0.0,0.0,0.0 +no_defs"}, + {63126405, "+proj=longlat +ellps=bessel +towgs84=426.9,142.6,460.1,4.91,4.49,-12.42,3.5271281868253483 +no_defs"}, + {63136405, "+proj=longlat +ellps=intl +towgs84=-106.8686,52.2978,-103.7239,0.3366,0.457,-1.8422,0.26292574852317374 +no_defs"}, + {63146405, "+proj=longlat +ellps=bessel +datum=potsdam +no_defs"}, + {63156405, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-23.0,259.0,-9.0,0.0,0.0,0.0,0.0 +no_defs"}, + {63166405, "+proj=longlat +ellps=intl +towgs84=103.25,-100.4,-307.19,0.0,0.0,0.0,0.0 +no_defs"}, + {63176405, "+proj=longlat +ellps=krass +towgs84=28.0,-121.0,-77.0,0.0,0.0,0.0,0.0 +no_defs"}, + {63186405, "+proj=longlat +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0.0,0.0,0.0,0.0 +no_defs"}, + {63196405, "+proj=longlat +ellps=GRS80 +towgs84=226.702,-193.337,-35.371,-2.229,4.391,-9.238,0.20209825716090501 +no_defs"}, + {63226405, "+proj=longlat +ellps=WGS72 +towgs84=0.0,0.0,4.5,0.0,0.0,0.554,0.045171992568114105 +no_defs"}, + {63246405, "+proj=longlat +ellps=WGS72 +towgs84=0.0,0.0,1.9,0.0,0.0,0.814,-0.07838062637389662 +no_defs"}, + {63266405, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"}, + //{63266406, ""}, + //{63266407, ""}, + //{63266408, ""}, + //{63266409, ""}, + //{63266410, ""}, + {63266411, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"}, + //{63266412, ""}, + {63266413, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"}, + //{63266414, ""}, + //{63266415, ""}, + //{63266416, ""}, + //{63266417, ""}, + //{63266418, ""}, + {63266419, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"}, + //{63266420, ""}, + {66006405, "+proj=longlat +ellps=clrk80 +no_defs"}, + {66016405, "+proj=longlat +ellps=clrk80 +towgs84=-255.0,-15.0,71.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66026405, "+proj=longlat +ellps=clrk80 +towgs84=725.0,685.0,536.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66036405, "+proj=longlat +ellps=clrk80 +towgs84=72.0,213.7,93.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66046405, "+proj=longlat +ellps=clrk80 +towgs84=174.0,359.0,365.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66056405, "+proj=longlat +ellps=clrk80 +towgs84=9.0,183.0,236.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66066405, "+proj=longlat +ellps=clrk80 +towgs84=-149.0,128.0,296.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66076405, "+proj=longlat +ellps=clrk80 +towgs84=195.671,332.517,274.607,0.0,0.0,0.0,0.0 +no_defs"}, + {66086405, "+proj=longlat +ellps=clrk66 +no_defs"}, + {66096405, "+proj=longlat +ellps=clrk66 +no_defs"}, + {66106405, "+proj=longlat +a=6378140 +b=6356755.288157528 +no_defs"}, + {66116405, "+proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.243649,-1.158827,-0.22570443917666022 +no_defs"}, + {66126405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66126413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66136405, "+proj=longlat +ellps=bessel +towgs84=-404.78,685.68,45.47,0.0,0.0,0.0,0.0 +no_defs"}, + {66146405, "+proj=longlat +ellps=intl +towgs84=-119.4248,-303.65872,-11.00061,1.164298,0.174458,1.096259,0.7543238036580374 +no_defs"}, + {66156405, "+proj=longlat +ellps=intl +towgs84=-499.0,-249.0,314.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66166405, "+proj=longlat +ellps=intl +towgs84=-289.0,-124.0,60.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66186405, "+proj=longlat +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0.0,0.0,0.0,0.0 +no_defs"}, + {66196405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66196413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66206405, "+proj=longlat +ellps=clrk80 +towgs84=-106.0,-129.0,165.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66216405, "+proj=longlat +ellps=intl +towgs84=137.0,248.0,-430.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66226405, "+proj=longlat +ellps=intl +towgs84=-472.29,-5.63,-304.12,0.4362,-0.8374,0.2563,0.39157310817948776 +no_defs"}, + {66236405, "+proj=longlat +ellps=intl +towgs84=-186.0,230.0,110.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66246405, "+proj=longlat +ellps=GRS80 +towgs84=2.0,2.0,-2.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66246413, "+proj=longlat +ellps=GRS80 +towgs84=2.0,2.0,-2.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66256405, "+proj=longlat +ellps=intl +towgs84=126.93,547.94,130.41,-2.7867,5.1612,-0.8584,2.851136537311739 +no_defs"}, + {66266405, "+proj=longlat +ellps=intl +towgs84=94.0,-948.0,-1262.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66276405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66276413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66286405, "+proj=longlat +ellps=intl +towgs84=162.0,117.0,154.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66296405, "+proj=longlat +ellps=intl +towgs84=72.438,345.918,79.486,1.6045,-0.8823,-0.5565,0.2835316026672587 +no_defs"}, + {66306405, "+proj=longlat +ellps=intl +towgs84=259.551,297.612,197.833,-1.4866,2.1224,0.4612,5.574285762347154 +no_defs"}, + {66316405, "+proj=longlat +ellps=intl +towgs84=145.0,-187.0,103.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66326405, "+proj=longlat +ellps=intl +towgs84=-382.0,-59.0,-262.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66336405, "+proj=longlat +ellps=intl +towgs84=335.47,222.58,-230.94,0.0,0.0,0.0,0.0 +no_defs"}, + {66346405, "+proj=longlat +ellps=intl +towgs84=-11.64,-348.6,291.98,0.0,0.0,0.0,0.0 +no_defs"}, + {66356405, "+proj=longlat +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,0.9240250790257423 +no_defs"}, + {66366405, "+proj=longlat +ellps=intl +towgs84=365.0,194.0,166.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66376405, "+proj=longlat +ellps=intl +towgs84=325.0,154.0,172.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66386405, "+proj=longlat +ellps=clrk66 +towgs84=30.0,430.0,368.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66396405, "+proj=longlat +ellps=intl +towgs84=253.0,-132.0,-127.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66406405, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66406413, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66416405, "+proj=longlat +ellps=intl +towgs84=287.58,177.78,-135.41,0.0,0.0,0.0,0.0 +no_defs"}, + {66426405, "+proj=longlat +ellps=intl +towgs84=-13.0,-348.0,292.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66436405, "+proj=longlat +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-23.039820110761912 +no_defs"}, + {66446405, "+proj=longlat +ellps=intl +towgs84=-10.18,-350.43,291.37,0.0,0.0,0.0,0.0 +no_defs"}, + {66456405, "+proj=longlat +ellps=intl +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66456413, "+proj=longlat +ellps=intl +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66466405, "+proj=longlat +ellps=intl +no_defs"}, + {66576405, "+proj=longlat +a=6377019.27 +b=6355762.5391 +towgs84=-28.0,199.0,5.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66586405, "+proj=longlat +ellps=intl +towgs84=-73.0,46.0,-86.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66596405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66596413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66606405, "+proj=longlat +ellps=intl +towgs84=982.6087,552.753,-540.873,6.681626625276941,-31.61149240864225,-19.848161004816845,3.466280068982454 +no_defs"}, + {66616405, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66616413, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {66636405, "+proj=longlat +ellps=intl +towgs84=-210.502,-66.902,-48.476,2.094,15.067,5.817,0.10003843102984174 +no_defs"}, + {66646405, "+proj=longlat +ellps=intl +towgs84=-208.719,129.685,52.092,-0.195,0.014,-0.327,0.040840431636925086 +no_defs"}, + {66656405, "+proj=longlat +ellps=intl +towgs84=-103.088,162.481,-28.276,0.167,-0.082,-0.168,-0.31022226859563296 +no_defs"}, + {66666405, "+proj=longlat +ellps=bessel +towgs84=631.392,-66.551,481.442,1.09,4.445,4.487,-0.9137530916746368 +no_defs"}, + {66676405, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs"}, + {68016405, "+proj=longlat +ellps=bessel +pm=bern +no_defs"}, + {68026405, "+proj=longlat +ellps=intl +pm=bogota +no_defs"}, + {68036405, "+proj=longlat +ellps=intl +pm=lisbon +no_defs"}, + {68046405, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs"}, + {68056405, "+proj=longlat +ellps=bessel +pm=ferro +no_defs"}, + {68066405, "+proj=longlat +ellps=intl +pm=rome +no_defs"}, + {68086405, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs"}, + {68096405, "+proj=longlat +ellps=intl +pm=brussels +no_defs"}, + {68136405, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs"}, + {68146405, "+proj=longlat +ellps=bessel +pm=stockholm +no_defs"}, + {68156405, "+proj=longlat +ellps=bessel +pm=athens +no_defs"}, + {68186405, "+proj=longlat +ellps=bessel +pm=ferro +no_defs"}, + {68206405, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs"}, + {69036405, "+proj=longlat +a=6378298.3 +b=6356657.142669561 +pm=madrid +no_defs"} + }; + + const code_element * first = arr; + const code_element * last = arr + sizeof(arr) / sizeof(code_element); + const code_element * el = binary_find_code_element(first, last, code); + + return el != last ? el->proj4_str : ""; + } + +} +#endif // DOXYGEN_NO_DETAIL + + +}}} // namespace boost::geometry::projections + +#endif diff --git a/boost/geometry/srs/projections/epsg_params.hpp b/boost/geometry/srs/projections/epsg_params.hpp new file mode 100644 index 0000000000..e9572bf25d --- /dev/null +++ b/boost/geometry/srs/projections/epsg_params.hpp @@ -0,0 +1,48 @@ +// Boost.Geometry + +// Copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_SRS_PROJECTIONS_EPSG_PARAMS_HPP +#define BOOST_GEOMETRY_SRS_PROJECTIONS_EPSG_PARAMS_HPP + + +#include <string> + +#include <boost/geometry/srs/spheroid.hpp> + + +namespace boost { namespace geometry +{ + +namespace srs +{ + + +struct epsg +{ + explicit epsg(int c) + : code(c) + {} + + int code; +}; + + +template <int Code> +struct static_epsg +{ + static const int code = Code; +}; + + +} // namespace srs + + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_SRS_PROJECTIONS_EPSG_PARAMS_HPP diff --git a/boost/geometry/srs/projections/epsg_traits.hpp b/boost/geometry/srs/projections/epsg_traits.hpp new file mode 100644 index 0000000000..6cc642cae4 --- /dev/null +++ b/boost/geometry/srs/projections/epsg_traits.hpp @@ -0,0 +1,4417 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_EPSG_TRAITS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_EPSG_TRAITS_HPP + + +#include <boost/geometry/core/tags.hpp> + +#include <boost/geometry/srs/projections/factory.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/srid_traits.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + +/*! + \brief EPSG traits + \details With help of the EPSG traits library users can statically use projections + or coordinate systems specifying an EPSG code. The correct projections for transformations + are used automically then, still keeping static polymorphism. + \ingroup projection + \tparam EPSG epsg code +*/ +template <size_t EPSG> +struct epsg_traits +{ + // Specializations define: + // - type to get projection type + // - function par to get parameters +}; + +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2000, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2001, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2002, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2003, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2004, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2005, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2006, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2007, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=195.671,332.517,274.607,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2008, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2009, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2010, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2011, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2012, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2013, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2014, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2015, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2016, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2017, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2018, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2019, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2020, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2021, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2022, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2023, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2024, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2025, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2026, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2027, utm, clrk66, "+proj=utm +zone=15 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2028, utm, clrk66, "+proj=utm +zone=16 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2029, utm, clrk66, "+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2030, utm, clrk66, "+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2031, utm, clrk66, "+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2032, utm, clrk66, "+proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2033, utm, clrk66, "+proj=utm +zone=19 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2034, utm, clrk66, "+proj=utm +zone=20 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2035, utm, clrk66, "+proj=utm +zone=21 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2036, sterea, GRS80, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2037, utm, GRS80, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2038, utm, GRS80, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2039, tmerc, GRS80, "+proj=tmerc +lat_0=31.73439361111111 +lon_0=35.20451694444445 +k=1.0000067 +x_0=219529.584 +y_0=626907.39 +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2040, utm, clrk80, "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2041, utm, clrk80, "+proj=utm +zone=30 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2042, utm, clrk80, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2043, utm, clrk80, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2044, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2045, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2046, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2047, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2048, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2049, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2050, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2051, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2052, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2053, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2054, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2055, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2056, somerc, bessel, "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2057, omerc, intl, "+proj=omerc +lat_0=27.51882880555555 +lonc=52.60353916666667 +alpha=0.5716611944444444 +k=0.999895934 +x_0=658377.437 +y_0=3044969.194 +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2058, utm, intl, "+proj=utm +zone=38 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2059, utm, intl, "+proj=utm +zone=39 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2060, utm, intl, "+proj=utm +zone=40 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2061, utm, intl, "+proj=utm +zone=41 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2062, lcc, 6378298.3, 6356657.142669561, "+proj=lcc +lat_1=40 +lat_0=40 +lon_0=0 +k_0=0.9988085293 +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.142669561 +pm=madrid +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2063, utm, 6378249.2, 6356515, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2064, utm, 6378249.2, 6356515, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2065, krovak, bessel, "+proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2066, cass, 6378293.645208759, 6356617.987679838, "+proj=cass +lat_0=11.25217861111111 +lon_0=-60.68600888888889 +x_0=37718.66159325 +y_0=36209.91512952 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2067, utm, intl, "+proj=utm +zone=20 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2068, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2069, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2070, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2071, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2072, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2073, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2074, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2075, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=23 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2076, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=25 +k=0.9999 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2077, utm, intl, "+proj=utm +zone=32 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2078, utm, intl, "+proj=utm +zone=33 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2079, utm, intl, "+proj=utm +zone=34 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2080, utm, intl, "+proj=utm +zone=35 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2081, tmerc, intl, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2082, tmerc, intl, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2083, tmerc, intl, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2084, utm, intl, "+proj=utm +zone=19 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2085, lcc, clrk66, NAD27, "+proj=lcc +lat_1=22.35 +lat_0=22.35 +lon_0=-81 +k_0=0.99993602 +x_0=500000 +y_0=280296.016 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2086, lcc, clrk66, NAD27, "+proj=lcc +lat_1=20.71666666666667 +lat_0=20.71666666666667 +lon_0=-76.83333333333333 +k_0=0.99994848 +x_0=500000 +y_0=229126.939 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2087, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2088, tmerc, 6378249.2, 6356515, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.9996 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2089, utm, WGS84, "+proj=utm +zone=38 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2090, utm, WGS84, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2091, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2092, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2093, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=106 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2094, tmerc, WGS72, "+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y_0=0 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2095, utm, intl, "+proj=utm +zone=28 +ellps=intl +towgs84=-173,253,27,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2096, tmerc, bessel, "+proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2097, tmerc, bessel, "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2098, tmerc, bessel, "+proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2099, cass, helmert, "+proj=cass +lat_0=25.38236111111111 +lon_0=50.76138888888889 +x_0=100000 +y_0=100000 +ellps=helmert +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2100, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2101, lcc, intl, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=0 +y_0=-52684.972 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2102, lcc, intl, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=200000 +y_0=147315.028 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2103, lcc, intl, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=500000 +y_0=447315.028 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2104, lcc, intl, "+proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=-17044 +y_0=-23139.97 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2105, tmerc, GRS80, "+proj=tmerc +lat_0=-36.87972222222222 +lon_0=174.7641666666667 +k=0.9999 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2106, tmerc, GRS80, "+proj=tmerc +lat_0=-37.76111111111111 +lon_0=176.4661111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2107, tmerc, GRS80, "+proj=tmerc +lat_0=-38.62444444444444 +lon_0=177.8855555555556 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2108, tmerc, GRS80, "+proj=tmerc +lat_0=-39.65083333333333 +lon_0=176.6736111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2109, tmerc, GRS80, "+proj=tmerc +lat_0=-39.13555555555556 +lon_0=174.2277777777778 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2110, tmerc, GRS80, "+proj=tmerc +lat_0=-39.51222222222222 +lon_0=175.64 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2111, tmerc, GRS80, "+proj=tmerc +lat_0=-40.24194444444444 +lon_0=175.4880555555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2112, tmerc, GRS80, "+proj=tmerc +lat_0=-40.92527777777777 +lon_0=175.6472222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2113, tmerc, GRS80, "+proj=tmerc +lat_0=-41.3011111111111 +lon_0=174.7763888888889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2114, tmerc, GRS80, "+proj=tmerc +lat_0=-40.71472222222223 +lon_0=172.6719444444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2115, tmerc, GRS80, "+proj=tmerc +lat_0=-41.27444444444444 +lon_0=173.2991666666667 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2116, tmerc, GRS80, "+proj=tmerc +lat_0=-41.28972222222222 +lon_0=172.1088888888889 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2117, tmerc, GRS80, "+proj=tmerc +lat_0=-41.81055555555555 +lon_0=171.5811111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2118, tmerc, GRS80, "+proj=tmerc +lat_0=-42.33361111111111 +lon_0=171.5497222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2119, tmerc, GRS80, "+proj=tmerc +lat_0=-42.68888888888888 +lon_0=173.01 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2120, tmerc, GRS80, "+proj=tmerc +lat_0=-41.54444444444444 +lon_0=173.8019444444444 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2121, tmerc, GRS80, "+proj=tmerc +lat_0=-42.88611111111111 +lon_0=170.9797222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2122, tmerc, GRS80, "+proj=tmerc +lat_0=-43.11 +lon_0=170.2608333333333 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2123, tmerc, GRS80, "+proj=tmerc +lat_0=-43.97777777777778 +lon_0=168.6061111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2124, tmerc, GRS80, "+proj=tmerc +lat_0=-43.59055555555556 +lon_0=172.7269444444445 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2125, tmerc, GRS80, "+proj=tmerc +lat_0=-43.74861111111111 +lon_0=171.3605555555555 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2126, tmerc, GRS80, "+proj=tmerc +lat_0=-44.40194444444445 +lon_0=171.0572222222222 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2127, tmerc, GRS80, "+proj=tmerc +lat_0=-44.735 +lon_0=169.4675 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2128, tmerc, GRS80, "+proj=tmerc +lat_0=-45.13277777777778 +lon_0=168.3986111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2129, tmerc, GRS80, "+proj=tmerc +lat_0=-45.56361111111111 +lon_0=167.7386111111111 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2130, tmerc, GRS80, "+proj=tmerc +lat_0=-45.81611111111111 +lon_0=170.6283333333333 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2131, tmerc, GRS80, "+proj=tmerc +lat_0=-45.86138888888889 +lon_0=170.2825 +k=0.99996 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2132, tmerc, GRS80, "+proj=tmerc +lat_0=-46.6 +lon_0=168.3427777777778 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2133, utm, GRS80, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2134, utm, GRS80, "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2135, utm, GRS80, "+proj=utm +zone=60 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2136, tmerc, 6378300, 6356751.689189189, "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.99975 +x_0=274319.7391633579 +y_0=0 +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +to_meter=0.3047997101815088 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2137, tmerc, 6378300, 6356751.689189189, "+proj=tmerc +lat_0=0 +lon_0=-1 +k=0.9996 +x_0=500000 +y_0=0 +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2138, lcc, clrk66, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2139, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2140, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2141, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2142, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2143, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2144, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2145, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2146, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2147, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2148, utm, GRS80, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2149, utm, GRS80, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2150, utm, GRS80, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2151, utm, GRS80, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2152, utm, GRS80, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2153, utm, GRS80, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2154, lcc, GRS80, "+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2155, lcc, clrk66, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2156, utm, GRS80, "+proj=utm +zone=59 +south +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2157, tmerc, GRS80, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=0.99982 +x_0=600000 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2158, utm, GRS80, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2159, tmerc, 6378300, 6356751.689189189, "+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_0=152399.8550907544 +y_0=0 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2160, tmerc, 6378300, 6356751.689189189, "+proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1 +x_0=243839.7681452071 +y_0=182879.8261089053 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2161, utm, clrk80, "+proj=utm +zone=28 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2162, utm, clrk80, "+proj=utm +zone=29 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (epsg, 2163, laea, 6370997, "+proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2164, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2165, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=-5 +k=0.9996 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2166, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2167, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2168, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2169, tmerc, intl, "+proj=tmerc +lat_0=49.83333333333334 +lon_0=6.166666666666667 +k=1 +x_0=80000 +y_0=100000 +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2170, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2171, sterea, krass, "+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5647000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2172, sterea, krass, "+proj=sterea +lat_0=53.00194444444445 +lon_0=21.50277777777778 +k=0.9998 +x_0=4603000 +y_0=5806000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2173, sterea, krass, "+proj=sterea +lat_0=53.58333333333334 +lon_0=17.00833333333333 +k=0.9998 +x_0=3501000 +y_0=5999000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2174, sterea, krass, "+proj=sterea +lat_0=51.67083333333333 +lon_0=16.67222222222222 +k=0.9998 +x_0=3703000 +y_0=5627000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2175, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=18.95833333333333 +k=0.999983 +x_0=237000 +y_0=-4700000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2176, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.999923 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2177, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.999923 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2178, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.999923 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2179, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.999923 +x_0=8500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2180, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9993 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2188, utm, intl, "+proj=utm +zone=25 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2189, utm, intl, "+proj=utm +zone=26 +ellps=intl +towgs84=-104,167,-38,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2190, utm, intl, "+proj=utm +zone=26 +ellps=intl +towgs84=-203,141,53,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2191, utm, intl, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2192, lcc, intl, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.337229166666667 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2193, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2194, lcc, clrk66, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2195, utm, GRS80, "+proj=utm +zone=2 +south +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2196, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=9.5 +k=0.99995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2197, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.99995 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2198, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2199, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2200, sterea, 6378135, 6356750.304921594, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=300000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2201, utm, GRS80, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2202, utm, GRS80, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2203, utm, GRS80, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2204, lcc, clrk66, NAD27, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=609601.2192024384 +y_0=30480.06096012192 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2205, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2206, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2207, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2208, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2209, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2210, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2211, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2212, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2213, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2214, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2215, utm, 6378249.2, 6356515, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2216, utm, intl, "+proj=utm +zone=22 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2217, utm, intl, "+proj=utm +zone=23 +ellps=intl +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2218, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2219, utm, 6378135, 6356750.304921594, "+proj=utm +zone=19 +a=6378135 +b=6356750.304921594 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2220, utm, 6378135, 6356750.304921594, "+proj=utm +zone=20 +a=6378135 +b=6356750.304921594 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2221, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2222, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2223, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2224, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2225, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2226, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2227, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2228, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2229, lcc, GRS80, NAD83, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2230, lcc, GRS80, NAD83, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2231, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2232, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2233, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2234, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2235, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2236, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2237, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2238, lcc, GRS80, NAD83, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2239, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2240, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2241, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2242, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2243, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2244, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2245, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2246, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2247, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2248, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2249, lcc, GRS80, NAD83, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2250, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2251, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2252, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2253, lcc, GRS80, NAD83, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2254, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2255, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2256, lcc, GRS80, NAD83, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2257, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2258, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2259, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2260, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2261, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2262, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2263, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2264, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2265, lcc, GRS80, NAD83, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2266, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2267, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2268, lcc, GRS80, NAD83, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2269, lcc, GRS80, NAD83, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2270, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2271, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2272, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2273, lcc, GRS80, NAD83, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2274, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2275, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2276, lcc, GRS80, NAD83, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2277, lcc, GRS80, NAD83, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2278, lcc, GRS80, NAD83, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2279, lcc, GRS80, NAD83, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2280, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2281, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2282, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2283, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2284, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2285, lcc, GRS80, NAD83, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2286, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2287, lcc, GRS80, NAD83, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2288, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2289, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2290, sterea, 6378135, 6356750.304921594, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=700000 +y_0=400000 +a=6378135 +b=6356750.304921594 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2291, sterea, 6378135, 6356750.304921594, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2292, sterea, GRS80, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2294, tmerc, 6378135, 6356750.304921594, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=4500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2295, tmerc, 6378135, 6356750.304921594, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=5500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2296, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2297, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2298, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2299, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2300, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2301, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2302, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2303, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2304, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2305, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2306, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2307, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2308, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=109 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2309, tmerc, WGS84, WGS84, "+proj=tmerc +lat_0=0 +lon_0=116 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2310, tmerc, WGS84, WGS84, "+proj=tmerc +lat_0=0 +lon_0=132 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2311, tmerc, WGS84, WGS84, "+proj=tmerc +lat_0=0 +lon_0=6 +k=0.9996 +x_0=500000 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2312, utm, clrk80, "+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2313, utm, clrk80, "+proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2314, cass, 6378293.645208759, 6356617.987679838, "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392052001 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.3047972654 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2315, utm, intl, "+proj=utm +zone=19 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2316, utm, intl, "+proj=utm +zone=20 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2317, lcc, intl, "+proj=lcc +lat_1=9 +lat_2=3 +lat_0=6 +lon_0=-66 +x_0=1000000 +y_0=1000000 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2318, lcc, intl, "+proj=lcc +lat_1=17 +lat_2=33 +lat_0=25.08951 +lon_0=48 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2319, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2320, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2321, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2322, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2323, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2324, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2325, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2326, tmerc, intl, "+proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2327, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2328, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2329, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2330, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2331, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2332, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2333, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2334, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2335, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2336, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2337, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2338, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2339, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2340, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2341, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2342, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2343, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2344, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2345, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2346, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2347, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2348, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2349, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2350, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2351, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2352, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2353, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2354, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2355, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2356, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2357, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2358, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2359, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2360, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2361, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2362, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2363, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2364, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2365, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2366, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2367, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2368, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2369, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2370, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2371, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2372, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2373, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2374, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2375, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2376, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2377, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2378, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2379, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2380, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2381, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2382, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2383, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2384, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2385, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2386, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2387, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2388, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2389, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2390, tmerc, 6378140, 6356755.288157528, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2391, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2392, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2393, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2394, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=4500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2395, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2396, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2397, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2398, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2399, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2400, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2401, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2402, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2403, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2404, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2405, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2406, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2407, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2408, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2409, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2410, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2411, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2412, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2413, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2414, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2415, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2416, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2417, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2418, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2419, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2420, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2421, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2422, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2423, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2424, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2425, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2426, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2427, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2428, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2429, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2430, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2431, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2432, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2433, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2434, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2435, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2436, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2437, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2438, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2439, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2440, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2441, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2442, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2443, tmerc, GRS80, "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2444, tmerc, GRS80, "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2445, tmerc, GRS80, "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2446, tmerc, GRS80, "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2447, tmerc, GRS80, "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2448, tmerc, GRS80, "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2449, tmerc, GRS80, "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2450, tmerc, GRS80, "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2451, tmerc, GRS80, "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2452, tmerc, GRS80, "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2453, tmerc, GRS80, "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2454, tmerc, GRS80, "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2455, tmerc, GRS80, "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2456, tmerc, GRS80, "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2457, tmerc, GRS80, "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2458, tmerc, GRS80, "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2459, tmerc, GRS80, "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2460, tmerc, GRS80, "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2461, tmerc, GRS80, "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2462, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2463, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2464, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2465, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2466, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2467, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2468, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2469, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2470, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2471, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2472, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2473, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2474, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2475, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2476, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2477, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2478, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2479, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2480, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2481, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2482, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2483, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2484, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2485, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2486, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2487, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2488, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2489, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2490, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2491, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2492, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2493, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2494, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2495, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2496, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2497, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2498, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2499, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2500, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2501, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2502, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2503, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2504, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2505, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2506, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2507, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2508, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2509, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2510, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2511, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2512, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2513, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2514, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2515, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2516, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2517, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2518, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2519, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2520, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2521, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2522, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2523, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2524, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2525, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2526, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2527, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2528, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2529, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2530, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2531, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2532, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2533, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2534, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2535, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2536, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2537, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2538, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2539, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2540, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2541, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2542, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2543, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2544, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2545, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2546, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2547, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2548, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2549, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2550, utm, bessel, "+proj=utm +zone=50 +south +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2551, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2552, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2553, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2554, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2555, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2556, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2557, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2558, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2559, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2560, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2561, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2562, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2563, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2564, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2565, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2566, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2567, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2568, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2569, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2570, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2571, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2572, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2573, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2574, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2575, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2576, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2577, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2578, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2579, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2580, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2581, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2582, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2583, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2584, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2585, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2586, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2587, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2588, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2589, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2590, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2591, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2592, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2593, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2594, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2595, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2596, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2597, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2598, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2599, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2600, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2601, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2602, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2603, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2604, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2605, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2606, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2607, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2608, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2609, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2610, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2611, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2612, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2613, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2614, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2615, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2616, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2617, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2618, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2619, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2620, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2621, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2622, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2623, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2624, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2625, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2626, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2627, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2628, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2629, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2630, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2631, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2632, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2633, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2634, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2635, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2636, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2637, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2638, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2639, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2640, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2641, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2642, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2643, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2644, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2645, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2646, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2647, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2648, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2649, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2650, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2651, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2652, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2653, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2654, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2655, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2656, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2657, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2658, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2659, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2660, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2661, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2662, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2663, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2664, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2665, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2666, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2667, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2668, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2669, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2670, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2671, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2672, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2673, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2674, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2675, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2676, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2677, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2678, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2679, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2680, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=46500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2681, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=47500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2682, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=48500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2683, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=49500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2684, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=50500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2685, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=51500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2686, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=52500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2687, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=53500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2688, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=54500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2689, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=55500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2690, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=56500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2691, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=57500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2692, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=58500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2693, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=59500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2694, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60000000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2695, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=61500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2696, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=62500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2697, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=63500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2698, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=64500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2699, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2700, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2701, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2702, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2703, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2704, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2705, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2706, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2707, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2708, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2709, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2710, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=54 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2711, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2712, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=60 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2713, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2714, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=66 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2715, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2716, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=72 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2717, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2718, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=78 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2719, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2720, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=84 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2721, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2722, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=90 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2723, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2724, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=96 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2725, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2726, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2727, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2728, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=108 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2729, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2730, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2731, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2732, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=120 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2733, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2734, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=126 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2735, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2736, utm, clrk66, "+proj=utm +zone=36 +south +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2737, utm, clrk66, "+proj=utm +zone=37 +south +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2738, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=132 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2739, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2740, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=138 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2741, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2742, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=144 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2743, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2744, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=150 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2745, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2746, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=156 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2747, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2748, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=162 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2749, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2750, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2751, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2752, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2753, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2754, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2755, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2756, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-174 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2757, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2758, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-168 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2759, tmerc, GRS80, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2760, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2761, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2762, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2763, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2764, lcc, GRS80, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2765, lcc, GRS80, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2766, lcc, GRS80, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2767, lcc, GRS80, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2768, lcc, GRS80, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2769, lcc, GRS80, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2770, lcc, GRS80, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2771, lcc, GRS80, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2772, lcc, GRS80, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2773, lcc, GRS80, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2774, lcc, GRS80, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2775, lcc, GRS80, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2776, tmerc, GRS80, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2777, tmerc, GRS80, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2778, tmerc, GRS80, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2779, lcc, GRS80, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2780, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2781, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2782, tmerc, GRS80, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2783, tmerc, GRS80, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2784, tmerc, GRS80, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2785, tmerc, GRS80, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2786, tmerc, GRS80, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2787, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2788, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2789, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2790, tmerc, GRS80, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2791, tmerc, GRS80, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2792, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2793, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2794, lcc, GRS80, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2795, lcc, GRS80, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2796, lcc, GRS80, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2797, lcc, GRS80, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2798, lcc, GRS80, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2799, lcc, GRS80, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2800, lcc, GRS80, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2801, lcc, GRS80, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2802, tmerc, GRS80, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2803, tmerc, GRS80, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2804, lcc, GRS80, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2805, lcc, GRS80, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2806, lcc, GRS80, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2807, lcc, GRS80, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2808, lcc, GRS80, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2809, lcc, GRS80, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2810, lcc, GRS80, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2811, lcc, GRS80, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2812, lcc, GRS80, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2813, tmerc, GRS80, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2814, tmerc, GRS80, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2815, tmerc, GRS80, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2816, tmerc, GRS80, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2817, tmerc, GRS80, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2818, lcc, GRS80, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2819, lcc, GRS80, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2820, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2821, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2822, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2823, tmerc, GRS80, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2824, tmerc, GRS80, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2825, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2826, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2827, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2828, tmerc, GRS80, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2829, tmerc, GRS80, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2830, tmerc, GRS80, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2831, lcc, GRS80, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2832, lcc, GRS80, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2833, lcc, GRS80, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2834, lcc, GRS80, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2835, lcc, GRS80, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2836, lcc, GRS80, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2837, lcc, GRS80, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2838, lcc, GRS80, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2839, lcc, GRS80, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2840, tmerc, GRS80, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2841, lcc, GRS80, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2842, lcc, GRS80, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2843, lcc, GRS80, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2844, lcc, GRS80, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2845, lcc, GRS80, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2846, lcc, GRS80, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2847, lcc, GRS80, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2848, lcc, GRS80, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2849, lcc, GRS80, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2850, lcc, GRS80, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2851, lcc, GRS80, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2852, tmerc, GRS80, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2853, lcc, GRS80, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2854, lcc, GRS80, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2855, lcc, GRS80, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2856, lcc, GRS80, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2857, lcc, GRS80, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2858, lcc, GRS80, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2859, lcc, GRS80, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2860, lcc, GRS80, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2861, lcc, GRS80, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2862, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2863, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2864, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2865, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2866, lcc, GRS80, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2867, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2868, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2869, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2870, lcc, GRS80, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2871, lcc, GRS80, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2872, lcc, GRS80, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2873, lcc, GRS80, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2874, lcc, GRS80, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2875, lcc, GRS80, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2876, lcc, GRS80, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2877, lcc, GRS80, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2878, lcc, GRS80, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2879, lcc, GRS80, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2880, tmerc, GRS80, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2881, tmerc, GRS80, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2882, tmerc, GRS80, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2883, lcc, GRS80, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2884, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2885, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2886, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2887, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2888, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2889, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2890, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2891, lcc, GRS80, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2892, lcc, GRS80, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2893, lcc, GRS80, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2894, lcc, GRS80, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2895, lcc, GRS80, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2896, lcc, GRS80, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2897, lcc, GRS80, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2898, lcc, GRS80, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2899, tmerc, GRS80, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2900, tmerc, GRS80, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2901, lcc, GRS80, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2902, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2903, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2904, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2905, tmerc, GRS80, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2906, tmerc, GRS80, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2907, tmerc, GRS80, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2908, lcc, GRS80, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2909, lcc, GRS80, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2910, lcc, GRS80, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2911, lcc, GRS80, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2912, lcc, GRS80, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2913, lcc, GRS80, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2914, lcc, GRS80, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2915, lcc, GRS80, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2916, lcc, GRS80, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2917, lcc, GRS80, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2918, lcc, GRS80, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2919, lcc, GRS80, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2920, lcc, GRS80, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2921, lcc, GRS80, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2922, lcc, GRS80, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2923, lcc, GRS80, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2924, lcc, GRS80, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2925, lcc, GRS80, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2926, lcc, GRS80, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2927, lcc, GRS80, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2928, lcc, GRS80, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2929, lcc, GRS80, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2930, lcc, GRS80, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 2931, tmerc, 6378249.2, 6356515, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.9996 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +towgs84=-106,-87,188,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2932, tmerc, intl, "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.99999 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2933, utm, bessel, "+proj=utm +zone=50 +south +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2934, merc, bessel, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2935, tmerc, krass, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=41.53333333333333 +k=1 +x_0=1300000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2936, tmerc, krass, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=44.53333333333333 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2937, tmerc, krass, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=47.53333333333333 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2938, tmerc, krass, "+proj=tmerc +lat_0=0.1166666666666667 +lon_0=50.53333333333333 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2939, tmerc, krass, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=50.76666666666667 +k=1 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2940, tmerc, krass, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=53.76666666666667 +k=1 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2941, tmerc, krass, "+proj=tmerc +lat_0=0.1333333333333333 +lon_0=56.76666666666667 +k=1 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2942, utm, intl, "+proj=utm +zone=28 +ellps=intl +towgs84=-499,-249,314,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2943, utm, intl, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2944, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2945, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2946, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2947, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2948, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2949, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2950, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2951, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2952, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2953, sterea, GRS80, "+proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2954, sterea, GRS80, "+proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2955, utm, GRS80, "+proj=utm +zone=11 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2956, utm, GRS80, "+proj=utm +zone=12 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2957, utm, GRS80, "+proj=utm +zone=13 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2958, utm, GRS80, "+proj=utm +zone=17 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2959, utm, GRS80, "+proj=utm +zone=18 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2960, utm, GRS80, "+proj=utm +zone=19 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2961, utm, GRS80, "+proj=utm +zone=20 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2962, utm, GRS80, "+proj=utm +zone=21 +ellps=GRS80 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2963, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2964, aea, clrk66, NAD27, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2965, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2966, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2967, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2968, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2969, utm, intl, "+proj=utm +zone=20 +ellps=intl +towgs84=137,248,-430,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2970, utm, intl, "+proj=utm +zone=20 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2971, utm, intl, "+proj=utm +zone=22 +ellps=intl +towgs84=-186,230,110,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2972, utm, GRS80, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2973, utm, intl, "+proj=utm +zone=20 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2975, utm, GRS80, "+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2976, utm, intl, "+proj=utm +zone=6 +south +ellps=intl +towgs84=162,117,154,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2977, utm, intl, "+proj=utm +zone=5 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2978, utm, intl, "+proj=utm +zone=7 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2979, utm, intl, "+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,103,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2980, utm, intl, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,-262,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2981, utm, intl, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2982, utm, intl, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2983, utm, intl, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2984, lcc, intl, "+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.33333333333333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +ellps=intl +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2985, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 2986, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2987, utm, clrk66, "+proj=utm +zone=21 +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2988, utm, intl, "+proj=utm +zone=1 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2989, utm, WGS84, "+proj=utm +zone=20 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2990, tmerc, intl, "+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333333333 +k=1 +x_0=50000 +y_0=160000 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2991, lcc, GRS80, NAD83, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 2992, lcc, GRS80, NAD83, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2993, lcc, GRS80, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2994, lcc, GRS80, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2995, utm, intl, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2996, utm, intl, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2997, utm, intl, "+proj=utm +zone=58 +south +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2998, utm, intl, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 2999, utm, intl, "+proj=utm +zone=38 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3000, merc, bessel, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3001, merc, bessel, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3002, merc, bessel, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3003, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3004, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3005, aea, GRS80, NAD83, "+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3006, utm, GRS80, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3007, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3008, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=13.5 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3009, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3010, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=16.5 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3011, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3012, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=14.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3013, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=15.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3014, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=17.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3015, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=18.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3016, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=20.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3017, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=21.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3018, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=23.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3019, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3020, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3021, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3022, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3023, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3024, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3025, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3026, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3027, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3028, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3029, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3030, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3031, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3032, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=70 +k=1 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3033, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.5 +lat_2=-74.5 +lat_0=-50 +lon_0=70 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3034, lcc, GRS80, "+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4000000 +y_0=2800000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3035, laea, GRS80, "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3036, utm, WGS84, "+proj=utm +zone=36 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3037, utm, WGS84, "+proj=utm +zone=37 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3038, utm, GRS80, "+proj=utm +zone=26 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3039, utm, GRS80, "+proj=utm +zone=27 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3040, utm, GRS80, "+proj=utm +zone=28 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3041, utm, GRS80, "+proj=utm +zone=29 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3042, utm, GRS80, "+proj=utm +zone=30 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3043, utm, GRS80, "+proj=utm +zone=31 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3044, utm, GRS80, "+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3045, utm, GRS80, "+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3046, utm, GRS80, "+proj=utm +zone=34 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3047, utm, GRS80, "+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3048, utm, GRS80, "+proj=utm +zone=36 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3049, utm, GRS80, "+proj=utm +zone=37 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3050, utm, GRS80, "+proj=utm +zone=38 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3051, utm, GRS80, "+proj=utm +zone=39 +ellps=GRS80 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3052, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3053, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3054, utm, intl, "+proj=utm +zone=26 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3055, utm, intl, "+proj=utm +zone=27 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3056, utm, intl, "+proj=utm +zone=28 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3057, lcc, GRS80, "+proj=lcc +lat_1=64.25 +lat_2=65.75 +lat_0=65 +lon_0=-19 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3058, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=-8.5 +k=1 +x_0=50000 +y_0=-7800000 +ellps=intl +towgs84=982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3059, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3060, utm, intl, "+proj=utm +zone=58 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3061, utm, intl, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3062, utm, intl, "+proj=utm +zone=26 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3063, utm, intl, "+proj=utm +zone=26 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3064, utm, WGS84, "+proj=utm +zone=32 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3065, utm, WGS84, "+proj=utm +zone=33 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3066, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=37 +k=0.9998 +x_0=500000 +y_0=-3000000 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3067, utm, GRS80, "+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3068, cass, bessel, potsdam, "+proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 +x_0=40000 +y_0=10000 +ellps=bessel +datum=potsdam +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3069, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=500000 +y_0=-4500000 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3070, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3071, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3072, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3073, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3074, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3075, tmerc, GRS80, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3076, tmerc, GRS80, "+proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3077, tmerc, GRS80, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3078, omerc, GRS80, NAD83, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3079, omerc, GRS80, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3080, lcc, clrk66, NAD27, "+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=914400 +y_0=914400 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3081, lcc, GRS80, NAD83, "+proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3082, lcc, GRS80, NAD83, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3083, aea, GRS80, NAD83, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3084, lcc, GRS80, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3085, aea, GRS80, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3086, aea, GRS80, NAD83, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3087, aea, GRS80, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3088, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3089, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3090, lcc, GRS80, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3091, lcc, GRS80, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3092, utm, bessel, "+proj=utm +zone=51 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3093, utm, bessel, "+proj=utm +zone=52 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3094, utm, bessel, "+proj=utm +zone=53 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3095, utm, bessel, "+proj=utm +zone=54 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3096, utm, bessel, "+proj=utm +zone=55 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3097, utm, GRS80, "+proj=utm +zone=51 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3098, utm, GRS80, "+proj=utm +zone=52 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3099, utm, GRS80, "+proj=utm +zone=53 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3100, utm, GRS80, "+proj=utm +zone=54 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3101, utm, GRS80, "+proj=utm +zone=55 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3102, lcc, clrk66, "+proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=95169.31165862332 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3103, utm, clrk80, "+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3104, utm, clrk80, "+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3105, utm, clrk80, "+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3106, tmerc, 6377276.345, 6356075.41314024, "+proj=tmerc +lat_0=0 +lon_0=90 +k=0.9996 +x_0=500000 +y_0=0 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3107, lcc, GRS80, "+proj=lcc +lat_1=-28 +lat_2=-36 +lat_0=-32 +lon_0=135 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3108, tmerc, GRS80, "+proj=tmerc +lat_0=49.5 +lon_0=-2.416666666666667 +k=0.999997 +x_0=47000 +y_0=50000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3109, tmerc, GRS80, "+proj=tmerc +lat_0=49.225 +lon_0=-2.135 +k=0.9999999000000001 +x_0=40000 +y_0=70000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3110, lcc, aust_SA, "+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x_0=2500000 +y_0=4500000 +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3111, lcc, GRS80, "+proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x_0=2500000 +y_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3112, lcc, GRS80, "+proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=134 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3113, tmerc, GRS80, "+proj=tmerc +lat_0=-28 +lon_0=153 +k=0.99999 +x_0=50000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3114, tmerc, GRS80, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-80.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3115, tmerc, GRS80, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3116, tmerc, GRS80, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-74.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3117, tmerc, GRS80, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-71.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3118, tmerc, GRS80, "+proj=tmerc +lat_0=4.596200416666666 +lon_0=-68.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3119, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3120, sterea, krass, "+proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5467000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3121, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3122, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3123, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3124, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3125, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3126, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=19 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3127, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3128, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3129, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=22 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3130, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=23 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3131, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3132, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=25 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3133, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=26 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3134, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3135, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3136, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=29 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3137, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3138, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3139, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3140, cass, 6378306.3696, 6356571.996, "+proj=cass +lat_0=-18 +lon_0=178 +x_0=109435.392 +y_0=141622.272 +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +to_meter=0.201168 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3141, utm, intl, "+proj=utm +zone=60 +south +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3142, utm, intl, "+proj=utm +zone=1 +south +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3143, tmerc, WGS72, "+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=2000000 +y_0=4000000 +ellps=WGS72 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3144, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3145, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3146, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3147, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3148, utm, 6377276.345, 6356075.41314024, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3149, utm, 6377276.345, 6356075.41314024, "+proj=utm +zone=49 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3150, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3151, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3152, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=18.05779 +k=0.99999425 +x_0=100178.1808 +y_0=-6500614.7836 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3153, aea, GRS80, "+proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3154, utm, GRS80, "+proj=utm +zone=7 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3155, utm, GRS80, "+proj=utm +zone=8 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3156, utm, GRS80, "+proj=utm +zone=9 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3157, utm, GRS80, "+proj=utm +zone=10 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3158, utm, GRS80, "+proj=utm +zone=14 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3159, utm, GRS80, "+proj=utm +zone=15 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3160, utm, GRS80, "+proj=utm +zone=16 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3161, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x_0=930000 +y_0=6430000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3162, lcc, GRS80, "+proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x_0=930000 +y_0=6430000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3163, lcc, GRS80, "+proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.33333333333333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3164, utm, WGS84, "+proj=utm +zone=58 +south +ellps=WGS84 +towgs84=-56.263,16.136,-22.856,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3165, lcc, intl, "+proj=lcc +lat_1=-22.24469175 +lat_2=-22.29469175 +lat_0=-22.26969175 +lon_0=166.44242575 +x_0=0.66 +y_0=1.02 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3166, lcc, intl, "+proj=lcc +lat_1=-22.24472222222222 +lat_2=-22.29472222222222 +lat_0=-22.26972222222222 +lon_0=166.4425 +x_0=8.313000000000001 +y_0=-2.354 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3167, omerc, 6377295.664, 6356094.667915204, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=40000 +y_0=0 +a=6377295.664 +b=6356094.667915204 +to_meter=20.116756 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3168, omerc, 6377295.664, 6356094.667915204, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=804670.24 +y_0=0 +a=6377295.664 +b=6356094.667915204 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3169, utm, GRS80, "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3170, utm, GRS80, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3171, utm, GRS80, "+proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3172, utm, intl, "+proj=utm +zone=59 +south +ellps=intl +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3173, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3174, aea, GRS80, NAD83, "+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568977 +lon_0=-84.455955 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3175, aea, GRS80, NAD83, "+proj=aea +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568977 +lon_0=-83.248627 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3176, tmerc, 6377276.345, 6356075.41314024, "+proj=tmerc +lat_0=0 +lon_0=106 +k=0.9996 +x_0=500000 +y_0=0 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3177, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.9965000000000001 +x_0=1000000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3178, utm, GRS80, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3179, utm, GRS80, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3180, utm, GRS80, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3181, utm, GRS80, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3182, utm, GRS80, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3183, utm, GRS80, "+proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3184, utm, GRS80, "+proj=utm +zone=24 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3185, utm, GRS80, "+proj=utm +zone=25 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3186, utm, GRS80, "+proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3187, utm, GRS80, "+proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3188, utm, GRS80, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3189, utm, GRS80, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3190, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3191, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=11 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3192, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=13 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3193, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3194, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=17 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3195, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3196, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3197, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=23 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3198, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=25 +k=0.99995 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3199, utm, intl, "+proj=utm +zone=32 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3200, lcc, clrk80, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3201, utm, intl, "+proj=utm +zone=33 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3202, utm, intl, "+proj=utm +zone=34 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3203, utm, intl, "+proj=utm +zone=35 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3204, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3205, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3206, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3207, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-174 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3208, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3209, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3210, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3211, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3212, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3213, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3214, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3215, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3216, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3217, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3218, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3219, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3220, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3221, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3222, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3223, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3224, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3225, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-18 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3226, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-6 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3227, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=6 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3228, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=18 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3229, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=30 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3230, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3231, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3232, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3233, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3234, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3235, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3236, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3237, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3238, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3239, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3240, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3241, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=174 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3242, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-153 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3243, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-135 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3244, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-117 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3245, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-99 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3246, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-81 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3247, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-63 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3248, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-27 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3249, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-9 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3250, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=9 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3251, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=27 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3252, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=45 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3253, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=63 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3254, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=81 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3255, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=99 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3256, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=117 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3257, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=135 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3258, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=153 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3259, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=171 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3260, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-168 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3261, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-144 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3262, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-120 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3263, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-96 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3264, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-72 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3265, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-48 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3266, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-24 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3267, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3268, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=24 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3269, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=48 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3270, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=72 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3271, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=96 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3272, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=120 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3273, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=144 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3274, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=168 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3275, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-165 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3276, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-135 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3277, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-105 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3278, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-75 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3279, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3280, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-15 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3281, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=15 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3282, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3283, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=75 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3284, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=105 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3285, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=135 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3286, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=165 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3287, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3288, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-90 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3289, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-30 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3290, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=30 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3291, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=90 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3292, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3293, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3294, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-78 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3295, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3296, utm, GRS80, "+proj=utm +zone=5 +south +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3297, utm, GRS80, "+proj=utm +zone=6 +south +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3298, utm, GRS80, "+proj=utm +zone=7 +south +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3299, utm, GRS80, "+proj=utm +zone=8 +south +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3300, lcc, GRS80, "+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3301, lcc, GRS80, "+proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3302, utm, intl, "+proj=utm +zone=7 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3303, utm, intl, "+proj=utm +zone=7 +south +ellps=intl +towgs84=347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3304, utm, intl, "+proj=utm +zone=6 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3305, utm, intl, "+proj=utm +zone=6 +south +ellps=intl +towgs84=215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3306, utm, intl, "+proj=utm +zone=5 +south +ellps=intl +towgs84=217.037,86.959,23.956,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3307, utm, WGS84, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3308, lcc, GRS80, "+proj=lcc +lat_1=-30.75 +lat_2=-35.75 +lat_0=-33.25 +lon_0=147 +x_0=9300000 +y_0=4500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3309, aea, clrk66, NAD27, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3310, aea, GRS80, NAD83, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3311, aea, GRS80, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3312, utm, intl, "+proj=utm +zone=21 +ellps=intl +towgs84=-186,230,110,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3313, utm, GRS80, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3314, lcc, clrk66, "+proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=0 +lon_0=26 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3315, tmerc, clrk66, "+proj=tmerc +lat_0=-9 +lon_0=26 +k=0.9998 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3316, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3317, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3318, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3319, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3320, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3321, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3322, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=20 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3323, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=22 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3324, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3325, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=26 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3326, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=28 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3327, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=30 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3328, sterea, krass, "+proj=sterea +lat_0=52.16666666666666 +lon_0=19.16666666666667 +k=0.999714 +x_0=500000 +y_0=500000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3329, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3330, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3331, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3332, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3333, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3334, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3335, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3336, utm, intl, "+proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,103,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3337, lcc, clrk80, "+proj=lcc +lat_1=-20.19506944444445 +lat_0=-20.19506944444445 +lon_0=57.52182777777778 +k_0=1 +x_0=1000000 +y_0=1000000 +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3338, aea, GRS80, NAD83, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3339, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3340, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=14 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3341, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=16 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3342, utm, clrk80, "+proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3343, utm, GRS80, "+proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3344, utm, GRS80, "+proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3345, utm, GRS80, "+proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3346, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3347, lcc, GRS80, NAD83, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3348, lcc, GRS80, "+proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3349, merc, WGS84, WGS84, "+proj=merc +lon_0=-150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3350, tmerc, krass, "+proj=tmerc +lat_0=0.1 +lon_0=21.95 +k=1 +x_0=250000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3351, tmerc, krass, "+proj=tmerc +lat_0=0.1 +lon_0=24.95 +k=1 +x_0=1250000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3352, tmerc, krass, "+proj=tmerc +lat_0=0.1 +lon_0=27.95 +k=1 +x_0=2250000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3353, utm, intl, "+proj=utm +zone=32 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3354, utm, intl, "+proj=utm +zone=32 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3355, tmerc, helmert, "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=810000 +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3356, utm, clrk66, "+proj=utm +zone=17 +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3357, utm, clrk66, "+proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3358, lcc, GRS80, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3359, lcc, GRS80, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024385 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3360, lcc, GRS80, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3361, lcc, GRS80, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3362, lcc, GRS80, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3363, lcc, GRS80, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3364, lcc, GRS80, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3365, lcc, GRS80, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3366, cass, 6378293.645208759, 6356617.987679838, "+proj=cass +lat_0=22.31213333333334 +lon_0=114.1785555555556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=6378293.645208759 +b=6356617.987679838 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3367, utm, clrk80, "+proj=utm +zone=28 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3368, utm, clrk80, "+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3369, utm, clrk80, "+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3370, utm, clrk66, NAD27, "+proj=utm +zone=59 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3371, utm, clrk66, NAD27, "+proj=utm +zone=60 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3372, utm, GRS80, NAD83, "+proj=utm +zone=59 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3373, utm, GRS80, NAD83, "+proj=utm +zone=60 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3374, utm, intl, "+proj=utm +zone=29 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3375, omerc, GRS80, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257964666666 +k=0.99984 +x_0=804671 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3376, omerc, GRS80, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.99984 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3377, cass, GRS80, "+proj=cass +lat_0=2.121679744444445 +lon_0=103.4279362361111 +x_0=-14810.562 +y_0=8758.32 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3378, cass, GRS80, "+proj=cass +lat_0=2.682347636111111 +lon_0=101.9749050416667 +x_0=3673.785 +y_0=-4240.573 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3379, cass, GRS80, "+proj=cass +lat_0=3.769388088888889 +lon_0=102.3682989833333 +x_0=-7368.228 +y_0=6485.858 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3380, cass, GRS80, "+proj=cass +lat_0=3.68464905 +lon_0=101.3891079138889 +x_0=-34836.161 +y_0=56464.049 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3381, cass, GRS80, "+proj=cass +lat_0=4.9762852 +lon_0=103.070275625 +x_0=19594.245 +y_0=3371.895 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3382, cass, GRS80, "+proj=cass +lat_0=5.421517541666667 +lon_0=100.3443769638889 +x_0=-23.414 +y_0=62.283 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3383, cass, GRS80, "+proj=cass +lat_0=5.964672713888889 +lon_0=100.6363711111111 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3384, cass, GRS80, "+proj=cass +lat_0=4.859063022222222 +lon_0=100.8154105861111 +x_0=-1.769 +y_0=133454.779 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3385, cass, GRS80, "+proj=cass +lat_0=5.972543658333334 +lon_0=102.2952416694444 +x_0=13227.851 +y_0=8739.894 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3386, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3387, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=5500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3388, merc, krass, "+proj=merc +lon_0=51 +k=1 +x_0=0 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3389, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3390, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=180 +k=1 +x_0=60500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3391, utm, clrk80, "+proj=utm +zone=37 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3392, utm, clrk80, "+proj=utm +zone=38 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3393, utm, clrk80, "+proj=utm +zone=39 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3394, lcc, clrk80, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3395, merc, WGS84, WGS84, "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3396, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3397, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3398, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3399, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3400, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3401, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3402, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3403, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-115 +k=0.9992 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3404, lcc, GRS80, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3405, utm, WGS84, "+proj=utm +zone=48 +ellps=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3406, utm, WGS84, "+proj=utm +zone=49 +ellps=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3407, cass, 6378293.645208759, 6356617.987679838, "+proj=cass +lat_0=22.31213333333334 +lon_0=114.1785555555556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.3047972654 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (epsg, 3408, laea, 6371228, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (epsg, 3409, laea, 6371228, "+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (epsg, 3410, cea, 6371228, "+proj=cea +lon_0=0 +lat_ts=30 +x_0=0 +y_0=0 +a=6371228 +b=6371228 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3411, stere, 6378273, 6356889.449, "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3412, stere, 6378273, 6356889.449, "+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3413, stere, WGS84, WGS84, "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3414, tmerc, WGS84, "+proj=tmerc +lat_0=1.366666666666667 +lon_0=103.8333333333333 +k=1 +x_0=28001.642 +y_0=38744.572 +ellps=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3415, lcc, WGS72, "+proj=lcc +lat_1=18 +lat_2=24 +lat_0=21 +lon_0=114 +x_0=500000 +y_0=500000 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3416, lcc, GRS80, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3417, lcc, GRS80, NAD83, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3418, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3419, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3420, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3421, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3422, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3423, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3424, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3425, lcc, GRS80, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3426, lcc, GRS80, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3427, lcc, GRS80, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3428, lcc, GRS80, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3429, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3430, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3431, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3432, tmerc, GRS80, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3433, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3434, lcc, GRS80, NAD83, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3435, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3436, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3437, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3438, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3439, utm, clrk80, "+proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3440, utm, clrk80, "+proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3441, lcc, GRS80, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3442, lcc, GRS80, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3443, tmerc, GRS80, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3444, tmerc, GRS80, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3445, tmerc, GRS80, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3446, tmerc, GRS80, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3447, lcc, GRS80, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=50.797815 +lon_0=4.359215833333333 +x_0=150328 +y_0=166262 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3448, lcc, WGS84, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=750000 +y_0=650000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3449, utm, WGS84, "+proj=utm +zone=17 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3450, utm, WGS84, "+proj=utm +zone=18 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3451, lcc, GRS80, NAD83, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3452, lcc, GRS80, NAD83, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3453, lcc, GRS80, NAD83, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3454, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3455, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3456, lcc, GRS80, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3457, lcc, GRS80, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3458, lcc, GRS80, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3459, lcc, GRS80, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3460, tmerc, WGS72, "+proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.99985 +x_0=2000000 +y_0=4000000 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3461, utm, 6378249.2, 6356515, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 3462, utm, 6378249.2, 6356515, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3463, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3464, tmerc, GRS80, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3465, tmerc, GRS80, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3466, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3467, aea, GRS80, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3468, omerc, GRS80, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3469, tmerc, GRS80, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3470, tmerc, GRS80, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3471, tmerc, GRS80, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3472, tmerc, GRS80, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3473, tmerc, GRS80, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3474, tmerc, GRS80, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3475, tmerc, GRS80, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3476, tmerc, GRS80, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3477, lcc, GRS80, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3478, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3479, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3480, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3481, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3482, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3483, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3484, lcc, GRS80, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3485, lcc, GRS80, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3486, lcc, GRS80, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3487, lcc, GRS80, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3488, aea, GRS80, "+proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3489, lcc, GRS80, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3490, lcc, GRS80, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3491, lcc, GRS80, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3492, lcc, GRS80, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3493, lcc, GRS80, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3494, lcc, GRS80, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3495, lcc, GRS80, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3496, lcc, GRS80, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3497, lcc, GRS80, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3498, lcc, GRS80, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3499, lcc, GRS80, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3500, lcc, GRS80, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3501, lcc, GRS80, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3502, lcc, GRS80, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3503, lcc, GRS80, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3504, lcc, GRS80, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3505, lcc, GRS80, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3506, lcc, GRS80, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3507, lcc, GRS80, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3508, lcc, GRS80, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3509, tmerc, GRS80, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3510, tmerc, GRS80, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3511, tmerc, GRS80, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3512, tmerc, GRS80, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3513, aea, GRS80, "+proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3514, lcc, GRS80, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3515, lcc, GRS80, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3516, tmerc, GRS80, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3517, tmerc, GRS80, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3518, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3519, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3520, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3521, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3522, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3523, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3524, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3525, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3526, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3527, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3528, tmerc, GRS80, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3529, tmerc, GRS80, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3530, tmerc, GRS80, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3531, tmerc, GRS80, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3532, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3533, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3534, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3535, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3536, lcc, GRS80, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3537, lcc, GRS80, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3538, lcc, GRS80, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3539, lcc, GRS80, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3540, lcc, GRS80, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3541, lcc, GRS80, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3542, lcc, GRS80, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3543, lcc, GRS80, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3544, lcc, GRS80, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3545, lcc, GRS80, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3546, lcc, GRS80, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3547, lcc, GRS80, "+proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3548, lcc, GRS80, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3549, lcc, GRS80, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3550, lcc, GRS80, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3551, lcc, GRS80, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3552, lcc, GRS80, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3553, lcc, GRS80, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3554, tmerc, GRS80, "+proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3555, tmerc, GRS80, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3556, tmerc, GRS80, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3557, tmerc, GRS80, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3558, tmerc, GRS80, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3559, lcc, GRS80, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3560, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=999999.9999898402 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3561, tmerc, clrk66, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3562, tmerc, clrk66, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3563, tmerc, clrk66, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3564, tmerc, clrk66, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3565, tmerc, clrk66, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3566, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=2000000.00001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3567, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3568, lcc, GRS80, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=999999.9999898402 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3569, lcc, GRS80, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=2000000.00001016 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3570, lcc, GRS80, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0=3000000 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3571, laea, WGS84, WGS84, "+proj=laea +lat_0=90 +lon_0=180 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3572, laea, WGS84, WGS84, "+proj=laea +lat_0=90 +lon_0=-150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3573, laea, WGS84, WGS84, "+proj=laea +lat_0=90 +lon_0=-100 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3574, laea, WGS84, WGS84, "+proj=laea +lat_0=90 +lon_0=-40 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3575, laea, WGS84, WGS84, "+proj=laea +lat_0=90 +lon_0=10 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3576, laea, WGS84, WGS84, "+proj=laea +lat_0=90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3577, aea, GRS80, "+proj=aea +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=132 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3578, aea, GRS80, NAD83, "+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +lon_0=-132.5 +x_0=500000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3579, aea, GRS80, "+proj=aea +lat_1=61.66666666666666 +lat_2=68 +lat_0=59 +lon_0=-132.5 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3580, lcc, GRS80, NAD83, "+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3581, lcc, GRS80, "+proj=lcc +lat_1=62 +lat_2=70 +lat_0=0 +lon_0=-112 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3582, lcc, GRS80, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3583, lcc, GRS80, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3584, lcc, GRS80, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3585, lcc, GRS80, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3586, lcc, GRS80, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3587, lcc, GRS80, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3588, lcc, GRS80, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3589, lcc, GRS80, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3590, lcc, GRS80, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3591, omerc, GRS80, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3592, lcc, GRS80, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3593, lcc, GRS80, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3594, lcc, GRS80, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3595, lcc, GRS80, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3596, lcc, GRS80, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3597, tmerc, GRS80, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3598, tmerc, GRS80, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3599, tmerc, GRS80, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3600, tmerc, GRS80, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3601, tmerc, GRS80, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3602, tmerc, GRS80, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3603, tmerc, GRS80, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3604, lcc, GRS80, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3605, lcc, GRS80, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3606, lcc, GRS80, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3607, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3608, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3609, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3610, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3611, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3612, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3613, tmerc, GRS80, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3614, tmerc, GRS80, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3615, tmerc, GRS80, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3616, tmerc, GRS80, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3617, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3618, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3619, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3620, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3621, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3622, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3623, tmerc, GRS80, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3624, tmerc, GRS80, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3625, tmerc, GRS80, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3626, tmerc, GRS80, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3627, lcc, GRS80, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3628, lcc, GRS80, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3629, tmerc, GRS80, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3630, tmerc, GRS80, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3631, lcc, GRS80, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3632, lcc, GRS80, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3633, lcc, GRS80, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3634, lcc, GRS80, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3635, lcc, GRS80, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3636, lcc, GRS80, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3637, lcc, GRS80, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3638, lcc, GRS80, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3639, lcc, GRS80, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3640, lcc, GRS80, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3641, lcc, GRS80, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3642, lcc, GRS80, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3643, lcc, GRS80, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3644, lcc, GRS80, "+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3645, lcc, GRS80, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3646, lcc, GRS80, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3647, lcc, GRS80, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3648, lcc, GRS80, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3649, lcc, GRS80, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3650, lcc, GRS80, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3651, lcc, GRS80, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3652, lcc, GRS80, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3653, tmerc, GRS80, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3654, tmerc, GRS80, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3655, lcc, GRS80, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3656, lcc, GRS80, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3657, lcc, GRS80, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3658, lcc, GRS80, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3659, lcc, GRS80, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3660, lcc, GRS80, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3661, lcc, GRS80, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3662, lcc, GRS80, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3663, lcc, GRS80, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3664, lcc, GRS80, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3665, aea, GRS80, "+proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3666, lcc, GRS80, "+proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3667, lcc, GRS80, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3668, lcc, GRS80, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3669, lcc, GRS80, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3670, lcc, GRS80, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3671, lcc, GRS80, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3672, lcc, GRS80, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3673, lcc, GRS80, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3674, lcc, GRS80, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3675, lcc, GRS80, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3676, lcc, GRS80, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3677, lcc, GRS80, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=2000000.00001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3678, lcc, GRS80, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3679, lcc, GRS80, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3680, lcc, GRS80, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3681, lcc, GRS80, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3682, lcc, GRS80, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3683, lcc, GRS80, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3684, tmerc, GRS80, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3685, lcc, GRS80, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3686, lcc, GRS80, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3687, lcc, GRS80, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3688, lcc, GRS80, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3689, lcc, GRS80, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3690, lcc, GRS80, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3691, lcc, GRS80, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3692, lcc, GRS80, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3693, lcc, GRS80, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3694, lcc, GRS80, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3695, lcc, GRS80, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3696, lcc, GRS80, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3697, lcc, GRS80, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3698, lcc, GRS80, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3699, lcc, GRS80, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3700, lcc, GRS80, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3701, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3702, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3703, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3704, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3705, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3706, utm, GRS80, "+proj=utm +zone=59 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3707, utm, GRS80, "+proj=utm +zone=60 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3708, utm, GRS80, "+proj=utm +zone=1 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3709, utm, GRS80, "+proj=utm +zone=2 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3710, utm, GRS80, "+proj=utm +zone=3 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3711, utm, GRS80, "+proj=utm +zone=4 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3712, utm, GRS80, "+proj=utm +zone=5 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3713, utm, GRS80, "+proj=utm +zone=6 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3714, utm, GRS80, "+proj=utm +zone=7 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3715, utm, GRS80, "+proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3716, utm, GRS80, "+proj=utm +zone=9 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3717, utm, GRS80, "+proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3718, utm, GRS80, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3719, utm, GRS80, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3720, utm, GRS80, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3721, utm, GRS80, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3722, utm, GRS80, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3723, utm, GRS80, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3724, utm, GRS80, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3725, utm, GRS80, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3726, utm, GRS80, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3727, tmerc, intl, "+proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333333333 +k=1 +x_0=160000 +y_0=50000 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3728, lcc, GRS80, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3729, lcc, GRS80, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3730, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3731, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3732, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3733, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3734, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3735, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3736, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3737, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3738, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3739, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3740, utm, GRS80, "+proj=utm +zone=10 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3741, utm, GRS80, "+proj=utm +zone=11 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3742, utm, GRS80, "+proj=utm +zone=12 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3743, utm, GRS80, "+proj=utm +zone=13 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3744, utm, GRS80, "+proj=utm +zone=14 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3745, utm, GRS80, "+proj=utm +zone=15 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3746, utm, GRS80, "+proj=utm +zone=16 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3747, utm, GRS80, "+proj=utm +zone=17 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3748, utm, GRS80, "+proj=utm +zone=18 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3749, utm, GRS80, "+proj=utm +zone=19 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3750, utm, GRS80, "+proj=utm +zone=4 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3751, utm, GRS80, "+proj=utm +zone=5 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3752, merc, WGS84, WGS84, "+proj=merc +lon_0=100 +lat_ts=-41 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3753, lcc, GRS80, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3754, lcc, GRS80, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3755, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3756, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3757, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3758, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3759, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3760, tmerc, GRS80, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3761, utm, GRS80, "+proj=utm +zone=22 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3762, lcc, WGS84, WGS84, "+proj=lcc +lat_1=-54 +lat_2=-54.75 +lat_0=-55 +lon_0=-37 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3763, tmerc, GRS80, "+proj=tmerc +lat_0=39.66825833333333 +lon_0=-8.133108333333334 +k=1 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3764, tmerc, GRS80, "+proj=tmerc +lat_0=-44 +lon_0=-176.5 +k=1 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3765, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=16.5 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3766, lcc, GRS80, "+proj=lcc +lat_1=45.91666666666666 +lat_2=43.08333333333334 +lat_0=0 +lon_0=16.5 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3767, utm, GRS80, "+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3768, utm, GRS80, "+proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3769, utm, clrk66, "+proj=utm +zone=20 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3770, tmerc, WGS84, "+proj=tmerc +lat_0=32 +lon_0=-64.75 +k=1 +x_0=550000 +y_0=100000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3771, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3772, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3773, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3774, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3775, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3776, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3777, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3778, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3779, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-111 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3780, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-114 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3781, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-117 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3782, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3783, tmerc, WGS84, "+proj=tmerc +lat_0=-25.06855261111111 +lon_0=-130.1129671111111 +k=1 +x_0=14200 +y_0=15500 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3784, utm, intl, "+proj=utm +zone=9 +south +ellps=intl +towgs84=185,165,42,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (epsg, 3785, merc, 6378137, "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (epsg, 3786, eqc, 6371007, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371007 +b=6371007 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3787, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3788, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=166 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3789, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=169 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3790, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=179 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3791, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-178 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3793, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-176.5 +k=1 +x_0=3500000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3794, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3795, lcc, clrk66, NAD27, "+proj=lcc +lat_1=23 +lat_2=21.7 +lat_0=22.35 +lon_0=-81 +x_0=500000 +y_0=280296.016 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3796, lcc, clrk66, NAD27, "+proj=lcc +lat_1=21.3 +lat_2=20.13333333333333 +lat_0=20.71666666666667 +lon_0=-76.83333333333333 +x_0=500000 +y_0=229126.939 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3797, lcc, clrk66, NAD27, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3798, lcc, GRS80, NAD83, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3799, lcc, GRS80, "+proj=lcc +lat_1=50 +lat_2=46 +lat_0=44 +lon_0=-70 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3800, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 3801, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3802, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-120 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3812, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3814, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3815, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3816, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3819, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=595.48,121.69,515.35,4.115,2.9383,-0.853,-0.7029504596901044 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3821, longlat, aust_SA, "+proj=longlat +ellps=aust_SA +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3822, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3823, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3824, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3825, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3826, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3827, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3828, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3829, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3832, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3833, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3834, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3835, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3836, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3837, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3838, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3839, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3840, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3841, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3842, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3843, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3844, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3845, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3846, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3847, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3848, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3849, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3850, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3920, utm, clrk66, "+proj=utm +zone=20 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3942, lcc, GRS80, "+proj=lcc +lat_1=41.25 +lat_2=42.75 +lat_0=42 +lon_0=3 +x_0=1700000 +y_0=1200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3943, lcc, GRS80, "+proj=lcc +lat_1=42.25 +lat_2=43.75 +lat_0=43 +lon_0=3 +x_0=1700000 +y_0=2200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3944, lcc, GRS80, "+proj=lcc +lat_1=43.25 +lat_2=44.75 +lat_0=44 +lon_0=3 +x_0=1700000 +y_0=3200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3945, lcc, GRS80, "+proj=lcc +lat_1=44.25 +lat_2=45.75 +lat_0=45 +lon_0=3 +x_0=1700000 +y_0=4200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3946, lcc, GRS80, "+proj=lcc +lat_1=45.25 +lat_2=46.75 +lat_0=46 +lon_0=3 +x_0=1700000 +y_0=5200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3947, lcc, GRS80, "+proj=lcc +lat_1=46.25 +lat_2=47.75 +lat_0=47 +lon_0=3 +x_0=1700000 +y_0=6200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3948, lcc, GRS80, "+proj=lcc +lat_1=47.25 +lat_2=48.75 +lat_0=48 +lon_0=3 +x_0=1700000 +y_0=7200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3949, lcc, GRS80, "+proj=lcc +lat_1=48.25 +lat_2=49.75 +lat_0=49 +lon_0=3 +x_0=1700000 +y_0=8200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3950, lcc, GRS80, "+proj=lcc +lat_1=49.25 +lat_2=50.75 +lat_0=50 +lon_0=3 +x_0=1700000 +y_0=9200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3991, lcc, clrk66, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 3992, lcc, clrk66, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=30480.06096012192 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3993, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3994, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3995, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3996, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 3997, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4001, longlat, airy, "+proj=longlat +ellps=airy +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4002, longlat, 6377340.189, 6356034.447938534, "+proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4003, longlat, aust_SA, "+proj=longlat +ellps=aust_SA +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4004, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4005, longlat, 6377492.018, 6356173.508712696, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4006, longlat, bess_nam, "+proj=longlat +ellps=bess_nam +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4007, longlat, 6378293.645208759, 6356617.987679838, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4008, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4009, longlat, 6378450.047548896, 6356826.621488444, "+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4010, longlat, 6378300.789, 6356566.435, "+proj=longlat +a=6378300.789 +b=6356566.435 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4011, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4012, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4013, longlat, 6378249.145, 6356514.966398753, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4014, longlat, 6378249.2, 6356514.996941779, "+proj=longlat +a=6378249.2 +b=6356514.996941779 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4015, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4016, longlat, evrstSS, "+proj=longlat +ellps=evrstSS +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4018, longlat, 6377304.063, 6356103.038993155, "+proj=longlat +a=6377304.063 +b=6356103.038993155 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4019, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4020, longlat, helmert, "+proj=longlat +ellps=helmert +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4021, longlat, 6378160, 6356774.50408554, "+proj=longlat +a=6378160 +b=6356774.50408554 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4022, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4024, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4025, longlat, WGS66, "+proj=longlat +ellps=WGS66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4027, longlat, 6376523, 6355862.933255573, "+proj=longlat +a=6376523 +b=6355862.933255573 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4028, longlat, 6378298.3, 6356657.142669561, "+proj=longlat +a=6378298.3 +b=6356657.142669561 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4029, longlat, 6378300, 6356751.689189189, "+proj=longlat +a=6378300 +b=6356751.689189189 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4030, longlat, WGS84, "+proj=longlat +ellps=WGS84 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4031, longlat, WGS84, "+proj=longlat +ellps=WGS84 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4032, longlat, 6378136.2, 6356751.516927429, "+proj=longlat +a=6378136.2 +b=6356751.516927429 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4033, longlat, 6378136.3, 6356751.616592146, "+proj=longlat +a=6378136.3 +b=6356751.616592146 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4034, longlat, 6378249.144808011, 6356514.966204134, "+proj=longlat +a=6378249.144808011 +b=6356514.966204134 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (epsg, 4035, longlat, 6371000, "+proj=longlat +a=6371000 +b=6371000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4036, longlat, GRS67, "+proj=longlat +ellps=GRS67 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4041, longlat, 6378135, 6356750.304921594, "+proj=longlat +a=6378135 +b=6356750.304921594 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4042, longlat, 6377299.36559538, 6356098.359005157, "+proj=longlat +a=6377299.36559538 +b=6356098.359005157 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4043, longlat, WGS72, "+proj=longlat +ellps=WGS72 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4044, longlat, 6377301.243, 6356100.230165384, "+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4045, longlat, 6377299.151, 6356098.145120132, "+proj=longlat +a=6377299.151 +b=6356098.145120132 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (epsg, 4047, longlat, 6371007, "+proj=longlat +a=6371007 +b=6371007 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (epsg, 4052, longlat, 6370997, "+proj=longlat +a=6370997 +b=6370997 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (epsg, 4053, longlat, 6371228, "+proj=longlat +a=6371228 +b=6371228 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4054, longlat, 6378273, 6356889.449, "+proj=longlat +a=6378273 +b=6356889.449 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (epsg, 4055, longlat, 6378137, "+proj=longlat +a=6378137 +b=6378137 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4120, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4121, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4122, longlat, 6378135, 6356750.304921594, "+proj=longlat +a=6378135 +b=6356750.304921594 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4123, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4124, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4125, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4126, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4127, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4128, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4129, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4130, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4131, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4132, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4133, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4134, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4135, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4136, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4137, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4138, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4139, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4140, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4141, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4142, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4143, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4144, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4145, longlat, 6377301.243, 6356100.230165384, "+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4146, longlat, 6377299.151, 6356098.145120132, "+proj=longlat +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4147, longlat, krass, "+proj=longlat +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4148, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4149, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4150, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4151, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4152, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4153, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4154, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4155, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4156, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4157, longlat, 6378293.645208759, 6356617.987679838, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4158, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4159, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4160, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4161, longlat, intl, "+proj=longlat +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4162, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4163, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4164, longlat, krass, "+proj=longlat +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4165, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-173,253,27,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4166, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4167, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4168, longlat, 6378300, 6356751.689189189, "+proj=longlat +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4169, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4170, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4171, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4172, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4173, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4174, longlat, 6378300, 6356751.689189189, "+proj=longlat +a=6378300 +b=6356751.689189189 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4175, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4176, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4178, longlat, krass, "+proj=longlat +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4179, longlat, krass, "+proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4180, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4181, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4182, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4183, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-104,167,-38,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4184, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-203,141,53,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4185, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4188, longlat, airy, "+proj=longlat +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4189, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4190, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4191, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4192, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4193, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4194, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4195, longlat, intl, "+proj=longlat +ellps=intl +towgs84=105,326,-102.5,0,0,0.814,-0.6 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4196, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-45,417,-3.5,0,0,0.814,-0.6 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4197, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4198, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4199, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4200, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4201, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4202, longlat, aust_SA, "+proj=longlat +ellps=aust_SA +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4203, longlat, aust_SA, "+proj=longlat +ellps=aust_SA +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4204, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4205, longlat, krass, "+proj=longlat +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4206, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4207, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4208, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4209, longlat, 6378249.145, 6356514.966398753, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4210, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4211, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4212, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4213, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-106,-87,188,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4214, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4215, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4216, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4218, longlat, intl, "+proj=longlat +ellps=intl +towgs84=307,304,-318,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4219, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=-384,664,-48,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4220, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4221, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4222, longlat, 6378249.145, 6356514.966398753, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4223, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4224, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-134,229,-29,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4225, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4226, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4227, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4228, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4229, longlat, helmert, "+proj=longlat +ellps=helmert +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4230, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4231, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4232, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4233, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4234, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4235, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4236, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-637,-549,-203,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4237, longlat, GRS67, "+proj=longlat +ellps=GRS67 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4238, longlat, 6378160, 6356774.50408554, "+proj=longlat +a=6378160 +b=6356774.50408554 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4239, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4240, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4241, longlat, 6378249.144808011, 6356514.966204134, "+proj=longlat +a=6378249.144808011 +b=6356514.966204134 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4242, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4243, longlat, 6377299.36559538, 6356098.359005157, "+proj=longlat +a=6377299.36559538 +b=6356098.359005157 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4244, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=-97,787,86,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4245, longlat, 6377304.063, 6356103.038993155, "+proj=longlat +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4246, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-294.7,-200.1,525.5,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4247, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4248, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4249, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4250, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-130,29,364,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4251, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-90,40,88,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4252, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4253, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4254, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4255, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-333,-222,114,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4256, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=41,-220,-134,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4257, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4258, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4259, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4260, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4261, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4262, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=639,405,60,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4263, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4264, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-252.95,-4.11,-96.38,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4265, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4266, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 4267, longlat, clrk66, NAD27, "+proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4268, longlat, 6378450.047548896, 6356826.621488444, "+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 4269, longlat, GRS80, NAD83, "+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4270, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4271, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 4272, longlat, intl, nzgd49, "+proj=longlat +ellps=intl +datum=nzgd49 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4273, longlat, 6377492.018, 6356173.508712696, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4274, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4275, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4276, longlat, WGS66, "+proj=longlat +ellps=WGS66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 4277, longlat, airy, OSGB36, "+proj=longlat +ellps=airy +datum=OSGB36 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4278, longlat, airy, "+proj=longlat +ellps=airy +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4279, longlat, airy, "+proj=longlat +ellps=airy +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4280, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4281, longlat, 6378300.789, 6356566.435, "+proj=longlat +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4282, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4283, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4284, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4285, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4286, longlat, helmert, "+proj=longlat +ellps=helmert +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4287, longlat, intl, "+proj=longlat +ellps=intl +towgs84=164,138,-189,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4288, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4289, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4291, longlat, GRS67, "+proj=longlat +ellps=GRS67 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4292, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-355,21,72,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4293, longlat, bess_nam, "+proj=longlat +ellps=bess_nam +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4294, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4295, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4296, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4297, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4298, longlat, evrstSS, "+proj=longlat +ellps=evrstSS +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4299, longlat, 6377340.189, 6356034.447938534, "+proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4300, longlat, 6377340.189, 6356034.447938534, "+proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4301, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4302, longlat, 6378293.645208759, 6356617.987679838, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4303, longlat, helmert, "+proj=longlat +ellps=helmert +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4304, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4306, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4307, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4308, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4309, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-155,171,37,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4310, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4311, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4312, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4313, longlat, intl, "+proj=longlat +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 4314, longlat, bessel, potsdam, "+proj=longlat +ellps=bessel +datum=potsdam +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4315, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4316, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4317, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4318, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4319, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4322, longlat, WGS72, "+proj=longlat +ellps=WGS72 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4324, longlat, WGS72, "+proj=longlat +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 4326, longlat, WGS84, WGS84, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 4327, longlat, WGS84, WGS84, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4328, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 4329, longlat, WGS84, WGS84, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4330, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4331, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4332, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4333, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4334, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4335, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4336, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4337, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4338, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4339, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4340, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4341, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4342, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4343, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4344, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4345, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4346, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4347, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4348, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4349, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4350, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4351, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4352, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4353, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4354, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4355, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4356, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4357, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,-0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4358, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4359, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4360, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4361, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4362, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4363, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4364, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4365, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4366, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4367, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4368, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4369, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4370, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4371, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=2.0,2.0,-2.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4372, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4373, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4374, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4375, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4376, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4377, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4378, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4379, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4380, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4381, longlat, intl, "+proj=longlat +ellps=intl +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4382, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4383, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4384, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4385, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4386, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4387, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4388, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4389, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4600, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4601, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4602, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4603, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4604, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4605, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4606, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4607, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=195.671,332.517,274.607,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4608, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4609, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4610, longlat, 6378140, 6356755.288157528, "+proj=longlat +a=6378140 +b=6356755.288157528 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4611, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4612, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4613, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4614, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4615, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-499,-249,314,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4616, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4617, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4618, longlat, aust_SA, "+proj=longlat +ellps=aust_SA +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4619, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4620, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-106,-129,165,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4621, longlat, intl, "+proj=longlat +ellps=intl +towgs84=137,248,-430,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4622, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4623, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-186,230,110,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4624, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4625, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4626, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4627, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4628, longlat, intl, "+proj=longlat +ellps=intl +towgs84=162,117,154,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4629, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4630, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4631, longlat, intl, "+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4632, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-382,-59,-262,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4633, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4634, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4635, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4636, longlat, intl, "+proj=longlat +ellps=intl +towgs84=365,194,166,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4637, longlat, intl, "+proj=longlat +ellps=intl +towgs84=325,154,172,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4638, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4639, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4640, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4641, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4642, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4643, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4644, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4645, longlat, intl, "+proj=longlat +ellps=intl +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4646, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4657, longlat, 6377019.27, 6355762.5391, "+proj=longlat +a=6377019.27 +b=6355762.5391 +towgs84=-28,199,5,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4658, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4659, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4660, longlat, intl, "+proj=longlat +ellps=intl +towgs84=982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4661, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4662, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4663, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4664, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4665, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4666, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4667, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4668, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-86,-98,-119,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4669, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4670, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4671, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4672, longlat, intl, "+proj=longlat +ellps=intl +towgs84=175,-38,113,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4673, longlat, intl, "+proj=longlat +ellps=intl +towgs84=174.05,-25.49,112.57,-0,-0,0.554,0.2263 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4674, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4675, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=-100,-248,259,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4676, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4677, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4678, longlat, krass, "+proj=longlat +ellps=krass +towgs84=44.585,-131.212,-39.544,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4679, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-80.01,253.26,291.19,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4680, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=124.5,-63.5,-281,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4681, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4682, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4683, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4684, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4685, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4686, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4687, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4688, longlat, intl, "+proj=longlat +ellps=intl +towgs84=347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4689, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4690, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4691, longlat, intl, "+proj=longlat +ellps=intl +towgs84=215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4692, longlat, intl, "+proj=longlat +ellps=intl +towgs84=217.037,86.959,23.956,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4693, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4694, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4695, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4696, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4697, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4698, longlat, intl, "+proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4699, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4700, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4701, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4702, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4703, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4704, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4705, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4706, longlat, helmert, "+proj=longlat +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4707, longlat, intl, "+proj=longlat +ellps=intl +towgs84=114,-116,-333,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4708, longlat, aust_SA, "+proj=longlat +ellps=aust_SA +towgs84=-491,-22,435,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4709, longlat, intl, "+proj=longlat +ellps=intl +towgs84=145,75,-272,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4710, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-320,550,-494,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4711, longlat, intl, "+proj=longlat +ellps=intl +towgs84=124,-234,-25,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4712, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-205,107,53,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4713, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-79,-129,145,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4714, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-127,-769,472,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4715, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-104,-129,239,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4716, longlat, intl, "+proj=longlat +ellps=intl +towgs84=298,-304,-375,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4717, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=-2,151,181,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4718, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4719, longlat, intl, "+proj=longlat +ellps=intl +towgs84=211,147,111,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4720, longlat, WGS72, "+proj=longlat +ellps=WGS72 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4721, longlat, intl, "+proj=longlat +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4722, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-794,119,-298,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4723, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4724, longlat, intl, "+proj=longlat +ellps=intl +towgs84=208,-435,-229,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4725, longlat, intl, "+proj=longlat +ellps=intl +towgs84=189,-79,-202,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4726, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4727, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4728, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-307,-92,127,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4729, longlat, intl, "+proj=longlat +ellps=intl +towgs84=185,165,42,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4730, longlat, intl, "+proj=longlat +ellps=intl +towgs84=170,42,84,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4731, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=51,391,-36,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4732, longlat, 6378270, 6356794.343434343, "+proj=longlat +a=6378270 +b=6356794.343434343 +towgs84=102,52,-38,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4733, longlat, intl, "+proj=longlat +ellps=intl +towgs84=276,-57,149,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4734, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-632,438,-609,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4735, longlat, intl, "+proj=longlat +ellps=intl +towgs84=647,1777,-1124,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4736, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=260,12,-147,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4737, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4738, longlat, 6378293.645208759, 6356617.987679838, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4739, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-156,-271,-189,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4740, longlat, 6378136, 6356751.361745712, "+proj=longlat +a=6378136 +b=6356751.361745712 +towgs84=0,0,1.5,-0,-0,0.076,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4741, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4742, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4743, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4744, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4745, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4746, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4747, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4748, longlat, 6378306.3696, 6356571.996, "+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4749, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4750, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=-56.263,16.136,-22.856,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4751, longlat, 6377295.664, 6356094.667915204, "+proj=longlat +a=6377295.664 +b=6356094.667915204 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4752, longlat, 6378306.3696, 6356571.996, "+proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4753, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4754, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4755, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4756, longlat, WGS84, "+proj=longlat +ellps=WGS84 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4757, longlat, WGS84, "+proj=longlat +ellps=WGS84 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4758, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4759, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4760, longlat, WGS66, "+proj=longlat +ellps=WGS66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4761, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4762, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4763, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4764, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4765, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4801, longlat, bessel, "+proj=longlat +ellps=bessel +pm=bern +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4802, longlat, intl, "+proj=longlat +ellps=intl +pm=bogota +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4803, longlat, intl, "+proj=longlat +ellps=intl +pm=lisbon +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4804, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=jakarta +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4805, longlat, bessel, "+proj=longlat +ellps=bessel +pm=ferro +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4806, longlat, intl, "+proj=longlat +ellps=intl +pm=rome +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4807, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4808, longlat, bessel, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4809, longlat, intl, "+proj=longlat +ellps=intl +pm=brussels +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4810, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4811, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +pm=paris +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4813, longlat, bessel, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4814, longlat, bessel, "+proj=longlat +ellps=bessel +pm=stockholm +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4815, longlat, bessel, "+proj=longlat +ellps=bessel +pm=athens +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4816, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4817, longlat, 6377492.018, 6356173.508712696, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4818, longlat, bessel, "+proj=longlat +ellps=bessel +pm=ferro +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4819, longlat, clrk80, "+proj=longlat +ellps=clrk80 +pm=paris +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4820, longlat, bessel, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4821, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4882, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4883, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4884, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4885, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4886, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4887, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4888, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4889, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4890, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4891, longlat, WGS66, "+proj=longlat +ellps=WGS66 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4892, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4893, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4894, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4895, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4896, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4897, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4898, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4899, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4900, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-208.4058,-109.8777,-2.5764,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4901, longlat, 6376523, 6355862.933255573, "+proj=longlat +a=6376523 +b=6355862.933255573 +pm=2.3372291666985 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4902, longlat, 6376523, 6355862.933255573, "+proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4903, longlat, 6378298.3, 6356657.142669561, "+proj=longlat +a=6378298.3 +b=6356657.142669561 +pm=madrid +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4904, longlat, bessel, "+proj=longlat +ellps=bessel +pm=lisbon +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4906, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4907, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4908, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4909, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4913, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4914, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4915, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4916, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4917, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4918, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4919, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4920, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4921, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4922, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 4923, longlat, 6378136, 6356751.361745712, "+proj=longlat +a=6378136 +b=6356751.361745712 +towgs84=0.0,0.0,1.5,-0.0,0.0,-0.076,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4924, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4925, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4926, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4927, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4928, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4929, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4930, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4931, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4932, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4933, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4934, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4935, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4936, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4937, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4938, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4939, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4940, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4941, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4942, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4943, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4944, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4945, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4946, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4947, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4948, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4949, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4950, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4951, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4952, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4953, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,-0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4954, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4955, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4956, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4957, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4958, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4959, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4960, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4961, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4962, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4963, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4964, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4965, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4966, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4967, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=2.0,2.0,-2.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4968, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4969, longlat, intl, "+proj=longlat +ellps=intl +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4970, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4971, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4972, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4973, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4974, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4975, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4976, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4977, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4978, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 4979, longlat, WGS84, WGS84, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4980, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4981, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4982, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4983, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4984, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4985, longlat, WGS72, "+proj=longlat +ellps=WGS72 +towgs84=0.0,0.0,4.5,0.0,0.0,0.554,0.045171992568114105 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4986, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4987, longlat, WGS72, "+proj=longlat +ellps=WGS72 +towgs84=0.0,0.0,1.9,0.0,0.0,0.814,-0.07838062637389662 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4988, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4989, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4990, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4991, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4992, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4993, longlat, krass, "+proj=longlat +ellps=krass +towgs84=44.585,-131.212,-39.544,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4994, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4995, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,-4.903,-1.578,-0.21864069462192215 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4996, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4997, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 4998, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 4999, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.072,-0.507,-0.245,-0.0183,-0.0003,0.007,-0.001918262698097996 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5600, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5601, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5602, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5603, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5604, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5605, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5606, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5607, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5608, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5609, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5610, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5611, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5612, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5613, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5614, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5615, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5616, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5617, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5618, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5619, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5620, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5701, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5702, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5703, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5704, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5705, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5706, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5709, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5710, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5711, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5712, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5713, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5714, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5715, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5716, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5717, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5718, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5719, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5720, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5721, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5722, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5723, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5724, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5725, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5726, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5727, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5728, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5729, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5730, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5731, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5732, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5733, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5734, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5735, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5736, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5737, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5738, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5739, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5740, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5741, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5742, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5743, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5744, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5745, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5746, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5747, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5748, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5749, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5750, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5751, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5752, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5753, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5754, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5755, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5756, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5757, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5758, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5759, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5760, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5761, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5762, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5763, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5764, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5765, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5766, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5767, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5768, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5769, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5770, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5771, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5772, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5773, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5774, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5775, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5776, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5777, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5778, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5779, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5780, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5781, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5782, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5783, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5784, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5785, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5786, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5787, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5788, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5789, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5790, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5791, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5792, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5793, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5794, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5795, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5796, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5797, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5798, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5799, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5800, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5801, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5802, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5803, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5804, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5805, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5806, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5807, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5808, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5809, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5810, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5811, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5812, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5813, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5814, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5815, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5816, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5817, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5818, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5819, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5820, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 5821, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7400, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7401, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7402, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7403, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7404, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7405, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7406, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7407, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7408, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7409, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7410, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7411, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7412, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7413, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7414, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7415, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7416, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7417, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7418, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7419, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7420, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7421, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 7422, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20004, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20005, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20006, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20007, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20008, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20009, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20010, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20011, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20012, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20013, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20014, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20015, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20016, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20017, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20018, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20019, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20020, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20021, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20022, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20023, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20024, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20025, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20026, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20027, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20028, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20029, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20030, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20031, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20032, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20064, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20065, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20066, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20067, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20068, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20069, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20070, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20071, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20072, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20073, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20074, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20075, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20076, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20077, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20078, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20079, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20080, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20081, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20082, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20083, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20084, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20085, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20086, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20087, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20088, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20089, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20090, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20091, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20092, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20135, utm, clrk80, "+proj=utm +zone=35 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20136, utm, clrk80, "+proj=utm +zone=36 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20137, utm, clrk80, "+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20138, utm, clrk80, "+proj=utm +zone=38 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20248, utm, aust_SA, "+proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20249, utm, aust_SA, "+proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20250, utm, aust_SA, "+proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20251, utm, aust_SA, "+proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20252, utm, aust_SA, "+proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20253, utm, aust_SA, "+proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20254, utm, aust_SA, "+proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20255, utm, aust_SA, "+proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20256, utm, aust_SA, "+proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20257, utm, aust_SA, "+proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20258, utm, aust_SA, "+proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20348, utm, aust_SA, "+proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20349, utm, aust_SA, "+proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20350, utm, aust_SA, "+proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20351, utm, aust_SA, "+proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20352, utm, aust_SA, "+proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20353, utm, aust_SA, "+proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20354, utm, aust_SA, "+proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20355, utm, aust_SA, "+proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20356, utm, aust_SA, "+proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20357, utm, aust_SA, "+proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20358, utm, aust_SA, "+proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20436, utm, intl, "+proj=utm +zone=36 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20437, utm, intl, "+proj=utm +zone=37 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20438, utm, intl, "+proj=utm +zone=38 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20439, utm, intl, "+proj=utm +zone=39 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20440, utm, intl, "+proj=utm +zone=40 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20499, utm, intl, "+proj=utm +zone=39 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20538, utm, krass, "+proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20539, utm, krass, "+proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20790, tmerc, intl, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=200000 +y_0=300000 +ellps=intl +pm=lisbon +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20791, tmerc, intl, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1 +x_0=0 +y_0=0 +ellps=intl +pm=lisbon +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20822, utm, intl, "+proj=utm +zone=22 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20823, utm, intl, "+proj=utm +zone=23 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 20824, utm, intl, "+proj=utm +zone=24 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 20934, utm, 6378249.145, 6356514.966398753, "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 20935, utm, 6378249.145, 6356514.966398753, "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 20936, utm, 6378249.145, 6356514.966398753, "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21035, utm, clrk80, "+proj=utm +zone=35 +south +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21036, utm, clrk80, "+proj=utm +zone=36 +south +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21037, utm, clrk80, "+proj=utm +zone=37 +south +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21095, utm, clrk80, "+proj=utm +zone=35 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21096, utm, clrk80, "+proj=utm +zone=36 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21097, utm, clrk80, "+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21100, merc, bessel, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21148, utm, bessel, "+proj=utm +zone=48 +south +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21149, utm, bessel, "+proj=utm +zone=49 +south +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21150, utm, bessel, "+proj=utm +zone=50 +south +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21291, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21292, tmerc, clrk80, "+proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222222222 +k=0.9999986 +x_0=30000 +y_0=75000 +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21413, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21414, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21415, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21416, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21417, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21418, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21419, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21420, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21421, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21422, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21423, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21453, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21454, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21455, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21456, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21457, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21458, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21459, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21460, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21461, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21462, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21463, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21473, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21474, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21475, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21476, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21477, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21478, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21479, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21480, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21481, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21482, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21483, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21500, lcc, intl, "+proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=90 +lon_0=0 +x_0=150000 +y_0=5400000 +ellps=intl +pm=brussels +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21780, somerc, bessel, "+proj=somerc +lat_0=46.95240555555556 +lon_0=0 +k_0=1 +x_0=0 +y_0=0 +ellps=bessel +pm=bern +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21781, somerc, bessel, "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 21782, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21817, utm, intl, "+proj=utm +zone=17 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21818, utm, intl, "+proj=utm +zone=18 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21891, tmerc, intl, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21892, tmerc, intl, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21893, tmerc, intl, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21894, tmerc, intl, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21896, tmerc, intl, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21897, tmerc, intl, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21898, tmerc, intl, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 21899, tmerc, intl, "+proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666666667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22032, utm, clrk80, "+proj=utm +zone=32 +south +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22033, utm, clrk80, "+proj=utm +zone=33 +south +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22091, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22092, tmerc, clrk80, "+proj=tmerc +lat_0=0 +lon_0=12 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22171, tmerc, GRS80, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22172, tmerc, GRS80, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22173, tmerc, GRS80, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22174, tmerc, GRS80, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22175, tmerc, GRS80, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22176, tmerc, GRS80, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22177, tmerc, GRS80, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22181, tmerc, WGS84, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22182, tmerc, WGS84, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22183, tmerc, WGS84, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22184, tmerc, WGS84, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22185, tmerc, WGS84, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22186, tmerc, WGS84, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22187, tmerc, WGS84, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22191, tmerc, intl, "+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22192, tmerc, intl, "+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22193, tmerc, intl, "+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22194, tmerc, intl, "+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1 +x_0=4500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22195, tmerc, intl, "+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1 +x_0=5500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22196, tmerc, intl, "+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1 +x_0=6500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22197, tmerc, intl, "+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1 +x_0=7500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 22234, utm, 6378249.145, 6356514.966398753, "+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 22235, utm, 6378249.145, 6356514.966398753, "+proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 22236, utm, 6378249.145, 6356514.966398753, "+proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 22275, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 22277, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 22279, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 22281, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 22283, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 22285, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 22287, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 22289, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 22291, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 22293, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 22300, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 22332, utm, 6378249.2, 6356515, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 22391, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=9.9 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 22392, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=9.9 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22521, utm, intl, "+proj=utm +zone=21 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22522, utm, intl, "+proj=utm +zone=22 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22523, utm, intl, "+proj=utm +zone=23 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22524, utm, intl, "+proj=utm +zone=24 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22525, utm, intl, "+proj=utm +zone=25 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 22700, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 22770, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 22780, sterea, 6378249.2, 6356515, "+proj=sterea +lat_0=34.2 +lon_0=39.15 +k=0.9995341 +x_0=0 +y_0=0 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 22832, utm, 6378249.2, 6356515, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22991, tmerc, helmert, "+proj=tmerc +lat_0=30 +lon_0=35 +k=1 +x_0=300000 +y_0=1100000 +ellps=helmert +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22992, tmerc, helmert, "+proj=tmerc +lat_0=30 +lon_0=31 +k=1 +x_0=615000 +y_0=810000 +ellps=helmert +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22993, tmerc, helmert, "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=200000 +ellps=helmert +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 22994, tmerc, helmert, "+proj=tmerc +lat_0=30 +lon_0=27 +k=1 +x_0=700000 +y_0=1200000 +ellps=helmert +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23028, utm, intl, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23029, utm, intl, "+proj=utm +zone=29 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23030, utm, intl, "+proj=utm +zone=30 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23031, utm, intl, "+proj=utm +zone=31 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23032, utm, intl, "+proj=utm +zone=32 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23033, utm, intl, "+proj=utm +zone=33 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23034, utm, intl, "+proj=utm +zone=34 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23035, utm, intl, "+proj=utm +zone=35 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23036, utm, intl, "+proj=utm +zone=36 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23037, utm, intl, "+proj=utm +zone=37 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23038, utm, intl, "+proj=utm +zone=38 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23090, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23095, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=5 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23239, utm, clrk80, "+proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23240, utm, clrk80, "+proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23433, utm, 6378249.2, 6356515, "+proj=utm +zone=33 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23700, somerc, GRS67, "+proj=somerc +lat_0=47.14439372222222 +lon_0=19.04857177777778 +k_0=0.99993 +x_0=650000 +y_0=200000 +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23830, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=94.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23831, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=97.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23832, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=100.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23833, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=103.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23834, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=106.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23835, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=109.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23836, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=112.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23837, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=115.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23838, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=118.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23839, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=121.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23840, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=124.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23841, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=127.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23842, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=130.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23843, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=133.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23844, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=136.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23845, tmerc, WGS84, "+proj=tmerc +lat_0=0 +lon_0=139.5 +k=0.9999 +x_0=200000 +y_0=1500000 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23846, utm, 6378160, 6356774.50408554, "+proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23847, utm, 6378160, 6356774.50408554, "+proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23848, utm, 6378160, 6356774.50408554, "+proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23849, utm, 6378160, 6356774.50408554, "+proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23850, utm, 6378160, 6356774.50408554, "+proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23851, utm, 6378160, 6356774.50408554, "+proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23852, utm, 6378160, 6356774.50408554, "+proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23853, utm, 6378160, 6356774.50408554, "+proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23866, utm, WGS84, "+proj=utm +zone=46 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23867, utm, WGS84, "+proj=utm +zone=47 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23868, utm, WGS84, "+proj=utm +zone=48 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23869, utm, WGS84, "+proj=utm +zone=49 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23870, utm, WGS84, "+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23871, utm, WGS84, "+proj=utm +zone=51 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23872, utm, WGS84, "+proj=utm +zone=52 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23877, utm, WGS84, "+proj=utm +zone=47 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23878, utm, WGS84, "+proj=utm +zone=48 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23879, utm, WGS84, "+proj=utm +zone=49 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23880, utm, WGS84, "+proj=utm +zone=50 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23881, utm, WGS84, "+proj=utm +zone=51 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23882, utm, WGS84, "+proj=utm +zone=52 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23883, utm, WGS84, "+proj=utm +zone=53 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 23884, utm, WGS84, "+proj=utm +zone=54 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23886, utm, 6378160, 6356774.50408554, "+proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23887, utm, 6378160, 6356774.50408554, "+proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23888, utm, 6378160, 6356774.50408554, "+proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23889, utm, 6378160, 6356774.50408554, "+proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23890, utm, 6378160, 6356774.50408554, "+proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23891, utm, 6378160, 6356774.50408554, "+proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23892, utm, 6378160, 6356774.50408554, "+proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23893, utm, 6378160, 6356774.50408554, "+proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23894, utm, 6378160, 6356774.50408554, "+proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23946, utm, 6377276.345, 6356075.41314024, "+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23947, utm, 6377276.345, 6356075.41314024, "+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 23948, utm, 6377276.345, 6356075.41314024, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24047, utm, 6377276.345, 6356075.41314024, "+proj=utm +zone=47 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24048, utm, 6377276.345, 6356075.41314024, "+proj=utm +zone=48 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24100, lcc, 6378249.144808011, 6356514.966204134, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167638.49597 +y_0=121918.90616 +a=6378249.144808011 +b=6356514.966204134 +to_meter=0.3047972654 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24200, lcc, clrk66, "+proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250000 +y_0=150000 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24305, utm, 6377276.345, 6356075.41314024, "+proj=utm +zone=45 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24306, utm, 6377276.345, 6356075.41314024, "+proj=utm +zone=46 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24311, utm, 6377301.243, 6356100.230165384, "+proj=utm +zone=41 +a=6377301.243 +b=6356100.230165384 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24312, utm, 6377301.243, 6356100.230165384, "+proj=utm +zone=42 +a=6377301.243 +b=6356100.230165384 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24313, utm, 6377301.243, 6356100.230165384, "+proj=utm +zone=43 +a=6377301.243 +b=6356100.230165384 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24342, utm, 6377299.151, 6356098.145120132, "+proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24343, utm, 6377299.151, 6356098.145120132, "+proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24344, utm, 6377299.151, 6356098.145120132, "+proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24345, utm, 6377299.151, 6356098.145120132, "+proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24346, utm, 6377299.151, 6356098.145120132, "+proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24347, utm, 6377299.151, 6356098.145120132, "+proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24370, lcc, 6377299.36559538, 6356098.359005157, "+proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24371, lcc, 6377299.36559538, 6356098.359005157, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24372, lcc, 6377299.36559538, 6356098.359005157, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24373, lcc, 6377299.36559538, 6356098.359005157, "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24374, lcc, 6377299.36559538, 6356098.359005157, "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24375, lcc, 6377276.345, 6356075.41314024, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075.41314024 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24376, lcc, 6377301.243, 6356100.230165384, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165384 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24377, lcc, 6377301.243, 6356100.230165384, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165384 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24378, lcc, 6377299.151, 6356098.145120132, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24379, lcc, 6377299.151, 6356098.145120132, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24380, lcc, 6377299.151, 6356098.145120132, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24381, lcc, 6377299.151, 6356098.145120132, "+proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24382, lcc, 6377299.36559538, 6356098.359005157, "+proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.359005157 +to_meter=0.9143985307444408 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24383, lcc, 6377299.151, 6356098.145120132, "+proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24500, cass, 6377304.063, 6356103.038993155, "+proj=cass +lat_0=1.287646666666667 +lon_0=103.8530022222222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24547, utm, 6377304.063, 6356103.038993155, "+proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24548, utm, 6377304.063, 6356103.038993155, "+proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 24571, omerc, 6377304.063, 6356103.038993155, "+proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=804671.2997750348 +y_0=0 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +to_meter=20.11678249437587 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24600, lcc, clrk80, "+proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +towgs84=-294.7,-200.1,525.5,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24718, utm, intl, "+proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24719, utm, intl, "+proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24720, utm, intl, "+proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24817, utm, intl, "+proj=utm +zone=17 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24818, utm, intl, "+proj=utm +zone=18 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24819, utm, intl, "+proj=utm +zone=19 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24820, utm, intl, "+proj=utm +zone=20 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24821, utm, intl, "+proj=utm +zone=21 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24877, utm, intl, "+proj=utm +zone=17 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24878, utm, intl, "+proj=utm +zone=18 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24879, utm, intl, "+proj=utm +zone=19 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24880, utm, intl, "+proj=utm +zone=20 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24881, utm, intl, "+proj=utm +zone=21 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24882, utm, intl, "+proj=utm +zone=22 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24891, tmerc, intl, "+proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.99983008 +x_0=222000 +y_0=1426834.743 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24892, tmerc, intl, "+proj=tmerc +lat_0=-9.5 +lon_0=-76 +k=0.99932994 +x_0=720000 +y_0=1039979.159 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 24893, tmerc, intl, "+proj=tmerc +lat_0=-9.5 +lon_0=-70.5 +k=0.99952992 +x_0=1324000 +y_0=1040084.558 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25000, tmerc, clrk80, "+proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.99975 +x_0=274319.51 +y_0=0 +ellps=clrk80 +towgs84=-130,29,364,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 25231, utm, 6378249.2, 6356515, "+proj=utm +zone=31 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25391, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25392, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=119 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25393, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=121 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25394, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=123 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25395, tmerc, clrk66, "+proj=tmerc +lat_0=0 +lon_0=125 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25700, merc, bessel, "+proj=merc +lon_0=110 +k=0.997 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=jakarta +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25828, utm, GRS80, "+proj=utm +zone=28 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25829, utm, GRS80, "+proj=utm +zone=29 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25830, utm, GRS80, "+proj=utm +zone=30 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25831, utm, GRS80, "+proj=utm +zone=31 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25832, utm, GRS80, "+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25833, utm, GRS80, "+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25834, utm, GRS80, "+proj=utm +zone=34 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25835, utm, GRS80, "+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25836, utm, GRS80, "+proj=utm +zone=36 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25837, utm, GRS80, "+proj=utm +zone=37 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25838, utm, GRS80, "+proj=utm +zone=38 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25884, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 25932, utm, intl, "+proj=utm +zone=32 +south +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26191, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26192, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.9996155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26193, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.9996 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26194, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999616304 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26195, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=22.5 +lat_0=22.5 +lon_0=-5.4 +k_0=0.999616437 +x_0=1500000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26237, utm, bessel, "+proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26331, utm, clrk80, "+proj=utm +zone=31 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26332, utm, clrk80, "+proj=utm +zone=32 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26391, tmerc, clrk80, "+proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.99975 +x_0=230738.26 +y_0=0 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26392, tmerc, clrk80, "+proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.99975 +x_0=670553.98 +y_0=0 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26393, tmerc, clrk80, "+proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.99975 +x_0=1110369.7 +y_0=0 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26432, utm, intl, "+proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-4.11,-96.38,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26591, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=-3.45233333333333 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26592, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=2.54766666666666 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26632, utm, 6378249.2, 6356515, "+proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26692, utm, 6378249.2, 6356515, "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26701, utm, clrk66, NAD27, "+proj=utm +zone=1 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26702, utm, clrk66, NAD27, "+proj=utm +zone=2 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26703, utm, clrk66, NAD27, "+proj=utm +zone=3 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26704, utm, clrk66, NAD27, "+proj=utm +zone=4 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26705, utm, clrk66, NAD27, "+proj=utm +zone=5 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26706, utm, clrk66, NAD27, "+proj=utm +zone=6 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26707, utm, clrk66, NAD27, "+proj=utm +zone=7 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26708, utm, clrk66, NAD27, "+proj=utm +zone=8 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26709, utm, clrk66, NAD27, "+proj=utm +zone=9 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26710, utm, clrk66, NAD27, "+proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26711, utm, clrk66, NAD27, "+proj=utm +zone=11 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26712, utm, clrk66, NAD27, "+proj=utm +zone=12 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26713, utm, clrk66, NAD27, "+proj=utm +zone=13 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26714, utm, clrk66, NAD27, "+proj=utm +zone=14 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26715, utm, clrk66, NAD27, "+proj=utm +zone=15 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26716, utm, clrk66, NAD27, "+proj=utm +zone=16 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26717, utm, clrk66, NAD27, "+proj=utm +zone=17 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26718, utm, clrk66, NAD27, "+proj=utm +zone=18 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26719, utm, clrk66, NAD27, "+proj=utm +zone=19 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26720, utm, clrk66, NAD27, "+proj=utm +zone=20 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26721, utm, clrk66, NAD27, "+proj=utm +zone=21 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26722, utm, clrk66, NAD27, "+proj=utm +zone=22 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26729, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26730, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26731, omerc, clrk66, NAD27, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5000000.001016002 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26732, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26733, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26734, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26735, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26736, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26737, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=213360.4267208534 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26738, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26739, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26740, lcc, clrk66, NAD27, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26741, lcc, clrk66, NAD27, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26742, lcc, clrk66, NAD27, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26743, lcc, clrk66, NAD27, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26744, lcc, clrk66, NAD27, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26745, lcc, clrk66, NAD27, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26746, lcc, clrk66, NAD27, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26747, lcc, clrk66, NAD27, "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +x_0=1276106.450596901 +y_0=127079.524511049 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26748, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26749, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26750, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26751, lcc, clrk66, NAD27, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26752, lcc, clrk66, NAD27, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26753, lcc, clrk66, NAD27, "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26754, lcc, clrk66, NAD27, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26755, lcc, clrk66, NAD27, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26756, lcc, clrk66, NAD27, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26757, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26758, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26759, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26760, lcc, clrk66, NAD27, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26766, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26767, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26768, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26769, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26770, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26771, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26772, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26773, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26774, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26775, lcc, clrk66, NAD27, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26776, lcc, clrk66, NAD27, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26777, lcc, clrk66, NAD27, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26778, lcc, clrk66, NAD27, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26779, lcc, clrk66, NAD27, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26780, lcc, clrk66, NAD27, "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26781, lcc, clrk66, NAD27, "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26782, lcc, clrk66, NAD27, "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.66666666666667 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26783, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26784, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26785, lcc, clrk66, NAD27, "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26786, lcc, clrk66, NAD27, "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26787, lcc, clrk66, NAD27, "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26791, lcc, clrk66, NAD27, "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26792, lcc, clrk66, NAD27, "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26793, lcc, clrk66, NAD27, "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26794, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333333333 +k=0.99996 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26795, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26796, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26797, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26798, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26799, lcc, clrk66, NAD27, "+proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +x_0=1276106.450596901 +y_0=1268253.006858014 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26801, tmerc, 6378450.047548896, 6356826.621488444, "+proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.999942857 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26802, tmerc, 6378450.047548896, 6356826.621488444, "+proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26803, tmerc, 6378450.047548896, 6356826.621488444, "+proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26811, lcc, 6378450.047548896, 6356826.621488444, "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26812, lcc, 6378450.047548896, 6356826.621488444, "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 26813, lcc, 6378450.047548896, 6356826.621488444, "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26814, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26815, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26819, lcc, GRS80, NAD83, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26820, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26821, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26822, lcc, GRS80, NAD83, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26823, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26824, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26825, tmerc, GRS80, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26826, tmerc, GRS80, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26830, lcc, GRS80, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26831, lcc, GRS80, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26832, lcc, GRS80, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26833, lcc, GRS80, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26834, lcc, GRS80, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26835, lcc, GRS80, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26836, tmerc, GRS80, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26837, tmerc, GRS80, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26841, lcc, GRS80, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26842, lcc, GRS80, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26843, lcc, GRS80, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101601 +y_0=99999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26844, lcc, GRS80, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000101601 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26845, lcc, GRS80, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26846, lcc, GRS80, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=1968500 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26847, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26848, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26849, lcc, GRS80, NAD83, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26850, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26851, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26852, lcc, GRS80, NAD83, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26853, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26854, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26855, tmerc, GRS80, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26856, tmerc, GRS80, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26857, lcc, GRS80, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26858, lcc, GRS80, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26859, lcc, GRS80, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26860, lcc, GRS80, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26861, lcc, GRS80, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26862, lcc, GRS80, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26863, tmerc, GRS80, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26864, tmerc, GRS80, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26865, lcc, GRS80, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26866, lcc, GRS80, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26867, lcc, GRS80, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26868, lcc, GRS80, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26869, lcc, GRS80, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26870, lcc, GRS80, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26891, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26892, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26893, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26894, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26895, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26896, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26897, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26898, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 26899, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26901, utm, GRS80, NAD83, "+proj=utm +zone=1 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26902, utm, GRS80, NAD83, "+proj=utm +zone=2 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26903, utm, GRS80, NAD83, "+proj=utm +zone=3 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26904, utm, GRS80, NAD83, "+proj=utm +zone=4 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26905, utm, GRS80, NAD83, "+proj=utm +zone=5 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26906, utm, GRS80, NAD83, "+proj=utm +zone=6 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26907, utm, GRS80, NAD83, "+proj=utm +zone=7 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26908, utm, GRS80, NAD83, "+proj=utm +zone=8 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26909, utm, GRS80, NAD83, "+proj=utm +zone=9 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26910, utm, GRS80, NAD83, "+proj=utm +zone=10 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26911, utm, GRS80, NAD83, "+proj=utm +zone=11 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26912, utm, GRS80, NAD83, "+proj=utm +zone=12 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26913, utm, GRS80, NAD83, "+proj=utm +zone=13 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26914, utm, GRS80, NAD83, "+proj=utm +zone=14 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26915, utm, GRS80, NAD83, "+proj=utm +zone=15 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26916, utm, GRS80, NAD83, "+proj=utm +zone=16 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26917, utm, GRS80, NAD83, "+proj=utm +zone=17 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26918, utm, GRS80, NAD83, "+proj=utm +zone=18 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26919, utm, GRS80, NAD83, "+proj=utm +zone=19 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26920, utm, GRS80, NAD83, "+proj=utm +zone=20 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26921, utm, GRS80, NAD83, "+proj=utm +zone=21 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26922, utm, GRS80, NAD83, "+proj=utm +zone=22 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26923, utm, GRS80, NAD83, "+proj=utm +zone=23 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26929, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26930, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26931, omerc, GRS80, NAD83, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26932, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26933, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26934, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26935, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26936, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26937, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26938, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26939, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26940, lcc, GRS80, NAD83, "+proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26941, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26942, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26943, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26944, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26945, lcc, GRS80, NAD83, "+proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26946, lcc, GRS80, NAD83, "+proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26948, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26949, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26950, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26951, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26952, lcc, GRS80, NAD83, "+proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26953, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26954, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26955, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26956, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26957, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26958, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26959, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26960, lcc, GRS80, NAD83, "+proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26961, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26962, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26963, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26964, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26965, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26966, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26967, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26968, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26969, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26970, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26971, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26972, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26973, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26974, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26975, lcc, GRS80, NAD83, "+proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26976, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26977, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26978, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26979, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26980, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26981, lcc, GRS80, NAD83, "+proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26982, lcc, GRS80, NAD83, "+proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26983, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26984, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26985, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26986, lcc, GRS80, NAD83, "+proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26987, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26988, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26989, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26990, lcc, GRS80, NAD83, "+proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26991, lcc, GRS80, NAD83, "+proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26992, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26993, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26994, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26995, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26996, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26997, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 26998, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 27037, utm, clrk80, "+proj=utm +zone=37 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 27038, utm, clrk80, "+proj=utm +zone=38 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 27039, utm, clrk80, "+proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 27040, utm, clrk80, "+proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 27120, utm, intl, "+proj=utm +zone=20 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27200, nzmg, intl, nzgd49, "+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=6023150 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27205, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393611111 +k=0.9999 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27206, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.46619725 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27207, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362777778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27208, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805277778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27209, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.22801175 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27210, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368055556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27211, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27212, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496666667 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27213, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27214, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27215, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168055555 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27216, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281944444 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27217, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600555556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27218, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713055556 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27219, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333888889 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27220, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741111111 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27221, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27222, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258333333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27223, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27224, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935833333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27225, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484722222 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27226, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508333333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27227, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550833333 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27228, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411944444 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27229, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617777778 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27230, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951666667 +k=1 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27231, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891111111 +k=0.99996 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27232, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 +k=1 +x_0=300002.66 +y_0=699999.58 +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27258, utm, intl, nzgd49, "+proj=utm +zone=58 +south +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27259, utm, intl, nzgd49, "+proj=utm +zone=59 +south +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27260, utm, intl, nzgd49, "+proj=utm +zone=60 +south +ellps=intl +datum=nzgd49 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27291, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1 +x_0=274319.5243848086 +y_0=365759.3658464114 +ellps=intl +datum=nzgd49 +to_meter=0.9143984146160287 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27292, tmerc, intl, nzgd49, "+proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1 +x_0=457199.2073080143 +y_0=457199.2073080143 +ellps=intl +datum=nzgd49 +to_meter=0.9143984146160287 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27391, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=-4.666666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27392, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=-2.333333333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27393, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27394, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=2.5 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27395, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=6.166666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27396, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=10.16666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27397, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=14.16666666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27398, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=18.33333333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 27429, utm, intl, "+proj=utm +zone=29 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 27492, tmerc, intl, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 27493, tmerc, intl, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27500, lcc, 6376523, 6355862.933255573, "+proj=lcc +lat_1=49.5 +lat_0=49.5 +lon_0=5.4 +k_0=0.99950908 +x_0=500000 +y_0=300000 +a=6376523 +b=6355862.933255573 +pm=2.3372291666985 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27561, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27562, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27563, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27564, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27571, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27572, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27573, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27574, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27581, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27582, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27583, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27584, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27591, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27592, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27593, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 27594, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 27700, tmerc, airy, OSGB36, "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 28191, cass, 6378300.789, 6356566.435, "+proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 28192, tmerc, 6378300.789, 6356566.435, "+proj=tmerc +lat_0=31.73409694444445 +lon_0=35.21208055555556 +k=1 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 28193, cass, 6378300.789, 6356566.435, "+proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 28232, utm, 6378249.2, 6356515, "+proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28348, utm, GRS80, "+proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28349, utm, GRS80, "+proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28350, utm, GRS80, "+proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28351, utm, GRS80, "+proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28352, utm, GRS80, "+proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28353, utm, GRS80, "+proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28354, utm, GRS80, "+proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28355, utm, GRS80, "+proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28356, utm, GRS80, "+proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28357, utm, GRS80, "+proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28358, utm, GRS80, "+proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28402, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28403, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28404, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28405, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28406, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28407, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28408, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28409, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28410, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28411, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28412, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28413, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28414, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28415, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28416, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28417, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28418, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28419, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28420, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28421, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28422, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28423, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28424, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28425, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28426, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28427, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28428, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28429, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28430, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28431, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28432, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28462, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28463, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28464, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28465, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28466, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28467, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28468, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28469, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=51 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28470, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=57 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28471, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28472, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=69 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28473, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28474, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=81 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28475, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=87 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28476, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=93 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28477, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28478, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=105 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28479, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=111 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28480, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28481, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28482, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=129 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28483, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=135 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28484, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28485, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=147 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28486, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=153 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28487, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=159 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28488, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=165 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28489, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28490, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28491, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-177 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28492, tmerc, krass, "+proj=tmerc +lat_0=0 +lon_0=-171 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28600, tmerc, intl, "+proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.99999 +x_0=200000 +y_0=300000 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28991, sterea, bessel, "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 28992, sterea, bessel, "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29100, poly, GRS67, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29101, poly, aust_SA, "+proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29118, utm, GRS67, "+proj=utm +zone=18 +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29119, utm, GRS67, "+proj=utm +zone=19 +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29120, utm, GRS67, "+proj=utm +zone=20 +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29121, utm, GRS67, "+proj=utm +zone=21 +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29122, utm, GRS67, "+proj=utm +zone=22 +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29168, utm, aust_SA, "+proj=utm +zone=18 +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29169, utm, aust_SA, "+proj=utm +zone=19 +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29170, utm, aust_SA, "+proj=utm +zone=20 +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29171, utm, aust_SA, "+proj=utm +zone=21 +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29172, utm, aust_SA, "+proj=utm +zone=22 +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29177, utm, GRS67, "+proj=utm +zone=17 +south +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29178, utm, GRS67, "+proj=utm +zone=18 +south +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29179, utm, GRS67, "+proj=utm +zone=19 +south +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29180, utm, GRS67, "+proj=utm +zone=20 +south +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29181, utm, GRS67, "+proj=utm +zone=21 +south +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29182, utm, GRS67, "+proj=utm +zone=22 +south +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29183, utm, GRS67, "+proj=utm +zone=23 +south +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29184, utm, GRS67, "+proj=utm +zone=24 +south +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29185, utm, GRS67, "+proj=utm +zone=25 +south +ellps=GRS67 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29187, utm, aust_SA, "+proj=utm +zone=17 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29188, utm, aust_SA, "+proj=utm +zone=18 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29189, utm, aust_SA, "+proj=utm +zone=19 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29190, utm, aust_SA, "+proj=utm +zone=20 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29191, utm, aust_SA, "+proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29192, utm, aust_SA, "+proj=utm +zone=22 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29193, utm, aust_SA, "+proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29194, utm, aust_SA, "+proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29195, utm, aust_SA, "+proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29220, utm, intl, "+proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29221, utm, intl, "+proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29333, utm, bess_nam, "+proj=utm +zone=33 +south +ellps=bess_nam +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 29371, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 29373, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 29375, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 29377, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 29379, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 29381, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 29383, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 29385, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 29635, utm, 6378249.2, 6356515, "+proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 29636, utm, 6378249.2, 6356515, "+proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29700, omerc, intl, "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 29701, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29702, omerc, intl, "+proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29738, utm, intl, "+proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29739, utm, intl, "+proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29849, utm, evrstSS, "+proj=utm +zone=49 +ellps=evrstSS +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29850, utm, evrstSS, "+proj=utm +zone=50 +ellps=evrstSS +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29871, omerc, evrstSS, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 +ellps=evrstSS +to_meter=20.11676512155263 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29872, omerc, evrstSS, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985 +ellps=evrstSS +to_meter=0.3047994715386762 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29873, omerc, evrstSS, "+proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.87 +y_0=442857.65 +ellps=evrstSS +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 29900, tmerc, 6377340.189, 6356034.447938534, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 29901, tmerc, airy, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1 +x_0=200000 +y_0=250000 +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 29902, tmerc, 6377340.189, 6356034.447938534, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 29903, tmerc, 6377340.189, 6356034.447938534, "+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30161, tmerc, bessel, "+proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30162, tmerc, bessel, "+proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30163, tmerc, bessel, "+proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30164, tmerc, bessel, "+proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30165, tmerc, bessel, "+proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30166, tmerc, bessel, "+proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30167, tmerc, bessel, "+proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30168, tmerc, bessel, "+proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30169, tmerc, bessel, "+proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30170, tmerc, bessel, "+proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30171, tmerc, bessel, "+proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30172, tmerc, bessel, "+proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30173, tmerc, bessel, "+proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30174, tmerc, bessel, "+proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30175, tmerc, bessel, "+proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30176, tmerc, bessel, "+proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30177, tmerc, bessel, "+proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30178, tmerc, bessel, "+proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30179, tmerc, bessel, "+proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 30200, cass, 6378293.645208759, 6356617.987679838, "+proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30339, utm, helmert, "+proj=utm +zone=39 +ellps=helmert +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30340, utm, helmert, "+proj=utm +zone=40 +ellps=helmert +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 30491, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 30492, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 30493, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 30494, lcc, 6378249.2, 6356515, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30729, utm, clrk80, "+proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30730, utm, clrk80, "+proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30731, utm, clrk80, "+proj=utm +zone=31 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30732, utm, clrk80, "+proj=utm +zone=32 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30791, lcc, clrk80, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30792, lcc, clrk80, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 30800, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 31028, utm, 6378249.2, 6356515, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31121, utm, intl, "+proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31154, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=-54 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31170, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9996 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31171, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.9999 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31251, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31252, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31253, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31254, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31255, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31256, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31257, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31258, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31259, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=-5000000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31265, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31266, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31267, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31268, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31275, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=5500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31276, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=18 +k=0.9999 +x_0=6500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31277, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31278, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31279, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9999 +x_0=8500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31281, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31282, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31283, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31284, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31285, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31286, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31287, lcc, bessel, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31288, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31289, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31290, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31291, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=28 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31292, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=31 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31293, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=34 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31294, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1 +x_0=150000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31295, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31296, tmerc, bessel, "+proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1 +x_0=750000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31297, lcc, bessel, "+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 31300, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31370, lcc, intl, "+proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +lat_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=5400088.438 +ellps=intl +towgs84=106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 31461, tmerc, bessel, potsdam, "+proj=tmerc +lat_0=0 +lon_0=3 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 31462, tmerc, bessel, potsdam, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 31463, tmerc, bessel, potsdam, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 31464, tmerc, bessel, potsdam, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 31465, tmerc, bessel, potsdam, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 31466, tmerc, bessel, potsdam, "+proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 31467, tmerc, bessel, potsdam, "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 31468, tmerc, bessel, potsdam, "+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 31469, tmerc, bessel, potsdam, "+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 31528, utm, 6378249.2, 6356515, "+proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 31529, utm, 6378249.2, 6356515, "+proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31600, sterea, intl, "+proj=sterea +lat_0=45.9 +lon_0=25.39246588888889 +k=0.9996667 +x_0=500000 +y_0=500000 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31700, sterea, krass, "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 +y_0=500000 +ellps=krass +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31838, utm, WGS84, "+proj=utm +zone=38 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31839, utm, WGS84, "+proj=utm +zone=39 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31900, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=48 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31901, tmerc, GRS80, "+proj=tmerc +lat_0=0 +lon_0=48 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31965, utm, GRS80, "+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31966, utm, GRS80, "+proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31967, utm, GRS80, "+proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31968, utm, GRS80, "+proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31969, utm, GRS80, "+proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31970, utm, GRS80, "+proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31971, utm, GRS80, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31972, utm, GRS80, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31973, utm, GRS80, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31974, utm, GRS80, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31975, utm, GRS80, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31976, utm, GRS80, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31977, utm, GRS80, "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31978, utm, GRS80, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31979, utm, GRS80, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31980, utm, GRS80, "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31981, utm, GRS80, "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31982, utm, GRS80, "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31983, utm, GRS80, "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31984, utm, GRS80, "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31985, utm, GRS80, "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31986, utm, GRS80, "+proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31987, utm, GRS80, "+proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31988, utm, GRS80, "+proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31989, utm, GRS80, "+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31990, utm, GRS80, "+proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31991, utm, GRS80, "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31992, utm, GRS80, "+proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31993, utm, GRS80, "+proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31994, utm, GRS80, "+proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31995, utm, GRS80, "+proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31996, utm, GRS80, "+proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31997, utm, GRS80, "+proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31998, utm, GRS80, "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 31999, utm, GRS80, "+proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32000, utm, GRS80, "+proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32001, lcc, clrk66, NAD27, "+proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=47 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32002, lcc, clrk66, NAD27, "+proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=45.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32003, lcc, clrk66, NAD27, "+proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32005, lcc, clrk66, NAD27, "+proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=41.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32006, lcc, clrk66, NAD27, "+proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32007, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32008, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32009, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32010, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32011, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666666667 +k=0.9999749999999999 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32012, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32013, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32014, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32015, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999966667 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32016, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32017, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32018, lcc, clrk66, NAD27, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32019, lcc, clrk66, NAD27, "+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32020, lcc, clrk66, NAD27, "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32021, lcc, clrk66, NAD27, "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32022, lcc, clrk66, NAD27, "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32023, lcc, clrk66, NAD27, "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32024, lcc, clrk66, NAD27, "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32025, lcc, clrk66, NAD27, "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32026, lcc, clrk66, NAD27, "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32027, lcc, clrk66, NAD27, "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32028, lcc, clrk66, NAD27, "+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32029, lcc, clrk66, NAD27, "+proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32030, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.9999938 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32031, lcc, clrk66, NAD27, "+proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32033, lcc, clrk66, NAD27, "+proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32034, lcc, clrk66, NAD27, "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32035, lcc, clrk66, NAD27, "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32036, lcc, clrk66, NAD27, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32037, lcc, clrk66, NAD27, "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32038, lcc, clrk66, NAD27, "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32039, lcc, clrk66, NAD27, "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32040, lcc, clrk66, NAD27, "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32041, lcc, clrk66, NAD27, "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32042, lcc, clrk66, NAD27, "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32043, lcc, clrk66, NAD27, "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32044, lcc, clrk66, NAD27, "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32045, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32046, lcc, clrk66, NAD27, "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32047, lcc, clrk66, NAD27, "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32048, lcc, clrk66, NAD27, "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32049, lcc, clrk66, NAD27, "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32050, lcc, clrk66, NAD27, "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32051, lcc, clrk66, NAD27, "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32052, lcc, clrk66, NAD27, "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32053, lcc, clrk66, NAD27, "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32054, lcc, clrk66, NAD27, "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32055, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666666667 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32056, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32057, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32058, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333333333 +k=0.999941177 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32061, lcc, clrk66, NAD27, "+proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=500000 +y_0=292209.579 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32062, lcc, clrk66, NAD27, "+proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32064, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32065, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32066, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32067, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32074, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32075, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32076, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32077, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32081, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32082, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32083, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32084, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32085, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32086, tmerc, clrk66, NAD27, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32098, lcc, clrk66, NAD27, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32099, lcc, clrk66, NAD27, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32100, lcc, GRS80, NAD83, "+proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32104, lcc, GRS80, NAD83, "+proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32107, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32108, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32109, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32110, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32111, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32112, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32113, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32114, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32115, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32116, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32117, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32118, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32119, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32120, lcc, GRS80, NAD83, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32121, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32122, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32123, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32124, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32125, lcc, GRS80, NAD83, "+proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32126, lcc, GRS80, NAD83, "+proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32127, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32128, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32129, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32130, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32133, lcc, GRS80, NAD83, "+proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32134, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32135, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32136, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32137, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32138, lcc, GRS80, NAD83, "+proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32139, lcc, GRS80, NAD83, "+proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32140, lcc, GRS80, NAD83, "+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32141, lcc, GRS80, NAD83, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32142, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32143, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32144, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32145, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32146, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32147, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32148, lcc, GRS80, NAD83, "+proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32149, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32150, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32151, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32152, lcc, GRS80, NAD83, "+proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32153, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32154, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32155, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32156, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32157, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32158, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32161, lcc, GRS80, NAD83, "+proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32164, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32165, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32166, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32167, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32180, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32181, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-53 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32182, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-56 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32183, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32184, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32185, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32186, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32187, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32188, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32189, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32190, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32191, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32192, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32193, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32194, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32195, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32196, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32197, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32198, lcc, GRS80, NAD83, "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32199, lcc, GRS80, NAD83, "+proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32201, utm, WGS72, "+proj=utm +zone=1 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32202, utm, WGS72, "+proj=utm +zone=2 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32203, utm, WGS72, "+proj=utm +zone=3 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32204, utm, WGS72, "+proj=utm +zone=4 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32205, utm, WGS72, "+proj=utm +zone=5 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32206, utm, WGS72, "+proj=utm +zone=6 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32207, utm, WGS72, "+proj=utm +zone=7 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32208, utm, WGS72, "+proj=utm +zone=8 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32209, utm, WGS72, "+proj=utm +zone=9 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32210, utm, WGS72, "+proj=utm +zone=10 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32211, utm, WGS72, "+proj=utm +zone=11 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32212, utm, WGS72, "+proj=utm +zone=12 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32213, utm, WGS72, "+proj=utm +zone=13 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32214, utm, WGS72, "+proj=utm +zone=14 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32215, utm, WGS72, "+proj=utm +zone=15 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32216, utm, WGS72, "+proj=utm +zone=16 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32217, utm, WGS72, "+proj=utm +zone=17 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32218, utm, WGS72, "+proj=utm +zone=18 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32219, utm, WGS72, "+proj=utm +zone=19 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32220, utm, WGS72, "+proj=utm +zone=20 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32221, utm, WGS72, "+proj=utm +zone=21 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32222, utm, WGS72, "+proj=utm +zone=22 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32223, utm, WGS72, "+proj=utm +zone=23 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32224, utm, WGS72, "+proj=utm +zone=24 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32225, utm, WGS72, "+proj=utm +zone=25 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32226, utm, WGS72, "+proj=utm +zone=26 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32227, utm, WGS72, "+proj=utm +zone=27 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32228, utm, WGS72, "+proj=utm +zone=28 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32229, utm, WGS72, "+proj=utm +zone=29 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32230, utm, WGS72, "+proj=utm +zone=30 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32231, utm, WGS72, "+proj=utm +zone=31 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32232, utm, WGS72, "+proj=utm +zone=32 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32233, utm, WGS72, "+proj=utm +zone=33 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32234, utm, WGS72, "+proj=utm +zone=34 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32235, utm, WGS72, "+proj=utm +zone=35 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32236, utm, WGS72, "+proj=utm +zone=36 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32237, utm, WGS72, "+proj=utm +zone=37 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32238, utm, WGS72, "+proj=utm +zone=38 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32239, utm, WGS72, "+proj=utm +zone=39 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32240, utm, WGS72, "+proj=utm +zone=40 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32241, utm, WGS72, "+proj=utm +zone=41 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32242, utm, WGS72, "+proj=utm +zone=42 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32243, utm, WGS72, "+proj=utm +zone=43 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32244, utm, WGS72, "+proj=utm +zone=44 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32245, utm, WGS72, "+proj=utm +zone=45 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32246, utm, WGS72, "+proj=utm +zone=46 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32247, utm, WGS72, "+proj=utm +zone=47 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32248, utm, WGS72, "+proj=utm +zone=48 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32249, utm, WGS72, "+proj=utm +zone=49 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32250, utm, WGS72, "+proj=utm +zone=50 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32251, utm, WGS72, "+proj=utm +zone=51 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32252, utm, WGS72, "+proj=utm +zone=52 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32253, utm, WGS72, "+proj=utm +zone=53 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32254, utm, WGS72, "+proj=utm +zone=54 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32255, utm, WGS72, "+proj=utm +zone=55 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32256, utm, WGS72, "+proj=utm +zone=56 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32257, utm, WGS72, "+proj=utm +zone=57 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32258, utm, WGS72, "+proj=utm +zone=58 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32259, utm, WGS72, "+proj=utm +zone=59 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32260, utm, WGS72, "+proj=utm +zone=60 +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32301, utm, WGS72, "+proj=utm +zone=1 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32302, utm, WGS72, "+proj=utm +zone=2 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32303, utm, WGS72, "+proj=utm +zone=3 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32304, utm, WGS72, "+proj=utm +zone=4 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32305, utm, WGS72, "+proj=utm +zone=5 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32306, utm, WGS72, "+proj=utm +zone=6 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32307, utm, WGS72, "+proj=utm +zone=7 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32308, utm, WGS72, "+proj=utm +zone=8 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32309, utm, WGS72, "+proj=utm +zone=9 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32310, utm, WGS72, "+proj=utm +zone=10 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32311, utm, WGS72, "+proj=utm +zone=11 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32312, utm, WGS72, "+proj=utm +zone=12 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32313, utm, WGS72, "+proj=utm +zone=13 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32314, utm, WGS72, "+proj=utm +zone=14 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32315, utm, WGS72, "+proj=utm +zone=15 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32316, utm, WGS72, "+proj=utm +zone=16 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32317, utm, WGS72, "+proj=utm +zone=17 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32318, utm, WGS72, "+proj=utm +zone=18 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32319, utm, WGS72, "+proj=utm +zone=19 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32320, utm, WGS72, "+proj=utm +zone=20 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32321, utm, WGS72, "+proj=utm +zone=21 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32322, utm, WGS72, "+proj=utm +zone=22 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32323, utm, WGS72, "+proj=utm +zone=23 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32324, utm, WGS72, "+proj=utm +zone=24 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32325, utm, WGS72, "+proj=utm +zone=25 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32326, utm, WGS72, "+proj=utm +zone=26 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32327, utm, WGS72, "+proj=utm +zone=27 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32328, utm, WGS72, "+proj=utm +zone=28 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32329, utm, WGS72, "+proj=utm +zone=29 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32330, utm, WGS72, "+proj=utm +zone=30 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32331, utm, WGS72, "+proj=utm +zone=31 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32332, utm, WGS72, "+proj=utm +zone=32 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32333, utm, WGS72, "+proj=utm +zone=33 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32334, utm, WGS72, "+proj=utm +zone=34 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32335, utm, WGS72, "+proj=utm +zone=35 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32336, utm, WGS72, "+proj=utm +zone=36 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32337, utm, WGS72, "+proj=utm +zone=37 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32338, utm, WGS72, "+proj=utm +zone=38 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32339, utm, WGS72, "+proj=utm +zone=39 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32340, utm, WGS72, "+proj=utm +zone=40 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32341, utm, WGS72, "+proj=utm +zone=41 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32342, utm, WGS72, "+proj=utm +zone=42 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32343, utm, WGS72, "+proj=utm +zone=43 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32344, utm, WGS72, "+proj=utm +zone=44 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32345, utm, WGS72, "+proj=utm +zone=45 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32346, utm, WGS72, "+proj=utm +zone=46 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32347, utm, WGS72, "+proj=utm +zone=47 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32348, utm, WGS72, "+proj=utm +zone=48 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32349, utm, WGS72, "+proj=utm +zone=49 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32350, utm, WGS72, "+proj=utm +zone=50 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32351, utm, WGS72, "+proj=utm +zone=51 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32352, utm, WGS72, "+proj=utm +zone=52 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32353, utm, WGS72, "+proj=utm +zone=53 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32354, utm, WGS72, "+proj=utm +zone=54 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32355, utm, WGS72, "+proj=utm +zone=55 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32356, utm, WGS72, "+proj=utm +zone=56 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32357, utm, WGS72, "+proj=utm +zone=57 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32358, utm, WGS72, "+proj=utm +zone=58 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32359, utm, WGS72, "+proj=utm +zone=59 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32360, utm, WGS72, "+proj=utm +zone=60 +south +ellps=WGS72 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32401, utm, WGS72, "+proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32402, utm, WGS72, "+proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32403, utm, WGS72, "+proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32404, utm, WGS72, "+proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32405, utm, WGS72, "+proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32406, utm, WGS72, "+proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32407, utm, WGS72, "+proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32408, utm, WGS72, "+proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32409, utm, WGS72, "+proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32410, utm, WGS72, "+proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32411, utm, WGS72, "+proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32412, utm, WGS72, "+proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32413, utm, WGS72, "+proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32414, utm, WGS72, "+proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32415, utm, WGS72, "+proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32416, utm, WGS72, "+proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32417, utm, WGS72, "+proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32418, utm, WGS72, "+proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32419, utm, WGS72, "+proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32420, utm, WGS72, "+proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32421, utm, WGS72, "+proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32422, utm, WGS72, "+proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32423, utm, WGS72, "+proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32424, utm, WGS72, "+proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32425, utm, WGS72, "+proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32426, utm, WGS72, "+proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32427, utm, WGS72, "+proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32428, utm, WGS72, "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32429, utm, WGS72, "+proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32430, utm, WGS72, "+proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32431, utm, WGS72, "+proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32432, utm, WGS72, "+proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32433, utm, WGS72, "+proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32434, utm, WGS72, "+proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32435, utm, WGS72, "+proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32436, utm, WGS72, "+proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32437, utm, WGS72, "+proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32438, utm, WGS72, "+proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32439, utm, WGS72, "+proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32440, utm, WGS72, "+proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32441, utm, WGS72, "+proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32442, utm, WGS72, "+proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32443, utm, WGS72, "+proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32444, utm, WGS72, "+proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32445, utm, WGS72, "+proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32446, utm, WGS72, "+proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32447, utm, WGS72, "+proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32448, utm, WGS72, "+proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32449, utm, WGS72, "+proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32450, utm, WGS72, "+proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32451, utm, WGS72, "+proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32452, utm, WGS72, "+proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32453, utm, WGS72, "+proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32454, utm, WGS72, "+proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32455, utm, WGS72, "+proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32456, utm, WGS72, "+proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32457, utm, WGS72, "+proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32458, utm, WGS72, "+proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32459, utm, WGS72, "+proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32460, utm, WGS72, "+proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32501, utm, WGS72, "+proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32502, utm, WGS72, "+proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32503, utm, WGS72, "+proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32504, utm, WGS72, "+proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32505, utm, WGS72, "+proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32506, utm, WGS72, "+proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32507, utm, WGS72, "+proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32508, utm, WGS72, "+proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32509, utm, WGS72, "+proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32510, utm, WGS72, "+proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32511, utm, WGS72, "+proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32512, utm, WGS72, "+proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32513, utm, WGS72, "+proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32514, utm, WGS72, "+proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32515, utm, WGS72, "+proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32516, utm, WGS72, "+proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32517, utm, WGS72, "+proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32518, utm, WGS72, "+proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32519, utm, WGS72, "+proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32520, utm, WGS72, "+proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32521, utm, WGS72, "+proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32522, utm, WGS72, "+proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32523, utm, WGS72, "+proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32524, utm, WGS72, "+proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32525, utm, WGS72, "+proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32526, utm, WGS72, "+proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32527, utm, WGS72, "+proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32528, utm, WGS72, "+proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32529, utm, WGS72, "+proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32530, utm, WGS72, "+proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32531, utm, WGS72, "+proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32532, utm, WGS72, "+proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32533, utm, WGS72, "+proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32534, utm, WGS72, "+proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32535, utm, WGS72, "+proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32536, utm, WGS72, "+proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32537, utm, WGS72, "+proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32538, utm, WGS72, "+proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32539, utm, WGS72, "+proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32540, utm, WGS72, "+proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32541, utm, WGS72, "+proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32542, utm, WGS72, "+proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32543, utm, WGS72, "+proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32544, utm, WGS72, "+proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32545, utm, WGS72, "+proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32546, utm, WGS72, "+proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32547, utm, WGS72, "+proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32548, utm, WGS72, "+proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32549, utm, WGS72, "+proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32550, utm, WGS72, "+proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32551, utm, WGS72, "+proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32552, utm, WGS72, "+proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32553, utm, WGS72, "+proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32554, utm, WGS72, "+proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32555, utm, WGS72, "+proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32556, utm, WGS72, "+proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32557, utm, WGS72, "+proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32558, utm, WGS72, "+proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32559, utm, WGS72, "+proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 32560, utm, WGS72, "+proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 32600, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32601, utm, WGS84, WGS84, "+proj=utm +zone=1 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32602, utm, WGS84, WGS84, "+proj=utm +zone=2 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32603, utm, WGS84, WGS84, "+proj=utm +zone=3 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32604, utm, WGS84, WGS84, "+proj=utm +zone=4 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32605, utm, WGS84, WGS84, "+proj=utm +zone=5 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32606, utm, WGS84, WGS84, "+proj=utm +zone=6 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32607, utm, WGS84, WGS84, "+proj=utm +zone=7 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32608, utm, WGS84, WGS84, "+proj=utm +zone=8 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32609, utm, WGS84, WGS84, "+proj=utm +zone=9 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32610, utm, WGS84, WGS84, "+proj=utm +zone=10 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32611, utm, WGS84, WGS84, "+proj=utm +zone=11 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32612, utm, WGS84, WGS84, "+proj=utm +zone=12 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32613, utm, WGS84, WGS84, "+proj=utm +zone=13 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32614, utm, WGS84, WGS84, "+proj=utm +zone=14 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32615, utm, WGS84, WGS84, "+proj=utm +zone=15 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32616, utm, WGS84, WGS84, "+proj=utm +zone=16 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32617, utm, WGS84, WGS84, "+proj=utm +zone=17 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32618, utm, WGS84, WGS84, "+proj=utm +zone=18 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32619, utm, WGS84, WGS84, "+proj=utm +zone=19 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32620, utm, WGS84, WGS84, "+proj=utm +zone=20 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32621, utm, WGS84, WGS84, "+proj=utm +zone=21 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32622, utm, WGS84, WGS84, "+proj=utm +zone=22 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32623, utm, WGS84, WGS84, "+proj=utm +zone=23 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32624, utm, WGS84, WGS84, "+proj=utm +zone=24 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32625, utm, WGS84, WGS84, "+proj=utm +zone=25 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32626, utm, WGS84, WGS84, "+proj=utm +zone=26 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32627, utm, WGS84, WGS84, "+proj=utm +zone=27 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32628, utm, WGS84, WGS84, "+proj=utm +zone=28 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32629, utm, WGS84, WGS84, "+proj=utm +zone=29 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32630, utm, WGS84, WGS84, "+proj=utm +zone=30 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32631, utm, WGS84, WGS84, "+proj=utm +zone=31 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32632, utm, WGS84, WGS84, "+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32633, utm, WGS84, WGS84, "+proj=utm +zone=33 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32634, utm, WGS84, WGS84, "+proj=utm +zone=34 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32635, utm, WGS84, WGS84, "+proj=utm +zone=35 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32636, utm, WGS84, WGS84, "+proj=utm +zone=36 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32637, utm, WGS84, WGS84, "+proj=utm +zone=37 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32638, utm, WGS84, WGS84, "+proj=utm +zone=38 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32639, utm, WGS84, WGS84, "+proj=utm +zone=39 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32640, utm, WGS84, WGS84, "+proj=utm +zone=40 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32641, utm, WGS84, WGS84, "+proj=utm +zone=41 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32642, utm, WGS84, WGS84, "+proj=utm +zone=42 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32643, utm, WGS84, WGS84, "+proj=utm +zone=43 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32644, utm, WGS84, WGS84, "+proj=utm +zone=44 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32645, utm, WGS84, WGS84, "+proj=utm +zone=45 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32646, utm, WGS84, WGS84, "+proj=utm +zone=46 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32647, utm, WGS84, WGS84, "+proj=utm +zone=47 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32648, utm, WGS84, WGS84, "+proj=utm +zone=48 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32649, utm, WGS84, WGS84, "+proj=utm +zone=49 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32650, utm, WGS84, WGS84, "+proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32651, utm, WGS84, WGS84, "+proj=utm +zone=51 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32652, utm, WGS84, WGS84, "+proj=utm +zone=52 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32653, utm, WGS84, WGS84, "+proj=utm +zone=53 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32654, utm, WGS84, WGS84, "+proj=utm +zone=54 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32655, utm, WGS84, WGS84, "+proj=utm +zone=55 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32656, utm, WGS84, WGS84, "+proj=utm +zone=56 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32657, utm, WGS84, WGS84, "+proj=utm +zone=57 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32658, utm, WGS84, WGS84, "+proj=utm +zone=58 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32659, utm, WGS84, WGS84, "+proj=utm +zone=59 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32660, utm, WGS84, WGS84, "+proj=utm +zone=60 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32661, stere, WGS84, WGS84, "+proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32662, eqc, WGS84, WGS84, "+proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 32663, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32664, tmerc, WGS84, WGS84, "+proj=tmerc +lat_0=0 +lon_0=-99 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32665, tmerc, WGS84, WGS84, "+proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32666, tmerc, WGS84, WGS84, "+proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32667, tmerc, WGS84, WGS84, "+proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9996 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 32700, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32701, utm, WGS84, WGS84, "+proj=utm +zone=1 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32702, utm, WGS84, WGS84, "+proj=utm +zone=2 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32703, utm, WGS84, WGS84, "+proj=utm +zone=3 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32704, utm, WGS84, WGS84, "+proj=utm +zone=4 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32705, utm, WGS84, WGS84, "+proj=utm +zone=5 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32706, utm, WGS84, WGS84, "+proj=utm +zone=6 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32707, utm, WGS84, WGS84, "+proj=utm +zone=7 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32708, utm, WGS84, WGS84, "+proj=utm +zone=8 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32709, utm, WGS84, WGS84, "+proj=utm +zone=9 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32710, utm, WGS84, WGS84, "+proj=utm +zone=10 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32711, utm, WGS84, WGS84, "+proj=utm +zone=11 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32712, utm, WGS84, WGS84, "+proj=utm +zone=12 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32713, utm, WGS84, WGS84, "+proj=utm +zone=13 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32714, utm, WGS84, WGS84, "+proj=utm +zone=14 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32715, utm, WGS84, WGS84, "+proj=utm +zone=15 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32716, utm, WGS84, WGS84, "+proj=utm +zone=16 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32717, utm, WGS84, WGS84, "+proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32718, utm, WGS84, WGS84, "+proj=utm +zone=18 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32719, utm, WGS84, WGS84, "+proj=utm +zone=19 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32720, utm, WGS84, WGS84, "+proj=utm +zone=20 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32721, utm, WGS84, WGS84, "+proj=utm +zone=21 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32722, utm, WGS84, WGS84, "+proj=utm +zone=22 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32723, utm, WGS84, WGS84, "+proj=utm +zone=23 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32724, utm, WGS84, WGS84, "+proj=utm +zone=24 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32725, utm, WGS84, WGS84, "+proj=utm +zone=25 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32726, utm, WGS84, WGS84, "+proj=utm +zone=26 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32727, utm, WGS84, WGS84, "+proj=utm +zone=27 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32728, utm, WGS84, WGS84, "+proj=utm +zone=28 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32729, utm, WGS84, WGS84, "+proj=utm +zone=29 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32730, utm, WGS84, WGS84, "+proj=utm +zone=30 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32731, utm, WGS84, WGS84, "+proj=utm +zone=31 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32732, utm, WGS84, WGS84, "+proj=utm +zone=32 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32733, utm, WGS84, WGS84, "+proj=utm +zone=33 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32734, utm, WGS84, WGS84, "+proj=utm +zone=34 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32735, utm, WGS84, WGS84, "+proj=utm +zone=35 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32736, utm, WGS84, WGS84, "+proj=utm +zone=36 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32737, utm, WGS84, WGS84, "+proj=utm +zone=37 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32738, utm, WGS84, WGS84, "+proj=utm +zone=38 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32739, utm, WGS84, WGS84, "+proj=utm +zone=39 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32740, utm, WGS84, WGS84, "+proj=utm +zone=40 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32741, utm, WGS84, WGS84, "+proj=utm +zone=41 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32742, utm, WGS84, WGS84, "+proj=utm +zone=42 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32743, utm, WGS84, WGS84, "+proj=utm +zone=43 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32744, utm, WGS84, WGS84, "+proj=utm +zone=44 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32745, utm, WGS84, WGS84, "+proj=utm +zone=45 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32746, utm, WGS84, WGS84, "+proj=utm +zone=46 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32747, utm, WGS84, WGS84, "+proj=utm +zone=47 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32748, utm, WGS84, WGS84, "+proj=utm +zone=48 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32749, utm, WGS84, WGS84, "+proj=utm +zone=49 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32750, utm, WGS84, WGS84, "+proj=utm +zone=50 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32751, utm, WGS84, WGS84, "+proj=utm +zone=51 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32752, utm, WGS84, WGS84, "+proj=utm +zone=52 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32753, utm, WGS84, WGS84, "+proj=utm +zone=53 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32754, utm, WGS84, WGS84, "+proj=utm +zone=54 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32755, utm, WGS84, WGS84, "+proj=utm +zone=55 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32756, utm, WGS84, WGS84, "+proj=utm +zone=56 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32757, utm, WGS84, WGS84, "+proj=utm +zone=57 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32758, utm, WGS84, WGS84, "+proj=utm +zone=58 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32759, utm, WGS84, WGS84, "+proj=utm +zone=59 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32760, utm, WGS84, WGS84, "+proj=utm +zone=60 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32761, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 32766, tmerc, WGS84, WGS84, "+proj=tmerc +lat_0=0 +lon_0=36 +k=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61206405, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61216405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 61226405, longlat, 6378135, 6356750.304921594, "+proj=longlat +a=6378135 +b=6356750.304921594 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61236405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,-0.345,1.376,0.30857215014565614 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61246405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=414.1,41.3,603.1,-0.855,-2.141,7.023,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61266405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61266413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61276405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=-82.875,-57.097,-156.768,-2.158,-1.524,0.982,-0.07404906544270759 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61286405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61296405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61306405, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,-0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61306413, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,-0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 61316405, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=182.0,915.0,344.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61326405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-244.72,-162.773,400.75,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61336405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,0.0003,0.007,-0.002887707287459349 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61346405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-191.808,-250.512,167.861,-0.792,-1.653,8.558,4.270300283733636 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61356405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=58.0,-283.0,-182.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61366405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61376405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61386405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61396405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=11.0,72.0,-101.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61406405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61406413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61416405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-48.0,55.0,52.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61426405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-125.0,53.0,467.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61436405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-124.76,53.0,466.79,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 61446405, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=214.0,804.0,268.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 61456405, longlat, 6377301.243, 6356100.230165384, "+proj=longlat +a=6377301.243 +b=6356100.230165384 +towgs84=275.57,676.78,229.6,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 61466405, longlat, 6377299.151, 6356098.145120132, "+proj=longlat +a=6377299.151 +b=6356098.145120132 +towgs84=295.0,736.0,257.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61476405, longlat, krass, "+proj=longlat +ellps=krass +towgs84=-17.51,-108.32,-62.39,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61486405, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61486413, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61496405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=674.4,15.1,405.3,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61506405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61516405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61516413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61526405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61526413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=-0.991,1.9072,0.5129,0.0257899075194932,-0.009650098960270402,-0.011659943232342112,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61536405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-133.63,-157.5,-158.62,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61546405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-123.02,-158.95,-168.47,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 61556405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-83.0,37.0,124.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61566405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=559.0,68.7,451.5,7.92,4.073,4.251,1.1777720436709203 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 61576405, longlat, 6378293.645208759, 6356617.987679838, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61586405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-0.465,372.095,171.736,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61596405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-114.7,-98.5,-150.7,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61606405, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61616405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=27.5,14.0,186.4,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61626405, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61636405, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61636413, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61646405, longlat, krass, "+proj=longlat +ellps=krass +towgs84=-76.0,-138.0,67.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61656405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-173.0,253.0,27.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61666405, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61676405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61676413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 61686405, longlat, 6378300, 6356751.689189189, "+proj=longlat +a=6378300 +b=6356751.689189189 +towgs84=-199.0,32.0,322.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61696405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=-115.0,118.0,426.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61706405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61706413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61716405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61716413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61736405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61736413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 61746405, longlat, 6378300, 6356751.689189189, "+proj=longlat +a=6378300 +b=6356751.689189189 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61756405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-88.0,4.0,101.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61766405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61766413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61786405, longlat, krass, "+proj=longlat +ellps=krass +towgs84=24.0,-123.0,-94.0,0.02,0.25,0.13,0.226891286871806 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61796405, longlat, krass, "+proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.17326243724756094 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61806405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61806413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61816405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-193.0,13.7,-39.3,-0.41,-2.933,2.688,0.08869386668625144 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61826405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-422.651,-172.995,84.02,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61836405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-104.0,167.0,-38.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61846405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-203.0,141.0,53.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61886405, longlat, airy, "+proj=longlat +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,1.6810581709138355 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61896405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61896413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61906405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61906413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61916405, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61926405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-206.1,-174.7,-87.7,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 61936405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61946405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=163.511,127.533,-159.789,0.0,0.0,0.814,-0.12375888374825782 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61956405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=105.0,326.0,-102.5,0.0,0.0,0.814,-0.12375888374825782 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61966405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-45.0,417.0,-3.5,0.0,0.0,0.814,-0.12375888374825782 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61976405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61986405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 61996405, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62006405, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62016405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-165.0,-11.0,206.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62026405, longlat, aust_SA, "+proj=longlat +ellps=aust_SA +towgs84=-124.133,-42.003,137.4,-0.008,-0.557,-0.178,-0.3824149507821167 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62036405, longlat, aust_SA, "+proj=longlat +ellps=aust_SA +towgs84=-117.763,-51.51,139.061,0.292,-0.443,-0.277,-0.03939657799319541 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62046405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-18.944,-379.364,-24.063,0.04,0.764,-6.431,0.7543103964456315 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62056405, longlat, krass, "+proj=longlat +ellps=krass +towgs84=-43.0,-163.0,45.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62066405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62076405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-288.885,-91.744,126.244,-1.691,-0.41,0.211,-0.948405579124149 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62086405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-161.0,310.0,-145.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62096405, longlat, 6378249.145, 6356514.966398753, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +towgs84=-138.0,-105.0,-289.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62106405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-157.0,-2.0,-299.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62116405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=-377.7,675.1,-52.2,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62126405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=31.95,300.99,419.19,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62136405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-106.0,-87.0,188.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62146405, longlat, krass, "+proj=longlat +ellps=krass +towgs84=15.8,-154.4,-82.3,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62156405, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62166405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=-73.0,213.0,296.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62186405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=304.5,306.5,-318.1,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62196405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=-384.0,664.0,-48.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62206405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-50.9,-347.6,-231.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62216405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-154.5,150.7,100.4,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62226405, longlat, 6378249.145, 6356514.966398753, "+proj=longlat +a=6378249.145 +b=6356514.966398753 +towgs84=-136.0,-108.0,-292.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62236405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-260.1,5.5,432.2,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62246405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-134.0,229.0,-29.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62256405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-206.0,172.0,-6.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62276405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-83.58,-397.54,458.78,-17.595,-2.847,4.256,0.6652040001468859 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62296405, longlat, helmert, "+proj=longlat +ellps=helmert +towgs84=-130.0,110.0,-13.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62306405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-157.89,-17.16,-78.41,2.118,2.697,-1.434,-1.1097046576093785 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62316405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-82.981,-99.719,-110.709,-0.10470001565102613,0.031001600378938583,0.08040202147511816,-0.06482902860346239 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62326405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-346.0,-1.0,224.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62336405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-133.0,-321.0,50.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62366405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-637.0,-549.0,-203.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62376405, longlat, GRS67, "+proj=longlat +ellps=GRS67 +towgs84=57.01,-69.97,-9.29,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62386405, longlat, 6378160, 6356774.50408554, "+proj=longlat +a=6378160 +b=6356774.50408554 +towgs84=-1.977,-13.06,-9.993,0.364,-0.254,-0.689,-0.2138966040782389 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62396405, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=217.0,823.0,299.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62406405, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=204.64,834.74,293.8,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62416405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62426405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=-33.722,153.789,94.959,-8.581,4.478,-4.54,1.8460700159115124 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62436405, longlat, 6377299.36559538, 6356098.357204818, "+proj=longlat +a=6377299.36559538 +b=6356098.357204818 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62446405, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=-97.0,787.0,86.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62456405, longlat, 6377304.063, 6356103.038993155, "+proj=longlat +a=6377304.063 +b=6356103.038993155 +towgs84=-11.0,851.0,5.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62466405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-294.7,-200.1,525.5,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62476405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-273.5,110.6,-357.9,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62486405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-307.7,265.3,-363.5,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62496405, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62506405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-130.0,29.0,364.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62516405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-90.0,40.0,88.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62526405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62536405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=-133.0,-77.0,-51.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62546405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0002681442481212253 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62556405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-333.0,-222.0,114.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62566405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=41.0,-220.0,-134.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62576405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62586405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62586413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62596405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-254.1,-5.36,-100.29,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62616405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=31.0,146.0,47.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62626405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=639.0,405.0,60.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62636405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-90.2,-87.32,114.17,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62646405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-252.95,-4.11,-96.38,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62656405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-50.2,-50.4,84.8,-0.69,-2.012,0.459,-5.791915759418465 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62666405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-80.7,-132.5,41.1,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 62676405, longlat, clrk66, NAD27, "+proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62686405, longlat, 6378450.047548896, 6356826.621488444, "+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 62696405, longlat, GRS80, NAD83, "+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62706405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-245.0,-153.9,382.8,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62716405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-2.0,374.0,172.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 62726405, longlat, intl, nzgd49, "+proj=longlat +ellps=intl +datum=nzgd49 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62736405, longlat, 6377492.018, 6356173.508712696, "+proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93.0,474.5,7.889,0.05,-6.61,1.2809044467944684 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62746405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-239.749,88.181,30.488,0.263,-0.082,-1.211,0.4597642531247778 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62756405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168.0,-60.0,320.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62766405, longlat, WGS66, "+proj=longlat +ellps=WGS66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 62776405, longlat, airy, OSGB36, "+proj=longlat +ellps=airy +datum=OSGB36 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62786405, longlat, airy, "+proj=longlat +ellps=airy +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62796405, longlat, airy, "+proj=longlat +ellps=airy +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62806405, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62816405, longlat, 6378300.789, 6356566.435, "+proj=longlat +a=6378300.789 +b=6356566.435 +towgs84=-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,0.20626480624709637 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62826405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-178.3,-316.7,-131.5,5.278,6.077,10.979,3.953271276531849 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62836405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62836413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62846405, longlat, krass, "+proj=longlat +ellps=krass +towgs84=-40.595,-18.55,-69.339,2.508,-1.832,2.611,-0.8867324020562674 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62856405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-128.033,-283.697,21.052,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62866405, longlat, helmert, "+proj=longlat +ellps=helmert +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62886405, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62896405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=565.04,49.91,465.84,-0.40939438743923684,-0.35970519561431136,1.868491000350572,0.8409828680306614 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62926405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-355.0,21.0,72.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62936405, longlat, bess_nam, "+proj=longlat +ellps=bess_nam +towgs84=616.0,97.0,-251.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62956405, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62976405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-189.0,-242.0,-91.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 62986405, longlat, evrstSS, "+proj=longlat +ellps=evrstSS +towgs84=-533.4,669.2,-52.5,0.0,0.0,4.28,1.9388891787227058 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 62996405, longlat, 6377340.189, 6356034.447938534, "+proj=longlat +a=6377340.189 +b=6356034.447938534 +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,1.6810581709138355 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 63006405, longlat, 6377340.189, 6356034.447938534, "+proj=longlat +a=6377340.189 +b=6356034.447938534 +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,1.6810581709138355 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63016405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=-147.0,506.0,687.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 63026405, longlat, 6378293.645208759, 6356617.987679838, "+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +towgs84=-61.702,284.488,472.052,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63036405, longlat, helmert, "+proj=longlat +ellps=helmert +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 63046405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73.0,-247.0,227.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63066405, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63076405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-169.559,-72.34,303.102,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63086405, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63096405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-155.0,171.0,37.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 63106405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63116405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-265.0,120.0,-358.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63126405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=426.9,142.6,460.1,4.91,4.49,-12.42,3.5271281868253483 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63136405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-106.8686,52.2978,-103.7239,0.3366,0.457,-1.8422,0.26292574852317374 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 63146405, longlat, bessel, potsdam, "+proj=longlat +ellps=bessel +datum=potsdam +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 63156405, longlat, 6378249.2, 6356515, "+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-23.0,259.0,-9.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63166405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=103.25,-100.4,-307.19,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63176405, longlat, krass, "+proj=longlat +ellps=krass +towgs84=28.0,-121.0,-77.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63186405, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63196405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=226.702,-193.337,-35.371,-2.229,4.391,-9.238,0.20209825716090501 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63226405, longlat, WGS72, "+proj=longlat +ellps=WGS72 +towgs84=0.0,0.0,4.5,0.0,0.0,0.554,0.045171992568114105 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 63246405, longlat, WGS72, "+proj=longlat +ellps=WGS72 +towgs84=0.0,0.0,1.9,0.0,0.0,0.814,-0.07838062637389662 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 63266405, longlat, WGS84, WGS84, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266406, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266407, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266408, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266409, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266410, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 63266411, longlat, WGS84, WGS84, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266412, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 63266413, longlat, WGS84, WGS84, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266414, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266415, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266416, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266417, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266418, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(epsg, 63266419, longlat, WGS84, WGS84, "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (epsg, 63266420, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66006405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66016405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-255.0,-15.0,71.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66026405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=725.0,685.0,536.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66036405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=72.0,213.7,93.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66046405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=174.0,359.0,365.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66056405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=9.0,183.0,236.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66066405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-149.0,128.0,296.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66076405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=195.671,332.517,274.607,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66086405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66096405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 66106405, longlat, 6378140, 6356755.288157528, "+proj=longlat +a=6378140 +b=6356755.288157528 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66116405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.243649,-1.158827,-0.22570443917666022 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66126405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66126413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66136405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=-404.78,685.68,45.47,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66146405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-119.4248,-303.65872,-11.00061,1.164298,0.174458,1.096259,0.7543238036580374 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66156405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-499.0,-249.0,314.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66166405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-289.0,-124.0,60.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66186405, longlat, aust_SA, "+proj=longlat +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66196405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66196413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66206405, longlat, clrk80, "+proj=longlat +ellps=clrk80 +towgs84=-106.0,-129.0,165.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66216405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=137.0,248.0,-430.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66226405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-472.29,-5.63,-304.12,0.4362,-0.8374,0.2563,0.39157310817948776 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66236405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-186.0,230.0,110.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66246405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=2.0,2.0,-2.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66246413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=2.0,2.0,-2.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66256405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=126.93,547.94,130.41,-2.7867,5.1612,-0.8584,2.851136537311739 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66266405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=94.0,-948.0,-1262.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66276405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66276413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66286405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=162.0,117.0,154.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66296405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=72.438,345.918,79.486,1.6045,-0.8823,-0.5565,0.2835316026672587 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66306405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=259.551,297.612,197.833,-1.4866,2.1224,0.4612,5.574285762347154 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66316405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=145.0,-187.0,103.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66326405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-382.0,-59.0,-262.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66336405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=335.47,222.58,-230.94,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66346405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-11.64,-348.6,291.98,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66356405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,0.9240250790257423 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66366405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=365.0,194.0,166.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66376405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=325.0,154.0,172.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66386405, longlat, clrk66, "+proj=longlat +ellps=clrk66 +towgs84=30.0,430.0,368.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66396405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=253.0,-132.0,-127.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66406405, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66406413, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66416405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=287.58,177.78,-135.41,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66426405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-13.0,-348.0,292.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66436405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-23.039820110761912 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66446405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-10.18,-350.43,291.37,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66456405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66456413, longlat, intl, "+proj=longlat +ellps=intl +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66466405, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 66576405, longlat, 6377019.27, 6355762.5391, "+proj=longlat +a=6377019.27 +b=6355762.5391 +towgs84=-28.0,199.0,5.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66586405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-73.0,46.0,-86.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66596405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66596413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66606405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=982.6087,552.753,-540.873,6.681626625276941,-31.61149240864225,-19.848161004816845,3.466280068982454 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66616405, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66616413, longlat, GRS80, "+proj=longlat +ellps=GRS80 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66636405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-210.502,-66.902,-48.476,2.094,15.067,5.817,0.10003843102984174 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66646405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-208.719,129.685,52.092,-0.195,0.014,-0.327,0.040840431636925086 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66656405, longlat, intl, "+proj=longlat +ellps=intl +towgs84=-103.088,162.481,-28.276,0.167,-0.082,-0.168,-0.31022226859563296 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66666405, longlat, bessel, "+proj=longlat +ellps=bessel +towgs84=631.392,-66.551,481.442,1.09,4.445,4.487,-0.9137530916746368 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 66676405, longlat, WGS84, "+proj=longlat +ellps=WGS84 +towgs84=0.0,0.0,0.0,0.0,0.0,0.0,0.0 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68016405, longlat, bessel, "+proj=longlat +ellps=bessel +pm=bern +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68026405, longlat, intl, "+proj=longlat +ellps=intl +pm=bogota +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68036405, longlat, intl, "+proj=longlat +ellps=intl +pm=lisbon +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68046405, longlat, bessel, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68056405, longlat, bessel, "+proj=longlat +ellps=bessel +pm=ferro +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68066405, longlat, intl, "+proj=longlat +ellps=intl +pm=rome +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68086405, longlat, bessel, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68096405, longlat, intl, "+proj=longlat +ellps=intl +pm=brussels +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68136405, longlat, bessel, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68146405, longlat, bessel, "+proj=longlat +ellps=bessel +pm=stockholm +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68156405, longlat, bessel, "+proj=longlat +ellps=bessel +pm=athens +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68186405, longlat, bessel, "+proj=longlat +ellps=bessel +pm=ferro +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (epsg, 68206405, longlat, bessel, "+proj=longlat +ellps=bessel +pm=jakarta +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(epsg, 69036405, longlat, 6378298.3, 6356657.142669561, "+proj=longlat +a=6378298.3 +b=6356657.142669561 +pm=madrid +no_defs") + +} // namespace detail +#endif // DOXYGEN_NO_DETAIL + +}}} // namespace boost::geometry::projections + + +#endif + diff --git a/boost/geometry/srs/projections/esri.hpp b/boost/geometry/srs/projections/esri.hpp new file mode 100644 index 0000000000..577da84a1d --- /dev/null +++ b/boost/geometry/srs/projections/esri.hpp @@ -0,0 +1,491 @@ +// Boost.Geometry + +// Copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + + +#ifndef BOOST_GEOMETRY_PROJECTIONS_ESRI_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ESRI_HPP + + +#include <boost/geometry/srs/projections/code.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + + inline std::string esri_to_string(int code) + { + static const code_element arr[] = { + {37001, "+proj=longlat +ellps=WGS66 +no_defs"}, + {37002, "+proj=longlat +a=6378166 +b=6356784.283607107 +no_defs"}, + {37003, "+proj=longlat +a=6378150 +b=6356768.337244385 +no_defs"}, + {37004, "+proj=longlat +ellps=fschr60m +no_defs"}, + {37005, "+proj=longlat +a=6378270 +b=6356794.343434343 +no_defs"}, + {37006, "+proj=longlat +a=6377295.664 +b=6356094.667915204 +no_defs"}, + {37007, "+proj=longlat +a=6376896 +b=6355834.846687363 +no_defs"}, + {37008, "+proj=longlat +a=6370997 +b=6370997 +no_defs"}, + {37201, "+proj=longlat +ellps=intl +no_defs"}, + {37202, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs"}, + {37203, "+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defs"}, + {37204, "+proj=longlat +ellps=intl +no_defs"}, + {37205, "+proj=longlat +ellps=intl +no_defs"}, + {37206, "+proj=longlat +ellps=clrk80 +no_defs"}, + {37207, "+proj=longlat +ellps=fschr60m +no_defs"}, + {37208, "+proj=longlat +ellps=clrk80 +no_defs"}, + {37211, "+proj=longlat +ellps=clrk80 +no_defs"}, + {37212, "+proj=longlat +ellps=intl +no_defs"}, + {37213, "+proj=longlat +ellps=intl +no_defs"}, + {37214, "+proj=longlat +ellps=intl +no_defs"}, + {37215, "+proj=longlat +ellps=intl +no_defs"}, + {37216, "+proj=longlat +ellps=intl +no_defs"}, + {37217, "+proj=longlat +ellps=intl +no_defs"}, + {37218, "+proj=longlat +ellps=intl +no_defs"}, + {37219, "+proj=longlat +ellps=intl +no_defs"}, + {37220, "+proj=longlat +ellps=clrk66 +no_defs"}, + {37221, "+proj=longlat +ellps=intl +no_defs"}, + {37222, "+proj=longlat +ellps=intl +no_defs"}, + {37223, "+proj=longlat +a=6378249.2 +b=6356514.999904194 +no_defs"}, + {37224, "+proj=longlat +ellps=intl +no_defs"}, + {37226, "+proj=longlat +ellps=intl +no_defs"}, + {37227, "+proj=longlat +ellps=intl +no_defs"}, + {37228, "+proj=longlat +ellps=clrk80 +no_defs"}, + {37229, "+proj=longlat +a=6378270 +b=6356794.343434343 +no_defs"}, + {37230, "+proj=longlat +ellps=intl +no_defs"}, + {37231, "+proj=longlat +ellps=aust_SA +no_defs"}, + {37232, "+proj=longlat +ellps=intl +no_defs"}, + {37233, "+proj=longlat +ellps=intl +no_defs"}, + {37234, "+proj=longlat +ellps=intl +no_defs"}, + {37235, "+proj=longlat +ellps=intl +no_defs"}, + {37237, "+proj=longlat +ellps=intl +no_defs"}, + {37238, "+proj=longlat +ellps=intl +no_defs"}, + {37239, "+proj=longlat +ellps=clrk66 +no_defs"}, + {37240, "+proj=longlat +ellps=clrk80 +no_defs"}, + {37241, "+proj=longlat +ellps=intl +no_defs"}, + {37242, "+proj=longlat +ellps=intl +no_defs"}, + {37243, "+proj=longlat +ellps=clrk66 +no_defs"}, + {37245, "+proj=longlat +ellps=intl +no_defs"}, + {37246, "+proj=longlat +ellps=intl +no_defs"}, + {37247, "+proj=longlat +ellps=intl +no_defs"}, + {37249, "+proj=longlat +ellps=intl +no_defs"}, + {37250, "+proj=longlat +ellps=intl +no_defs"}, + {37251, "+proj=longlat +ellps=intl +no_defs"}, + {37252, "+proj=longlat +ellps=clrk66 +no_defs"}, + {37253, "+proj=longlat +ellps=intl +no_defs"}, + {37254, "+proj=longlat +ellps=clrk80 +no_defs"}, + {37255, "+proj=longlat +ellps=bessel +no_defs"}, + {37257, "+proj=longlat +ellps=krass +no_defs"}, + {37259, "+proj=longlat +ellps=intl +no_defs"}, + {37260, "+proj=longlat +ellps=clrk66 +no_defs"}, + //{53001, ""}, + {53002, "+proj=eqc +lat_ts=60 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + {53003, "+proj=mill +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +R_A +a=6371000 +b=6371000 +units=m +no_defs"}, + {53004, "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + {53008, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + {53009, "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + {53010, "+proj=eck6 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + //{53011, ""}, + {53012, "+proj=eck4 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + //{53013, ""}, + //{53014, ""}, + //{53015, ""}, + {53016, "+proj=gall +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + //{53017, ""}, + //{53018, ""}, + //{53019, ""}, + {53021, "+proj=poly +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + //{53022, ""}, + //{53023, ""}, + {53024, "+proj=bonne +lon_0=0 +lat_1=60 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + {53025, "+proj=omerc +lat_0=40 +lon_1=0 +lat_1=0 +lon_2=0 +lat_2=0 +k=1 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + {53026, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + {53027, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=60 +lat_2=60 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + {53028, "+proj=cass +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + {53029, "+proj=vandg +lon_0=0 +x_0=0 +y_0=0 +R_A +a=6371000 +b=6371000 +units=m +no_defs"}, + {53030, "+proj=robin +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + {53031, "+proj=tpeqd +lat_1=0 +lon_1=0 +lat_2=60 +lon_2=60 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + {53032, "+proj=aeqd +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"}, + //{54001, ""}, + {54002, "+proj=eqc +lat_ts=60 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54003, "+proj=mill +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +R_A +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54004, "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54008, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54009, "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54010, "+proj=eck6 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + //{54011, ""}, + {54012, "+proj=eck4 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + //{54013, ""}, + //{54014, ""}, + //{54015, ""}, + {54016, "+proj=gall +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + //{54017, ""}, + //{54018, ""}, + //{54019, ""}, + {54021, "+proj=poly +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + //{54022, ""}, + //{54023, ""}, + {54024, "+proj=bonne +lon_0=0 +lat_1=60 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54025, "+proj=omerc +lat_0=40 +lon_1=0 +lat_1=0 +lon_2=0 +lat_2=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54026, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54027, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=60 +lat_2=60 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54028, "+proj=cass +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54029, "+proj=vandg +lon_0=0 +x_0=0 +y_0=0 +R_A +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54030, "+proj=robin +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54031, "+proj=tpeqd +lat_1=0 +lon_1=0 +lat_2=60 +lon_2=60 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {54032, "+proj=aeqd +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {65061, "+proj=poly +lat_0=13.47246635277778 +lon_0=-144.7487507055556 +x_0=50000.00000000001 +y_0=50000.00000000001 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {65161, "+proj=poly +lat_0=13.47246635277778 +lon_0=-144.7487507055556 +x_0=50000 +y_0=50000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102001, "+proj=aea +lat_1=50 +lat_2=70 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102002, "+proj=lcc +lat_1=50 +lat_2=70 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102003, "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=37.5 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102004, "+proj=lcc +lat_1=33 +lat_2=45 +lat_0=39 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102005, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=33 +lat_2=45 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102006, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102007, "+proj=aea +lat_1=8 +lat_2=18 +lat_0=13 +lon_0=-157 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102008, "+proj=aea +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102009, "+proj=lcc +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102010, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=20 +lat_2=60 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102011, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102012, "+proj=lcc +lat_1=30 +lat_2=62 +lat_0=0 +lon_0=105 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102013, "+proj=aea +lat_1=43 +lat_2=62 +lat_0=30 +lon_0=10 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs"}, + {102014, "+proj=lcc +lat_1=43 +lat_2=62 +lat_0=30 +lon_0=10 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs"}, + {102015, "+proj=lcc +lat_1=-5 +lat_2=-42 +lat_0=-32 +lon_0=-60 +x_0=0 +y_0=0 +ellps=aust_SA +units=m +no_defs"}, + {102016, "+proj=aeqd +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102017, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102018, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102019, "+proj=aeqd +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102020, "+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102021, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102022, "+proj=aea +lat_1=20 +lat_2=-23 +lat_0=0 +lon_0=25 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102023, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=20 +lat_2=-23 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102024, "+proj=lcc +lat_1=20 +lat_2=-23 +lat_0=0 +lon_0=25 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102025, "+proj=aea +lat_1=15 +lat_2=65 +lat_0=30 +lon_0=95 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102026, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=15 +lat_2=65 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102027, "+proj=lcc +lat_1=15 +lat_2=65 +lat_0=30 +lon_0=95 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102028, "+proj=aea +lat_1=7 +lat_2=-32 +lat_0=-15 +lon_0=125 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102029, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=7 +lat_2=-32 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102030, "+proj=lcc +lat_1=7 +lat_2=-32 +lat_0=-15 +lon_0=125 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"}, + {102031, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=43 +lat_2=62 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs"}, + {102032, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=-5 +lat_2=-42 +x_0=0 +y_0=0 +ellps=aust_SA +units=m +no_defs"}, + {102033, "+proj=aea +lat_1=-5 +lat_2=-42 +lat_0=-32 +lon_0=-60 +x_0=0 +y_0=0 +ellps=aust_SA +units=m +no_defs"}, + {102065, "+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {102066, "+proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=-17.66666666666667 +units=m +no_defs"}, + {102067, "+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {102091, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {102092, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +no_defs"}, + {102101, "+proj=tmerc +lat_0=58 +lon_0=6.05625 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102102, "+proj=tmerc +lat_0=58 +lon_0=8.389583333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102103, "+proj=tmerc +lat_0=58 +lon_0=10.72291666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102104, "+proj=tmerc +lat_0=58 +lon_0=13.22291666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102105, "+proj=tmerc +lat_0=58 +lon_0=16.88958333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102106, "+proj=tmerc +lat_0=58 +lon_0=20.88958333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102107, "+proj=tmerc +lat_0=58 +lon_0=24.88958333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102108, "+proj=tmerc +lat_0=58 +lon_0=29.05625 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102110, "+proj=lcc +lat_1=44 +lat_2=49 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +units=m +no_defs"}, + {102114, "+proj=utm +zone=4 +ellps=clrk66 +units=m +no_defs"}, + {102115, "+proj=utm +zone=5 +ellps=clrk66 +units=m +no_defs"}, + {102120, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.495961392 +y_0=-4354009.816002033 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs"}, + {102121, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.495961392 +y_0=-4354009.816002033 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102122, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=clrk66 +datum=NAD27 +units=m +no_defs"}, + {102123, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"}, + {102132, "+proj=utm +zone=32 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102133, "+proj=utm +zone=33 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102134, "+proj=utm +zone=34 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102135, "+proj=utm +zone=35 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs"}, + {102140, "+proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +units=m +no_defs"}, + {102141, "+proj=utm +zone=49 +ellps=intl +units=m +no_defs"}, + {102142, "+proj=utm +zone=50 +ellps=intl +units=m +no_defs"}, + {102151, "+proj=utm +zone=51 +ellps=bessel +units=m +no_defs"}, + {102152, "+proj=utm +zone=52 +ellps=bessel +units=m +no_defs"}, + {102153, "+proj=utm +zone=53 +ellps=bessel +units=m +no_defs"}, + {102154, "+proj=utm +zone=54 +ellps=bessel +units=m +no_defs"}, + {102155, "+proj=utm +zone=55 +ellps=bessel +units=m +no_defs"}, + {102156, "+proj=utm +zone=56 +ellps=bessel +units=m +no_defs"}, + {102160, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=200180.598 +y_0=299913.01 +ellps=intl +units=m +no_defs"}, + {102161, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defs"}, + {102162, "+proj=utm +zone=26 +ellps=intl +units=m +no_defs"}, + {102163, "+proj=bonne +lon_0=-8.131906111111112 +lat_1=39.66666666666666 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs"}, + {102164, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=200000 +y_0=300000 +ellps=intl +units=m +no_defs"}, + {102165, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs"}, + {102166, "+proj=utm +zone=25 +ellps=intl +units=m +no_defs"}, + {102167, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs"}, + {102168, "+proj=utm +zone=26 +ellps=intl +units=m +no_defs"}, + {102169, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs"}, + {102191, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs"}, + {102192, "+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.9996155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs"}, + {102193, "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.9996 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs"}, + {102229, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102230, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.9999333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102241, "+proj=lcc +lat_1=40 +lat_2=41.66666666666666 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {102242, "+proj=lcc +lat_1=38.33333333333334 +lat_2=39.83333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {102243, "+proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {102244, "+proj=lcc +lat_1=36 +lat_2=37.25 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {102245, "+proj=lcc +lat_1=34.03333333333333 +lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {102246, "+proj=lcc +lat_1=32.78333333333333 +lat_2=33.88333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {102248, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102249, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102250, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.9999333333333333 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102251, "+proj=lcc +lat_1=34.93333333333333 +lat_2=36.23333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102252, "+proj=lcc +lat_1=33.3 +lat_2=34.76666666666667 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs"}, + {102253, "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs"}, + {102254, "+proj=lcc +lat_1=38.45 +lat_2=39.75 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs"}, + {102255, "+proj=lcc +lat_1=37.23333333333333 +lat_2=38.43333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs"}, + {102256, "+proj=lcc +lat_1=41.2 +lat_2=41.86666666666667 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +units=m +no_defs"}, + {102257, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102258, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.9999411764705882 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102259, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.9999411764705882 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102260, "+proj=lcc +lat_1=29.58333333333333 +lat_2=30.75 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102261, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.9999666666666667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102262, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.9999666666666667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102263, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102264, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102265, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102266, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102267, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102268, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473684210526 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102269, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473684210526 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102270, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.9999333333333333 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102271, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102272, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.9999411764705882 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102273, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9999666666666667 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m +no_defs"}, + {102274, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9999666666666667 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m +no_defs"}, + {102277, "+proj=lcc +lat_1=38.71666666666667 +lat_2=39.78333333333333 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102278, "+proj=lcc +lat_1=37.26666666666667 +lat_2=38.56666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs"}, + {102279, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102280, "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"}, + {102281, "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102282, "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102283, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102284, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.9999666666666667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102285, "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102286, "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +units=m +no_defs"}, + {102287, "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102288, "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102289, "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102290, "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102291, "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs"}, + {102292, "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs"}, + {102293, "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs"}, + {102294, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102295, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102296, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9999333333333333 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102297, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9999333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102298, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9999411764705882 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102300, "+proj=lcc +lat_1=45 +lat_2=49 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102304, "+proj=lcc +lat_1=40 +lat_2=43 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102307, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m +no_defs"}, + {102308, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs"}, + {102309, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs"}, + {102310, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9999666666666667 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102311, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102312, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.9999090909090909 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102313, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102314, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.9999166666666667 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102315, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102316, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102317, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102318, "+proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102320, "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102321, "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102322, "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102323, "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102324, "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102325, "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102326, "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102327, "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102330, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102334, "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102335, "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102336, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102337, "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs"}, + {102338, "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs"}, + {102339, "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs"}, + {102340, "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333334 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs"}, + {102341, "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs"}, + {102342, "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs"}, + {102343, "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs"}, + {102344, "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs"}, + {102345, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.9999642857142857 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102346, "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs"}, + {102347, "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs"}, + {102348, "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102349, "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102350, "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102351, "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102352, "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102353, "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102354, "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102355, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102356, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m +no_defs"}, + {102357, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs"}, + {102358, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs"}, + {102361, "+proj=lcc +lat_1=18.03333333333334 +lat_2=18.43333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +units=m +no_defs"}, + {102491, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs"}, + {102492, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs"}, + {102581, "+proj=lcc +lat_1=49.5 +lat_0=49.5 +lon_0=2.337229166666667 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs"}, + {102582, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.337229166666667 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs"}, + {102583, "+proj=lcc +lat_1=44.1 +lat_0=44.1 +lon_0=2.337229166666667 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs"}, + {102584, "+proj=lcc +lat_1=42.165 +lat_0=42.165 +lon_0=2.337229166666667 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs"}, + {102591, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs"}, + {102592, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs"}, + {102629, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102630, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.9999333333333333 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102631, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=-36.86989764583333 +k=0.9999 +x_0=4999999.999999999 +y_0=-4999999.999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102632, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102633, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102634, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102635, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102636, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102637, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102638, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102639, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102640, "+proj=lcc +lat_1=51.83333333333334 +lat_2=53.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102641, "+proj=lcc +lat_1=40 +lat_2=41.66666666666666 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102642, "+proj=lcc +lat_1=38.33333333333334 +lat_2=39.83333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102643, "+proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102644, "+proj=lcc +lat_1=36 +lat_2=37.25 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102645, "+proj=lcc +lat_1=34.03333333333333 +lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102646, "+proj=lcc +lat_1=32.78333333333333 +lat_2=33.88333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102648, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102649, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102650, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.9999333333333333 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102651, "+proj=lcc +lat_1=34.93333333333333 +lat_2=36.23333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102652, "+proj=lcc +lat_1=33.3 +lat_2=34.76666666666667 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.9999999999 +y_0=399999.9999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102653, "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102654, "+proj=lcc +lat_1=38.45 +lat_2=39.75 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102655, "+proj=lcc +lat_1=37.23333333333333 +lat_2=38.43333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102656, "+proj=lcc +lat_1=41.2 +lat_2=41.86666666666667 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102657, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102658, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.9999411764705882 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102659, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.9999411764705882 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102660, "+proj=lcc +lat_1=29.58333333333333 +lat_2=30.75 +lat_0=29 +lon_0=-84.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102661, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.9999666666666667 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102662, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.9999666666666667 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102663, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102664, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102665, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102666, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102667, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102668, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473684210526 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102669, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473684210526 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102670, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.9999333333333333 +x_0=799999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102671, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102672, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.9999411764705882 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102673, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9999666666666667 +x_0=100000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102674, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9999666666666667 +x_0=900000.0000000001 +y_0=250000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102675, "+proj=lcc +lat_1=42.06666666666667 +lat_2=43.26666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102676, "+proj=lcc +lat_1=40.61666666666667 +lat_2=41.78333333333333 +lat_0=40 +lon_0=-93.5 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102677, "+proj=lcc +lat_1=38.71666666666667 +lat_2=39.78333333333333 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102678, "+proj=lcc +lat_1=37.26666666666667 +lat_2=38.56666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.9999999999 +y_0=399999.9999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102679, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102680, "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0000000002 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102681, "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102682, "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102683, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102684, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.9999666666666667 +x_0=900000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102685, "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102686, "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000.0000000001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102687, "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102688, "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102689, "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000.000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102690, "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102691, "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102692, "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102693, "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102694, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102695, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102696, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9999333333333333 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102697, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9999333333333333 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102698, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9999411764705882 +x_0=850000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102700, "+proj=lcc +lat_1=45 +lat_2=49 +lat_0=44.25 +lon_0=-109.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102704, "+proj=lcc +lat_1=40 +lat_2=43 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102707, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=7999999.999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102708, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.0000000002 +y_0=6000000.000000001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102709, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=799999.9999999999 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102710, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9999666666666667 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102711, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102712, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.9999090909090909 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102713, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102714, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.9999166666666667 +x_0=829999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102715, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102716, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102717, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102718, "+proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102719, "+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2199999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102720, "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102721, "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102722, "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102723, "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102724, "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102725, "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102726, "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102727, "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102728, "+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102729, "+proj=lcc +lat_1=39.93333333333333 +lat_2=40.96666666666667 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102730, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102733, "+proj=lcc +lat_1=32.5 +lat_2=34.83333333333334 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102734, "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102735, "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102736, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102737, "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102738, "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000.0000000001 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102739, "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102740, "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333334 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000.0000000001 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102741, "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=4999999.999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102742, "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0000000002 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102743, "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0000000002 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102744, "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0000000002 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102745, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.9999642857142857 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102746, "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3499999.999999999 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102747, "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3499999.999999999 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102748, "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102749, "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102750, "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102751, "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102752, "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102753, "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102754, "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102755, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102756, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102757, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102758, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102761, "+proj=lcc +lat_1=18.03333333333334 +lat_2=18.43333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {102766, "+proj=poly +lat_0=13.47246635277778 +lon_0=-144.7487507055556 +x_0=49999.99999999999 +y_0=49999.99999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs"}, + {103300, "+proj=lcc +lat_1=49.8333339 +lat_2=51.16666733333333 +lat_0=90 +lon_0=4.367486666666666 +x_0=150000.01256 +y_0=5400088.4378 +ellps=intl +units=m +no_defs"}, + {104000, "+proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs"}, + {104101, "+proj=longlat +ellps=bessel +no_defs"}, + {104102, "+proj=longlat +ellps=bessel +no_defs"}, + {104103, "+proj=longlat +ellps=clrk80 +no_defs"}, + {104104, "+proj=longlat +ellps=intl +no_defs"}, + {104105, "+proj=longlat +ellps=bessel +no_defs"}, + {104106, "+proj=longlat +ellps=intl +no_defs"}, + {104107, "+proj=longlat +ellps=GRS80 +no_defs"}, + {104108, "+proj=longlat +ellps=GRS80 +no_defs"}, + {104261, "+proj=longlat +a=6378249.2 +b=6356514.999904194 +no_defs"}, + {104304, "+proj=longlat +a=6378249.2 +b=6356514.999904194 +no_defs"}, + {104305, "+proj=longlat +ellps=clrk80 +no_defs"} + }; + + const code_element * first = arr; + const code_element * last = arr + sizeof(arr) / sizeof(code_element); + const code_element * el = binary_find_code_element(first, last, code); + + return el != last ? el->proj4_str : ""; + } + +} +#endif // DOXYGEN_NO_DETAIL + + +}}} // namespace boost::geometry::projections + +#endif diff --git a/boost/geometry/srs/projections/esri_params.hpp b/boost/geometry/srs/projections/esri_params.hpp new file mode 100644 index 0000000000..01673092f8 --- /dev/null +++ b/boost/geometry/srs/projections/esri_params.hpp @@ -0,0 +1,48 @@ +// Boost.Geometry + +// Copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_SRS_PROJECTIONS_ESRI_PARAMS_HPP +#define BOOST_GEOMETRY_SRS_PROJECTIONS_ESRI_PARAMS_HPP + + +#include <string> + +#include <boost/geometry/srs/spheroid.hpp> + + +namespace boost { namespace geometry +{ + +namespace srs +{ + + +struct esri +{ + explicit esri(int c) + : code(c) + {} + + int code; +}; + + +template <int Code> +struct static_esri +{ + static const int code = Code; +}; + + +} // namespace srs + + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_SRS_PROJECTIONS_ESRI_PARAMS_HPP diff --git a/boost/geometry/srs/projections/esri_traits.hpp b/boost/geometry/srs/projections/esri_traits.hpp new file mode 100644 index 0000000000..961bd3695f --- /dev/null +++ b/boost/geometry/srs/projections/esri_traits.hpp @@ -0,0 +1,499 @@ +// Boost.Geometry + +// Copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_ESRI_TRAITS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ESRI_TRAITS_HPP + + +#include <boost/geometry/core/tags.hpp> + +#include <boost/geometry/srs/projections/factory.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/srid_traits.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + +/*! + \brief ESRI traits + \details With help of the ESRI traits library users can statically use projections + or coordinate systems specifying an ESRI code. The correct projections for transformations + are used automically then, still keeping static polymorphism. + \ingroup projection + \tparam ESRI esri code +*/ +template <size_t ESRI> +struct esri_traits +{ + // Specializations define: + // - type to get projection type + // - function par to get parameters +}; + +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37001, longlat, WGS66, "+proj=longlat +ellps=WGS66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 37002, longlat, 6378166, 6356784.283607107, "+proj=longlat +a=6378166 +b=6356784.283607107 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 37003, longlat, 6378150, 6356768.337244385, "+proj=longlat +a=6378150 +b=6356768.337244385 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37004, longlat, fschr60m, "+proj=longlat +ellps=fschr60m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 37005, longlat, 6378270, 6356794.343434343, "+proj=longlat +a=6378270 +b=6356794.343434343 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 37006, longlat, 6377295.664, 6356094.667915204, "+proj=longlat +a=6377295.664 +b=6356094.667915204 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 37007, longlat, 6376896, 6355834.846687363, "+proj=longlat +a=6376896 +b=6355834.846687363 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 37008, longlat, 6370997, "+proj=longlat +a=6370997 +b=6370997 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37201, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 37202, longlat, 6377276.345, 6356075.41314024, "+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 37203, longlat, 6377301.243, 6356100.230165384, "+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37204, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37205, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37206, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37207, longlat, fschr60m, "+proj=longlat +ellps=fschr60m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37208, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37211, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37212, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37213, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37214, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37215, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37216, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37217, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37218, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37219, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37220, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37221, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37222, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 37223, longlat, 6378249.2, 6356514.999904194, "+proj=longlat +a=6378249.2 +b=6356514.999904194 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37224, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37226, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37227, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37228, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 37229, longlat, 6378270, 6356794.343434343, "+proj=longlat +a=6378270 +b=6356794.343434343 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37230, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37231, longlat, aust_SA, "+proj=longlat +ellps=aust_SA +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37232, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37233, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37234, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37235, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37237, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37238, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37239, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37240, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37241, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37242, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37243, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37245, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37246, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37247, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37249, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37250, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37251, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37252, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37253, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37254, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37255, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37257, longlat, krass, "+proj=longlat +ellps=krass +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37259, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 37260, longlat, clrk66, "+proj=longlat +ellps=clrk66 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 53001, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53002, eqc, 6371000, "+proj=eqc +lat_ts=60 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53003, mill, 6371000, "+proj=mill +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +R_A +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53004, merc, 6371000, "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53008, sinu, 6371000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53009, moll, 6371000, "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53010, eck6, 6371000, "+proj=eck6 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 53011, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53012, eck4, 6371000, "+proj=eck4 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 53013, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 53014, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 53015, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53016, gall, 6371000, "+proj=gall +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 53017, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 53018, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 53019, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53021, poly, 6371000, "+proj=poly +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 53022, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 53023, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53024, bonne, 6371000, "+proj=bonne +lon_0=0 +lat_1=60 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53025, omerc, 6371000, "+proj=omerc +lat_0=40 +lon_1=0 +lat_1=0 +lon_2=0 +lat_2=0 +k=1 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53026, stere, 6371000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53027, eqdc, 6371000, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=60 +lat_2=60 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53028, cass, 6371000, "+proj=cass +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53029, vandg, 6371000, "+proj=vandg +lon_0=0 +x_0=0 +y_0=0 +R_A +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53030, robin, 6371000, "+proj=robin +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53031, tpeqd, 6371000, "+proj=tpeqd +lat_1=0 +lon_1=0 +lat_2=60 +lon_2=60 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 53032, aeqd, 6371000, "+proj=aeqd +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 54001, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54002, eqc, WGS84, WGS84, "+proj=eqc +lat_ts=60 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 54003, mill, 6371007.1810824294, "+proj=mill +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +R_A +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54004, merc, WGS84, WGS84, "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54008, sinu, WGS84, WGS84, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54009, moll, WGS84, WGS84, "+proj=moll +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54010, eck6, WGS84, WGS84, "+proj=eck6 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 54011, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54012, eck4, WGS84, WGS84, "+proj=eck4 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 54013, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 54014, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 54015, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54016, gall, WGS84, WGS84, "+proj=gall +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 54017, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 54018, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 54019, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54021, poly, WGS84, WGS84, "+proj=poly +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 54022, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (esri, 54023, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54024, bonne, WGS84, WGS84, "+proj=bonne +lon_0=0 +lat_1=60 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54025, omerc, WGS84, WGS84, "+proj=omerc +lat_0=40 +lon_1=0 +lat_1=0 +lon_2=0 +lat_2=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54026, stere, WGS84, WGS84, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54027, eqdc, WGS84, WGS84, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=60 +lat_2=60 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54028, cass, WGS84, WGS84, "+proj=cass +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (esri, 54029, vandg, 6371007.1810824294, "+proj=vandg +lon_0=0 +x_0=0 +y_0=0 +R_A +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54030, robin, WGS84, WGS84, "+proj=robin +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54031, tpeqd, WGS84, WGS84, "+proj=tpeqd +lat_1=0 +lon_1=0 +lat_2=60 +lon_2=60 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 54032, aeqd, WGS84, WGS84, "+proj=aeqd +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 65061, poly, clrk66, NAD27, "+proj=poly +lat_0=13.47246635277778 +lon_0=-144.7487507055556 +x_0=50000.00000000001 +y_0=50000.00000000001 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 65161, poly, GRS80, NAD83, "+proj=poly +lat_0=13.47246635277778 +lon_0=-144.7487507055556 +x_0=50000 +y_0=50000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102001, aea, GRS80, NAD83, "+proj=aea +lat_1=50 +lat_2=70 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102002, lcc, GRS80, NAD83, "+proj=lcc +lat_1=50 +lat_2=70 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102003, aea, GRS80, NAD83, "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=37.5 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102004, lcc, GRS80, NAD83, "+proj=lcc +lat_1=33 +lat_2=45 +lat_0=39 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102005, eqdc, GRS80, NAD83, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=33 +lat_2=45 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102006, aea, GRS80, NAD83, "+proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102007, aea, GRS80, NAD83, "+proj=aea +lat_1=8 +lat_2=18 +lat_0=13 +lon_0=-157 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102008, aea, GRS80, NAD83, "+proj=aea +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102009, lcc, GRS80, NAD83, "+proj=lcc +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102010, eqdc, GRS80, NAD83, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=20 +lat_2=60 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102011, sinu, WGS84, WGS84, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102012, lcc, WGS84, WGS84, "+proj=lcc +lat_1=30 +lat_2=62 +lat_0=0 +lon_0=105 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102013, aea, intl, "+proj=aea +lat_1=43 +lat_2=62 +lat_0=30 +lon_0=10 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102014, lcc, intl, "+proj=lcc +lat_1=43 +lat_2=62 +lat_0=30 +lon_0=10 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102015, lcc, aust_SA, "+proj=lcc +lat_1=-5 +lat_2=-42 +lat_0=-32 +lon_0=-60 +x_0=0 +y_0=0 +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102016, aeqd, WGS84, WGS84, "+proj=aeqd +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102017, laea, WGS84, WGS84, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102018, stere, WGS84, WGS84, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102019, aeqd, WGS84, WGS84, "+proj=aeqd +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102020, laea, WGS84, WGS84, "+proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102021, stere, WGS84, WGS84, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102022, aea, WGS84, WGS84, "+proj=aea +lat_1=20 +lat_2=-23 +lat_0=0 +lon_0=25 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102023, eqdc, WGS84, WGS84, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=20 +lat_2=-23 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102024, lcc, WGS84, WGS84, "+proj=lcc +lat_1=20 +lat_2=-23 +lat_0=0 +lon_0=25 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102025, aea, WGS84, WGS84, "+proj=aea +lat_1=15 +lat_2=65 +lat_0=30 +lon_0=95 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102026, eqdc, WGS84, WGS84, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=15 +lat_2=65 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102027, lcc, WGS84, WGS84, "+proj=lcc +lat_1=15 +lat_2=65 +lat_0=30 +lon_0=95 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102028, aea, WGS84, WGS84, "+proj=aea +lat_1=7 +lat_2=-32 +lat_0=-15 +lon_0=125 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102029, eqdc, WGS84, WGS84, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=7 +lat_2=-32 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102030, lcc, WGS84, WGS84, "+proj=lcc +lat_1=7 +lat_2=-32 +lat_0=-15 +lon_0=125 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102031, eqdc, intl, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=43 +lat_2=62 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102032, eqdc, aust_SA, "+proj=eqdc +lat_0=0 +lon_0=0 +lat_1=-5 +lat_2=-42 +x_0=0 +y_0=0 +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102033, aea, aust_SA, "+proj=aea +lat_1=-5 +lat_2=-42 +lat_0=-32 +lon_0=-60 +x_0=0 +y_0=0 +ellps=aust_SA +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102065, krovak, bessel, "+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102066, krovak, bessel, "+proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=-17.66666666666667 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102067, krovak, bessel, "+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102091, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102092, tmerc, intl, "+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102101, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=6.05625 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102102, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=8.389583333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102103, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=10.72291666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102104, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=13.22291666666667 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102105, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=16.88958333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102106, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=20.88958333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102107, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=24.88958333333333 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102108, tmerc, 6377492.018, 6356173.508712696, "+proj=tmerc +lat_0=58 +lon_0=29.05625 +k=1 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102110, lcc, GRS80, "+proj=lcc +lat_1=44 +lat_2=49 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102114, utm, clrk66, "+proj=utm +zone=4 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102115, utm, clrk66, "+proj=utm +zone=5 +ellps=clrk66 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102120, omerc, clrk66, NAD27, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.495961392 +y_0=-4354009.816002033 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102121, omerc, GRS80, NAD83, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.495961392 +y_0=-4354009.816002033 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102122, omerc, clrk66, NAD27, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=clrk66 +datum=NAD27 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102123, omerc, GRS80, NAD83, "+proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +datum=NAD83 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102132, utm, 6377492.018, 6356173.508712696, "+proj=utm +zone=32 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102133, utm, 6377492.018, 6356173.508712696, "+proj=utm +zone=33 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102134, utm, 6377492.018, 6356173.508712696, "+proj=utm +zone=34 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102135, utm, 6377492.018, 6356173.508712696, "+proj=utm +zone=35 +a=6377492.018 +b=6356173.508712696 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102140, tmerc, intl, "+proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1 +x_0=836694.05 +y_0=819069.8 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102141, utm, intl, "+proj=utm +zone=49 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102142, utm, intl, "+proj=utm +zone=50 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102151, utm, bessel, "+proj=utm +zone=51 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102152, utm, bessel, "+proj=utm +zone=52 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102153, utm, bessel, "+proj=utm +zone=53 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102154, utm, bessel, "+proj=utm +zone=54 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102155, utm, bessel, "+proj=utm +zone=55 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102156, utm, bessel, "+proj=utm +zone=56 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102160, tmerc, intl, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=200180.598 +y_0=299913.01 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102161, tmerc, intl, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102162, utm, intl, "+proj=utm +zone=26 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102163, bonne, bessel, "+proj=bonne +lon_0=-8.131906111111112 +lat_1=39.66666666666666 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102164, tmerc, intl, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=200000 +y_0=300000 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102165, tmerc, intl, "+proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102166, utm, intl, "+proj=utm +zone=25 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102167, utm, intl, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102168, utm, intl, "+proj=utm +zone=26 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102169, utm, intl, "+proj=utm +zone=28 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102191, lcc, 6378249.2, 6356514.999904194, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102192, lcc, 6378249.2, 6356514.999904194, "+proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.9996155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102193, lcc, 6378249.2, 6356514.999904194, "+proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.9996 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102229, tmerc, GRS80, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102230, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.9999333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102241, lcc, GRS80, "+proj=lcc +lat_1=40 +lat_2=41.66666666666666 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102242, lcc, GRS80, "+proj=lcc +lat_1=38.33333333333334 +lat_2=39.83333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102243, lcc, GRS80, "+proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102244, lcc, GRS80, "+proj=lcc +lat_1=36 +lat_2=37.25 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102245, lcc, GRS80, "+proj=lcc +lat_1=34.03333333333333 +lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102246, lcc, GRS80, "+proj=lcc +lat_1=32.78333333333333 +lat_2=33.88333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102248, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102249, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102250, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.9999333333333333 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102251, lcc, GRS80, "+proj=lcc +lat_1=34.93333333333333 +lat_2=36.23333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102252, lcc, GRS80, "+proj=lcc +lat_1=33.3 +lat_2=34.76666666666667 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102253, lcc, GRS80, "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102254, lcc, GRS80, "+proj=lcc +lat_1=38.45 +lat_2=39.75 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102255, lcc, GRS80, "+proj=lcc +lat_1=37.23333333333333 +lat_2=38.43333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102256, lcc, GRS80, "+proj=lcc +lat_1=41.2 +lat_2=41.86666666666667 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102257, tmerc, GRS80, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102258, tmerc, GRS80, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.9999411764705882 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102259, tmerc, GRS80, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.9999411764705882 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102260, lcc, GRS80, "+proj=lcc +lat_1=29.58333333333333 +lat_2=30.75 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102261, tmerc, GRS80, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.9999666666666667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102262, tmerc, GRS80, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.9999666666666667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102263, tmerc, GRS80, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102264, tmerc, GRS80, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102265, tmerc, GRS80, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102266, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102267, tmerc, GRS80, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102268, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473684210526 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102269, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473684210526 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102270, tmerc, GRS80, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.9999333333333333 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102271, tmerc, GRS80, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102272, tmerc, GRS80, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.9999411764705882 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102273, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9999666666666667 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102274, tmerc, GRS80, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9999666666666667 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102277, lcc, GRS80, "+proj=lcc +lat_1=38.71666666666667 +lat_2=39.78333333333333 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102278, lcc, GRS80, "+proj=lcc +lat_1=37.26666666666667 +lat_2=38.56666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102279, lcc, GRS80, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102280, lcc, GRS80, "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102281, lcc, GRS80, "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102282, lcc, GRS80, "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102283, tmerc, GRS80, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102284, tmerc, GRS80, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.9999666666666667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102285, lcc, GRS80, "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102286, lcc, GRS80, "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102287, lcc, GRS80, "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102288, lcc, GRS80, "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102289, lcc, GRS80, "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102290, lcc, GRS80, "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102291, lcc, GRS80, "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102292, lcc, GRS80, "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102293, lcc, GRS80, "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102294, tmerc, GRS80, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102295, tmerc, GRS80, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102296, tmerc, GRS80, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9999333333333333 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102297, tmerc, GRS80, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9999333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102298, tmerc, GRS80, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9999411764705882 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102300, lcc, GRS80, "+proj=lcc +lat_1=45 +lat_2=49 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102304, lcc, GRS80, "+proj=lcc +lat_1=40 +lat_2=43 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102307, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102308, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102309, tmerc, GRS80, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102310, tmerc, GRS80, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9999666666666667 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102311, tmerc, GRS80, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102312, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.9999090909090909 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102313, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102314, tmerc, GRS80, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.9999166666666667 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102315, tmerc, GRS80, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102316, tmerc, GRS80, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102317, tmerc, GRS80, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102318, lcc, GRS80, "+proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102320, lcc, GRS80, "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102321, lcc, GRS80, "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102322, lcc, GRS80, "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102323, lcc, GRS80, "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102324, lcc, GRS80, "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102325, lcc, GRS80, "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102326, lcc, GRS80, "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102327, lcc, GRS80, "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102330, tmerc, GRS80, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102334, lcc, GRS80, "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102335, lcc, GRS80, "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102336, lcc, GRS80, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102337, lcc, GRS80, "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102338, lcc, GRS80, "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102339, lcc, GRS80, "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102340, lcc, GRS80, "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333334 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102341, lcc, GRS80, "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102342, lcc, GRS80, "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102343, lcc, GRS80, "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102344, lcc, GRS80, "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102345, tmerc, GRS80, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.9999642857142857 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102346, lcc, GRS80, "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102347, lcc, GRS80, "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102348, lcc, GRS80, "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102349, lcc, GRS80, "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102350, lcc, GRS80, "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102351, lcc, GRS80, "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102352, lcc, GRS80, "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102353, lcc, GRS80, "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102354, lcc, GRS80, "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102355, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102356, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102357, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102358, tmerc, GRS80, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102361, lcc, GRS80, "+proj=lcc +lat_1=18.03333333333334 +lat_2=18.43333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102491, lcc, 6378249.2, 6356514.999904194, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102492, lcc, 6378249.2, 6356514.999904194, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102581, lcc, 6378249.2, 6356514.999904194, "+proj=lcc +lat_1=49.5 +lat_0=49.5 +lon_0=2.337229166666667 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102582, lcc, 6378249.2, 6356514.999904194, "+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.337229166666667 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102583, lcc, 6378249.2, 6356514.999904194, "+proj=lcc +lat_1=44.1 +lat_0=44.1 +lon_0=2.337229166666667 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 102584, lcc, 6378249.2, 6356514.999904194, "+proj=lcc +lat_1=42.165 +lat_0=42.165 +lon_0=2.337229166666667 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356514.999904194 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102591, lcc, clrk80, "+proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 102592, lcc, clrk80, "+proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102629, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102630, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.9999333333333333 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102631, omerc, GRS80, NAD83, "+proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=-36.86989764583333 +k=0.9999 +x_0=4999999.999999999 +y_0=-4999999.999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102632, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102633, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102634, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102635, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102636, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102637, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102638, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102639, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102640, lcc, GRS80, NAD83, "+proj=lcc +lat_1=51.83333333333334 +lat_2=53.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102641, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40 +lat_2=41.66666666666666 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102642, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.33333333333334 +lat_2=39.83333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102643, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102644, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36 +lat_2=37.25 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102645, lcc, GRS80, NAD83, "+proj=lcc +lat_1=34.03333333333333 +lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102646, lcc, GRS80, NAD83, "+proj=lcc +lat_1=32.78333333333333 +lat_2=33.88333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102648, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102649, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102650, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.9999333333333333 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102651, lcc, GRS80, NAD83, "+proj=lcc +lat_1=34.93333333333333 +lat_2=36.23333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102652, lcc, GRS80, NAD83, "+proj=lcc +lat_1=33.3 +lat_2=34.76666666666667 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.9999999999 +y_0=399999.9999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102653, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102654, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.45 +lat_2=39.75 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102655, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.23333333333333 +lat_2=38.43333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102656, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.2 +lat_2=41.86666666666667 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102657, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102658, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.9999411764705882 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102659, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.9999411764705882 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102660, lcc, GRS80, NAD83, "+proj=lcc +lat_1=29.58333333333333 +lat_2=30.75 +lat_0=29 +lon_0=-84.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102661, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.9999666666666667 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102662, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.9999666666666667 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102663, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102664, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102665, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102666, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102667, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102668, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473684210526 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102669, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473684210526 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102670, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.9999333333333333 +x_0=799999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102671, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102672, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.9999411764705882 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102673, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.9999666666666667 +x_0=100000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102674, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.9999666666666667 +x_0=900000.0000000001 +y_0=250000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102675, lcc, GRS80, NAD83, "+proj=lcc +lat_1=42.06666666666667 +lat_2=43.26666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102676, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.61666666666667 +lat_2=41.78333333333333 +lat_0=40 +lon_0=-93.5 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102677, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.71666666666667 +lat_2=39.78333333333333 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102678, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.26666666666667 +lat_2=38.56666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.9999999999 +y_0=399999.9999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102679, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102680, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0000000002 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102681, lcc, GRS80, NAD83, "+proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102682, lcc, GRS80, NAD83, "+proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102683, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102684, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.9999666666666667 +x_0=900000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102685, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102686, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000.0000000001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102687, lcc, GRS80, NAD83, "+proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102688, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102689, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000.000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102690, lcc, GRS80, NAD83, "+proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102691, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102692, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102693, lcc, GRS80, NAD83, "+proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102694, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102695, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102696, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.9999333333333333 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102697, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.9999333333333333 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102698, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.9999411764705882 +x_0=850000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102700, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45 +lat_2=49 +lat_0=44.25 +lon_0=-109.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102704, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40 +lat_2=43 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102707, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=7999999.999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102708, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.0000000002 +y_0=6000000.000000001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102709, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=799999.9999999999 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102710, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.9999666666666667 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102711, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102712, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.9999090909090909 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102713, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102714, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.9999166666666667 +x_0=829999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102715, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102716, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102717, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102718, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102719, lcc, GRS80, NAD83, "+proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2199999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102720, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102721, lcc, GRS80, NAD83, "+proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102722, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102723, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102724, lcc, GRS80, NAD83, "+proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102725, lcc, GRS80, NAD83, "+proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102726, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102727, lcc, GRS80, NAD83, "+proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102728, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102729, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.93333333333333 +lat_2=40.96666666666667 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102730, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102733, lcc, GRS80, NAD83, "+proj=lcc +lat_1=32.5 +lat_2=34.83333333333334 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102734, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102735, lcc, GRS80, NAD83, "+proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102736, lcc, GRS80, NAD83, "+proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102737, lcc, GRS80, NAD83, "+proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102738, lcc, GRS80, NAD83, "+proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000.0000000001 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102739, lcc, GRS80, NAD83, "+proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102740, lcc, GRS80, NAD83, "+proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333334 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000.0000000001 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102741, lcc, GRS80, NAD83, "+proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=4999999.999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102742, lcc, GRS80, NAD83, "+proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0000000002 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102743, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0000000002 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102744, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0000000002 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102745, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.9999642857142857 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102746, lcc, GRS80, NAD83, "+proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3499999.999999999 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102747, lcc, GRS80, NAD83, "+proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3499999.999999999 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102748, lcc, GRS80, NAD83, "+proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102749, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102750, lcc, GRS80, NAD83, "+proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102751, lcc, GRS80, NAD83, "+proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102752, lcc, GRS80, NAD83, "+proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102753, lcc, GRS80, NAD83, "+proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102754, lcc, GRS80, NAD83, "+proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102755, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102756, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102757, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102758, tmerc, GRS80, NAD83, "+proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102761, lcc, GRS80, NAD83, "+proj=lcc +lat_1=18.03333333333334 +lat_2=18.43333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 102766, poly, GRS80, NAD83, "+proj=poly +lat_0=13.47246635277778 +lon_0=-144.7487507055556 +x_0=49999.99999999999 +y_0=49999.99999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 103300, lcc, intl, "+proj=lcc +lat_1=49.8333339 +lat_2=51.16666733333333 +lat_0=90 +lon_0=4.367486666666666 +x_0=150000.01256 +y_0=5400088.4378 +ellps=intl +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(esri, 104000, longlat, clrk66, NAD27, "+proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 104101, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 104102, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 104103, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 104104, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 104105, longlat, bessel, "+proj=longlat +ellps=bessel +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 104106, longlat, intl, "+proj=longlat +ellps=intl +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 104107, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 104108, longlat, GRS80, "+proj=longlat +ellps=GRS80 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 104261, longlat, 6378249.2, 6356514.999904194, "+proj=longlat +a=6378249.2 +b=6356514.999904194 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(esri, 104304, longlat, 6378249.2, 6356514.999904194, "+proj=longlat +a=6378249.2 +b=6356514.999904194 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E (esri, 104305, longlat, clrk80, "+proj=longlat +ellps=clrk80 +no_defs") + +} // namespace detail +#endif // DOXYGEN_NO_DETAIL + +}}} // namespace boost::geometry::projections + + +#endif + diff --git a/boost/geometry/srs/projections/exception.hpp b/boost/geometry/srs/projections/exception.hpp new file mode 100644 index 0000000000..222207024e --- /dev/null +++ b/boost/geometry/srs/projections/exception.hpp @@ -0,0 +1,97 @@ +// Boost.Geometry + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_EXCEPTION_HPP +#define BOOST_GEOMETRY_PROJECTIONS_EXCEPTION_HPP + + +#include <boost/geometry/core/exception.hpp> +#include <boost/geometry/srs/projections/impl/pj_strerrno.hpp> + +#include <boost/throw_exception.hpp> + + +namespace boost { namespace geometry +{ + + +// TODO: make more for forward/inverse/init/setup +class projection_exception : public geometry::exception +{ +public: + explicit projection_exception(int code = 0) + : m_code(code) + , m_msg(projections::detail::pj_strerrno(code)) + {} + + explicit projection_exception(std::string const& msg) + : m_code(0) + , m_msg(msg) + {} + + projection_exception(int code, std::string const& msg) + : m_code(code) + , m_msg(msg) + {} + + virtual char const* what() const throw() + { + //return "Boost.Geometry Projection exception"; + return m_msg.what(); + } + + int code() const { return m_code; } +private : + int m_code; + std::runtime_error m_msg; +}; + + +struct projection_not_named_exception + : projection_exception +{ + projection_not_named_exception() + : projection_exception(-4) + {} +}; + +struct projection_unknown_id_exception + : projection_exception +{ + projection_unknown_id_exception(std::string const& proj_name) + : projection_exception(-5, msg(proj_name)) + {} + +private: + static std::string msg(std::string const& proj_name) + { + return projections::detail::pj_strerrno(-5) + " (" + proj_name + ")"; + } +}; + +struct projection_not_invertible_exception + : projection_exception +{ + projection_not_invertible_exception(std::string const& proj_name) + : projection_exception(-17, msg(proj_name)) + {} + +private: + static std::string msg(std::string const& proj_name) + { + return std::string("projection (") + proj_name + ") is not invertible"; + } +}; + + +}} // namespace boost::geometry +#endif // BOOST_GEOMETRY_PROJECTIONS_EXCEPTION_HPP diff --git a/boost/geometry/srs/projections/factory.hpp b/boost/geometry/srs/projections/factory.hpp new file mode 100644 index 0000000000..b94d8395ac --- /dev/null +++ b/boost/geometry/srs/projections/factory.hpp @@ -0,0 +1,282 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_FACTORY_HPP +#define BOOST_GEOMETRY_PROJECTIONS_FACTORY_HPP + +#include <map> +#include <string> + +#include <boost/shared_ptr.hpp> + +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/proj/aea.hpp> +#include <boost/geometry/srs/projections/proj/aeqd.hpp> +#include <boost/geometry/srs/projections/proj/airy.hpp> +#include <boost/geometry/srs/projections/proj/aitoff.hpp> +#include <boost/geometry/srs/projections/proj/august.hpp> +#include <boost/geometry/srs/projections/proj/bacon.hpp> +#include <boost/geometry/srs/projections/proj/bipc.hpp> +#include <boost/geometry/srs/projections/proj/boggs.hpp> +#include <boost/geometry/srs/projections/proj/bonne.hpp> +#include <boost/geometry/srs/projections/proj/cass.hpp> +#include <boost/geometry/srs/projections/proj/cc.hpp> +#include <boost/geometry/srs/projections/proj/cea.hpp> +#include <boost/geometry/srs/projections/proj/chamb.hpp> +#include <boost/geometry/srs/projections/proj/collg.hpp> +#include <boost/geometry/srs/projections/proj/crast.hpp> +#include <boost/geometry/srs/projections/proj/denoy.hpp> +#include <boost/geometry/srs/projections/proj/eck1.hpp> +#include <boost/geometry/srs/projections/proj/eck2.hpp> +#include <boost/geometry/srs/projections/proj/eck3.hpp> +#include <boost/geometry/srs/projections/proj/eck4.hpp> +#include <boost/geometry/srs/projections/proj/eck5.hpp> +#include <boost/geometry/srs/projections/proj/eqc.hpp> +#include <boost/geometry/srs/projections/proj/eqdc.hpp> +#include <boost/geometry/srs/projections/proj/etmerc.hpp> +#include <boost/geometry/srs/projections/proj/fahey.hpp> +#include <boost/geometry/srs/projections/proj/fouc_s.hpp> +#include <boost/geometry/srs/projections/proj/gall.hpp> +#include <boost/geometry/srs/projections/proj/geocent.hpp> +#include <boost/geometry/srs/projections/proj/geos.hpp> +#include <boost/geometry/srs/projections/proj/gins8.hpp> +#include <boost/geometry/srs/projections/proj/gn_sinu.hpp> +#include <boost/geometry/srs/projections/proj/gnom.hpp> +#include <boost/geometry/srs/projections/proj/goode.hpp> +#include <boost/geometry/srs/projections/proj/gstmerc.hpp> +#include <boost/geometry/srs/projections/proj/hammer.hpp> +#include <boost/geometry/srs/projections/proj/hatano.hpp> +#include <boost/geometry/srs/projections/proj/healpix.hpp> +#include <boost/geometry/srs/projections/proj/krovak.hpp> +#include <boost/geometry/srs/projections/proj/igh.hpp> +#include <boost/geometry/srs/projections/proj/imw_p.hpp> +#include <boost/geometry/srs/projections/proj/isea.hpp> +#include <boost/geometry/srs/projections/proj/laea.hpp> +#include <boost/geometry/srs/projections/proj/labrd.hpp> +#include <boost/geometry/srs/projections/proj/lagrng.hpp> +#include <boost/geometry/srs/projections/proj/larr.hpp> +#include <boost/geometry/srs/projections/proj/lask.hpp> +#include <boost/geometry/srs/projections/proj/latlong.hpp> +#include <boost/geometry/srs/projections/proj/lcc.hpp> +#include <boost/geometry/srs/projections/proj/lcca.hpp> +#include <boost/geometry/srs/projections/proj/loxim.hpp> +#include <boost/geometry/srs/projections/proj/lsat.hpp> +#include <boost/geometry/srs/projections/proj/mbtfpp.hpp> +#include <boost/geometry/srs/projections/proj/mbtfpq.hpp> +#include <boost/geometry/srs/projections/proj/mbt_fps.hpp> +#include <boost/geometry/srs/projections/proj/merc.hpp> +#include <boost/geometry/srs/projections/proj/mill.hpp> +#include <boost/geometry/srs/projections/proj/mod_ster.hpp> +#include <boost/geometry/srs/projections/proj/moll.hpp> +#include <boost/geometry/srs/projections/proj/natearth.hpp> +#include <boost/geometry/srs/projections/proj/nell.hpp> +#include <boost/geometry/srs/projections/proj/nell_h.hpp> +#include <boost/geometry/srs/projections/proj/nocol.hpp> +#include <boost/geometry/srs/projections/proj/nsper.hpp> +#include <boost/geometry/srs/projections/proj/nzmg.hpp> +#include <boost/geometry/srs/projections/proj/ob_tran.hpp> +#include <boost/geometry/srs/projections/proj/ocea.hpp> +#include <boost/geometry/srs/projections/proj/oea.hpp> +#include <boost/geometry/srs/projections/proj/omerc.hpp> +#include <boost/geometry/srs/projections/proj/ortho.hpp> +#include <boost/geometry/srs/projections/proj/qsc.hpp> +#include <boost/geometry/srs/projections/proj/poly.hpp> +#include <boost/geometry/srs/projections/proj/putp2.hpp> +#include <boost/geometry/srs/projections/proj/putp3.hpp> +#include <boost/geometry/srs/projections/proj/putp4p.hpp> +#include <boost/geometry/srs/projections/proj/putp5.hpp> +#include <boost/geometry/srs/projections/proj/putp6.hpp> +#include <boost/geometry/srs/projections/proj/robin.hpp> +#include <boost/geometry/srs/projections/proj/rouss.hpp> +#include <boost/geometry/srs/projections/proj/rpoly.hpp> +#include <boost/geometry/srs/projections/proj/sconics.hpp> +#include <boost/geometry/srs/projections/proj/somerc.hpp> +#include <boost/geometry/srs/projections/proj/stere.hpp> +#include <boost/geometry/srs/projections/proj/sterea.hpp> +#include <boost/geometry/srs/projections/proj/sts.hpp> +#include <boost/geometry/srs/projections/proj/tcc.hpp> +#include <boost/geometry/srs/projections/proj/tcea.hpp> +#include <boost/geometry/srs/projections/proj/tmerc.hpp> +#include <boost/geometry/srs/projections/proj/tpeqd.hpp> +#include <boost/geometry/srs/projections/proj/urm5.hpp> +#include <boost/geometry/srs/projections/proj/urmfps.hpp> +#include <boost/geometry/srs/projections/proj/vandg.hpp> +#include <boost/geometry/srs/projections/proj/vandg2.hpp> +#include <boost/geometry/srs/projections/proj/vandg4.hpp> +#include <boost/geometry/srs/projections/proj/wag2.hpp> +#include <boost/geometry/srs/projections/proj/wag3.hpp> +#include <boost/geometry/srs/projections/proj/wag7.hpp> +#include <boost/geometry/srs/projections/proj/wink1.hpp> +#include <boost/geometry/srs/projections/proj/wink2.hpp> + +namespace boost { namespace geometry { namespace projections +{ + +namespace detail +{ + +template <typename CT, typename Parameters> +class factory : public detail::base_factory<CT, Parameters> +{ +private: + + typedef std::map + < + std::string, + boost::shared_ptr + < + detail::factory_entry + < + CT, + Parameters + > + > + > prj_registry; + prj_registry m_registry; + +public: + + factory() + { + detail::aea_init(*this); + detail::aeqd_init(*this); + detail::airy_init(*this); + detail::aitoff_init(*this); + detail::august_init(*this); + detail::bacon_init(*this); + detail::bipc_init(*this); + detail::boggs_init(*this); + detail::bonne_init(*this); + detail::cass_init(*this); + detail::cc_init(*this); + detail::cea_init(*this); + detail::chamb_init(*this); + detail::collg_init(*this); + detail::crast_init(*this); + detail::denoy_init(*this); + detail::eck1_init(*this); + detail::eck2_init(*this); + detail::eck3_init(*this); + detail::eck4_init(*this); + detail::eck5_init(*this); + detail::eqc_init(*this); + detail::eqdc_init(*this); + detail::etmerc_init(*this); + detail::fahey_init(*this); + detail::fouc_s_init(*this); + detail::gall_init(*this); + detail::geocent_init(*this); + detail::geos_init(*this); + detail::gins8_init(*this); + detail::gn_sinu_init(*this); + detail::gnom_init(*this); + detail::goode_init(*this); + detail::gstmerc_init(*this); + detail::hammer_init(*this); + detail::hatano_init(*this); + detail::healpix_init(*this); + detail::krovak_init(*this); + detail::igh_init(*this); + detail::imw_p_init(*this); + detail::isea_init(*this); + detail::labrd_init(*this); + detail::laea_init(*this); + detail::lagrng_init(*this); + detail::larr_init(*this); + detail::lask_init(*this); + detail::latlong_init(*this); + detail::lcc_init(*this); + detail::lcca_init(*this); + detail::loxim_init(*this); + detail::lsat_init(*this); + detail::mbtfpp_init(*this); + detail::mbtfpq_init(*this); + detail::mbt_fps_init(*this); + detail::merc_init(*this); + detail::mill_init(*this); + detail::mod_ster_init(*this); + detail::moll_init(*this); + detail::natearth_init(*this); + detail::nell_init(*this); + detail::nell_h_init(*this); + detail::nocol_init(*this); + detail::nsper_init(*this); + detail::nzmg_init(*this); + detail::ob_tran_init(*this); + detail::ocea_init(*this); + detail::oea_init(*this); + detail::omerc_init(*this); + detail::ortho_init(*this); + detail::qsc_init(*this); + detail::poly_init(*this); + detail::putp2_init(*this); + detail::putp3_init(*this); + detail::putp4p_init(*this); + detail::putp5_init(*this); + detail::putp6_init(*this); + detail::robin_init(*this); + detail::rouss_init(*this); + detail::rpoly_init(*this); + detail::sconics_init(*this); + detail::somerc_init(*this); + detail::stere_init(*this); + detail::sterea_init(*this); + detail::sts_init(*this); + detail::tcc_init(*this); + detail::tcea_init(*this); + detail::tmerc_init(*this); + detail::tpeqd_init(*this); + detail::urm5_init(*this); + detail::urmfps_init(*this); + detail::vandg_init(*this); + detail::vandg2_init(*this); + detail::vandg4_init(*this); + detail::wag2_init(*this); + detail::wag3_init(*this); + detail::wag7_init(*this); + detail::wink1_init(*this); + detail::wink2_init(*this); + } + + virtual ~factory() {} + + virtual void add_to_factory(std::string const& name, + detail::factory_entry<CT, Parameters>* sub) + { + m_registry[name].reset(sub); + } + + inline detail::base_v<CT, Parameters>* create_new(Parameters const& parameters) const + { + typename prj_registry::const_iterator it = m_registry.find(parameters.name); + if (it != m_registry.end()) + { + return it->second->create_new(parameters); + } + + return 0; + } +}; + +template <typename CT> +inline detail::base_v<CT, projections::parameters<CT> >* + create_new(projections::parameters<CT> const& parameters) +{ + static factory<CT, projections::parameters<CT> > fac; + return fac.create_new(parameters); +} + +} // namespace detail + +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_FACTORY_HPP diff --git a/boost/geometry/srs/projections/iau2000.hpp b/boost/geometry/srs/projections/iau2000.hpp new file mode 100644 index 0000000000..086ac2d708 --- /dev/null +++ b/boost/geometry/srs/projections/iau2000.hpp @@ -0,0 +1,2424 @@ +// Boost.Geometry + +// Copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IAU2000_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IAU2000_HPP + + +#include <boost/geometry/srs/projections/code.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + + inline std::string iau2000_to_string(int code) + { + static const code_element arr[] = { + {19900, "+proj=longlat +a=2439700 +b=2439700 +no_defs"}, + {19901, "+proj=longlat +a=2439700 +b=2439700 +no_defs"}, + //{19910, ""}, + //{19911, ""}, + //{19912, ""}, + //{19913, ""}, + {19914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + //{19968, ""}, + //{19969, ""}, + //{19970, ""}, + //{19971, ""}, + {19972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + {19973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs"}, + //{19974, ""}, + //{19975, ""}, + //{19976, ""}, + //{19977, ""}, + //{19978, ""}, + //{19979, ""}, + {29900, "+proj=longlat +a=6051800 +b=6051800 +no_defs"}, + {29901, "+proj=longlat +a=6051800 +b=6051800 +no_defs"}, + //{29910, ""}, + //{29911, ""}, + //{29912, ""}, + //{29913, ""}, + {29914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + //{29968, ""}, + //{29969, ""}, + //{29970, ""}, + //{29971, ""}, + {29972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + {29973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs"}, + //{29974, ""}, + //{29975, ""}, + //{29976, ""}, + //{29977, ""}, + //{29978, ""}, + //{29979, ""}, + {30100, "+proj=longlat +a=1737400 +b=1737400 +no_defs"}, + {30101, "+proj=longlat +a=1737400 +b=1737400 +no_defs"}, + //{30110, ""}, + //{30111, ""}, + //{30112, ""}, + //{30113, ""}, + {30114, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30115, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30116, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30117, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30118, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30119, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30120, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30121, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30160, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30161, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30162, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30163, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30164, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30165, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30166, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30167, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + //{30168, ""}, + //{30169, ""}, + //{30170, ""}, + //{30171, ""}, + {30172, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + {30173, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs"}, + //{30174, ""}, + //{30175, ""}, + //{30176, ""}, + //{30177, ""}, + //{30178, ""}, + //{30179, ""}, + {39900, "+proj=longlat +a=6378140 +b=6356750 +no_defs"}, + {39901, "+proj=longlat +a=6378140 +b=6356750 +no_defs"}, + //{39910, ""}, + //{39911, ""}, + //{39912, ""}, + //{39913, ""}, + {39914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + //{39968, ""}, + //{39969, ""}, + //{39970, ""}, + //{39971, ""}, + {39972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + {39973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs"}, + //{39974, ""}, + //{39975, ""}, + //{39976, ""}, + //{39977, ""}, + //{39978, ""}, + //{39979, ""}, + {40100, "+proj=longlat +a=13400 +b=9200 +no_defs"}, + {40101, "+proj=longlat +a=13400 +b=9200 +no_defs"}, + //{40110, ""}, + //{40111, ""}, + //{40112, ""}, + //{40113, ""}, + {40114, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40115, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40116, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40117, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40118, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40119, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40120, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40121, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40160, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40161, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40162, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40163, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40164, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40165, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40166, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40167, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + //{40168, ""}, + //{40169, ""}, + //{40170, ""}, + //{40171, ""}, + {40172, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + {40173, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs"}, + //{40174, ""}, + //{40175, ""}, + //{40176, ""}, + //{40177, ""}, + //{40178, ""}, + //{40179, ""}, + {40200, "+proj=longlat +a=7500 +b=5200 +no_defs"}, + {40201, "+proj=longlat +a=7500 +b=5200 +no_defs"}, + //{40210, ""}, + //{40211, ""}, + //{40212, ""}, + //{40213, ""}, + {40214, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40215, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40216, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40217, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40218, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40219, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40220, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40221, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40260, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40261, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40262, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40263, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40264, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40265, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40266, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40267, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + //{40268, ""}, + //{40269, ""}, + //{40270, ""}, + //{40271, ""}, + {40272, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + {40273, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs"}, + //{40274, ""}, + //{40275, ""}, + //{40276, ""}, + //{40277, ""}, + //{40278, ""}, + //{40279, ""}, + {49900, "+proj=longlat +a=3396190 +b=3376200 +no_defs"}, + {49901, "+proj=longlat +a=3396190 +b=3376200 +no_defs"}, + //{49910, ""}, + //{49911, ""}, + //{49912, ""}, + //{49913, ""}, + {49914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + //{49968, ""}, + //{49969, ""}, + //{49970, ""}, + //{49971, ""}, + {49972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + {49973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs"}, + //{49974, ""}, + //{49975, ""}, + //{49976, ""}, + //{49977, ""}, + //{49978, ""}, + //{49979, ""}, + {50100, "+proj=longlat +a=1829400 +b=1815700 +no_defs"}, + {50101, "+proj=longlat +a=1829400 +b=1815700 +no_defs"}, + //{50110, ""}, + //{50111, ""}, + //{50112, ""}, + //{50113, ""}, + {50114, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50115, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50116, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50117, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50118, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50119, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50120, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50121, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50160, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50161, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50162, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50163, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50164, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50165, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50166, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50167, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + //{50168, ""}, + //{50169, ""}, + //{50170, ""}, + //{50171, ""}, + {50172, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + {50173, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs"}, + //{50174, ""}, + //{50175, ""}, + //{50176, ""}, + //{50177, ""}, + //{50178, ""}, + //{50179, ""}, + {50200, "+proj=longlat +a=1564130 +b=1560930 +no_defs"}, + {50201, "+proj=longlat +a=1564130 +b=1560930 +no_defs"}, + //{50210, ""}, + //{50211, ""}, + //{50212, ""}, + //{50213, ""}, + {50214, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50215, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50216, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50217, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50218, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50219, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50220, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50221, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50260, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50261, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50262, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50263, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50264, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50265, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50266, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50267, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + //{50268, ""}, + //{50269, ""}, + //{50270, ""}, + //{50271, ""}, + {50272, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + {50273, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs"}, + //{50274, ""}, + //{50275, ""}, + //{50276, ""}, + //{50277, ""}, + //{50278, ""}, + //{50279, ""}, + {50300, "+proj=longlat +a=2632400 +b=2632350 +no_defs"}, + {50301, "+proj=longlat +a=2632400 +b=2632350 +no_defs"}, + //{50310, ""}, + //{50311, ""}, + //{50312, ""}, + //{50313, ""}, + {50314, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50315, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50316, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50317, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50318, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50319, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50320, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50321, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50360, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50361, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50362, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50363, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50364, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50365, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50366, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50367, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + //{50368, ""}, + //{50369, ""}, + //{50370, ""}, + //{50371, ""}, + {50372, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + {50373, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs"}, + //{50374, ""}, + //{50375, ""}, + //{50376, ""}, + //{50377, ""}, + //{50378, ""}, + //{50379, ""}, + {50400, "+proj=longlat +a=2409400 +b=2409300 +no_defs"}, + {50401, "+proj=longlat +a=2409400 +b=2409300 +no_defs"}, + //{50410, ""}, + //{50411, ""}, + //{50412, ""}, + //{50413, ""}, + {50414, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50415, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50416, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50417, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50418, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50419, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50420, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50421, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50460, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50461, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50462, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50463, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50464, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50465, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50466, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50467, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + //{50468, ""}, + //{50469, ""}, + //{50470, ""}, + //{50471, ""}, + {50472, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + {50473, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs"}, + //{50474, ""}, + //{50475, ""}, + //{50476, ""}, + //{50477, ""}, + //{50478, ""}, + //{50479, ""}, + {50500, "+proj=longlat +a=125000 +b=64000 +no_defs"}, + {50501, "+proj=longlat +a=125000 +b=64000 +no_defs"}, + //{50510, ""}, + //{50511, ""}, + //{50512, ""}, + //{50513, ""}, + {50514, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50515, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50516, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50517, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50518, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50519, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50520, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50521, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50560, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50561, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50562, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50563, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50564, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50565, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50566, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50567, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + //{50568, ""}, + //{50569, ""}, + //{50570, ""}, + //{50571, ""}, + {50572, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + {50573, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs"}, + //{50574, ""}, + //{50575, ""}, + //{50576, ""}, + //{50577, ""}, + //{50578, ""}, + //{50579, ""}, + {50600, "+proj=longlat +a=85000 +b=85000 +no_defs"}, + {50601, "+proj=longlat +a=85000 +b=85000 +no_defs"}, + //{50610, ""}, + //{50611, ""}, + //{50612, ""}, + //{50613, ""}, + {50614, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50615, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50616, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50617, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50618, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50619, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50620, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50621, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50660, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50661, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50662, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50663, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50664, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50665, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50666, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50667, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + //{50668, ""}, + //{50669, ""}, + //{50670, ""}, + //{50671, ""}, + {50672, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + {50673, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs"}, + //{50674, ""}, + //{50675, ""}, + //{50676, ""}, + //{50677, ""}, + //{50678, ""}, + //{50679, ""}, + {50700, "+proj=longlat +a=40000 +b=40000 +no_defs"}, + {50701, "+proj=longlat +a=40000 +b=40000 +no_defs"}, + //{50710, ""}, + //{50711, ""}, + //{50712, ""}, + //{50713, ""}, + {50714, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50715, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50716, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50717, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50718, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50719, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50720, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50721, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50760, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50761, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50762, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50763, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50764, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50765, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50766, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50767, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + //{50768, ""}, + //{50769, ""}, + //{50770, ""}, + //{50771, ""}, + {50772, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {50773, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + //{50774, ""}, + //{50775, ""}, + //{50776, ""}, + //{50777, ""}, + //{50778, ""}, + //{50779, ""}, + {50800, "+proj=longlat +a=18000 +b=18000 +no_defs"}, + {50801, "+proj=longlat +a=18000 +b=18000 +no_defs"}, + //{50810, ""}, + //{50811, ""}, + //{50812, ""}, + //{50813, ""}, + {50814, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50815, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50816, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50817, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50818, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50819, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50820, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50821, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50860, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50861, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50862, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50863, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50864, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50865, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50866, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50867, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + //{50868, ""}, + //{50869, ""}, + //{50870, ""}, + //{50871, ""}, + {50872, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + {50873, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs"}, + //{50874, ""}, + //{50875, ""}, + //{50876, ""}, + //{50877, ""}, + //{50878, ""}, + //{50879, ""}, + {50900, "+proj=longlat +a=14000 +b=14000 +no_defs"}, + {50901, "+proj=longlat +a=14000 +b=14000 +no_defs"}, + //{50910, ""}, + //{50911, ""}, + //{50912, ""}, + //{50913, ""}, + {50914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + //{50968, ""}, + //{50969, ""}, + //{50970, ""}, + //{50971, ""}, + {50972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + {50973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs"}, + //{50974, ""}, + //{50975, ""}, + //{50976, ""}, + //{50977, ""}, + //{50978, ""}, + //{50979, ""}, + {51000, "+proj=longlat +a=12000 +b=12000 +no_defs"}, + {51001, "+proj=longlat +a=12000 +b=12000 +no_defs"}, + //{51010, ""}, + //{51011, ""}, + //{51012, ""}, + //{51013, ""}, + {51014, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51015, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51016, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51017, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51018, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51019, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51020, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51021, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51060, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51061, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51062, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51063, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51064, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51065, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51066, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51067, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + //{51068, ""}, + //{51069, ""}, + //{51070, ""}, + //{51071, ""}, + {51072, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + {51073, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs"}, + //{51074, ""}, + //{51075, ""}, + //{51076, ""}, + //{51077, ""}, + //{51078, ""}, + //{51079, ""}, + {51100, "+proj=longlat +a=15000 +b=15000 +no_defs"}, + {51101, "+proj=longlat +a=15000 +b=15000 +no_defs"}, + //{51110, ""}, + //{51111, ""}, + //{51112, ""}, + //{51113, ""}, + {51114, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51115, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51116, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51117, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51118, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51119, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51120, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51121, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51160, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51161, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51162, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51163, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51164, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51165, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51166, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51167, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + //{51168, ""}, + //{51169, ""}, + //{51170, ""}, + //{51171, ""}, + {51172, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {51173, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + //{51174, ""}, + //{51175, ""}, + //{51176, ""}, + //{51177, ""}, + //{51178, ""}, + //{51179, ""}, + {51200, "+proj=longlat +a=10000 +b=10000 +no_defs"}, + {51201, "+proj=longlat +a=10000 +b=10000 +no_defs"}, + //{51210, ""}, + //{51211, ""}, + //{51212, ""}, + //{51213, ""}, + {51214, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51215, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51216, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51217, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51218, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51219, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51220, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51221, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51260, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51261, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51262, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51263, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51264, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51265, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51266, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51267, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + //{51268, ""}, + //{51269, ""}, + //{51270, ""}, + //{51271, ""}, + {51272, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {51273, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + //{51274, ""}, + //{51275, ""}, + //{51276, ""}, + //{51277, ""}, + //{51278, ""}, + //{51279, ""}, + {51300, "+proj=longlat +a=5000 +b=5000 +no_defs"}, + {51301, "+proj=longlat +a=5000 +b=5000 +no_defs"}, + //{51310, ""}, + //{51311, ""}, + //{51312, ""}, + //{51313, ""}, + {51314, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51315, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51316, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51317, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51318, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51319, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51320, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51321, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51360, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51361, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51362, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51363, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51364, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51365, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51366, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51367, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + //{51368, ""}, + //{51369, ""}, + //{51370, ""}, + //{51371, ""}, + {51372, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + {51373, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs"}, + //{51374, ""}, + //{51375, ""}, + //{51376, ""}, + //{51377, ""}, + //{51378, ""}, + //{51379, ""}, + {51400, "+proj=longlat +a=58000 +b=42000 +no_defs"}, + {51401, "+proj=longlat +a=58000 +b=42000 +no_defs"}, + //{51410, ""}, + //{51411, ""}, + //{51412, ""}, + //{51413, ""}, + {51414, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51415, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51416, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51417, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51418, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51419, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51420, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51421, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51460, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51461, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51462, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51463, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51464, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51465, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51466, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51467, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + //{51468, ""}, + //{51469, ""}, + //{51470, ""}, + //{51471, ""}, + {51472, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + {51473, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs"}, + //{51474, ""}, + //{51475, ""}, + //{51476, ""}, + //{51477, ""}, + //{51478, ""}, + //{51479, ""}, + {51500, "+proj=longlat +a=10000 +b=7000 +no_defs"}, + {51501, "+proj=longlat +a=10000 +b=7000 +no_defs"}, + //{51510, ""}, + //{51511, ""}, + //{51512, ""}, + //{51513, ""}, + {51514, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51515, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51516, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51517, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51518, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51519, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51520, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51521, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51560, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51561, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51562, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51563, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51564, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51565, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51566, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51567, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + //{51568, ""}, + //{51569, ""}, + //{51570, ""}, + //{51571, ""}, + {51572, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + {51573, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs"}, + //{51574, ""}, + //{51575, ""}, + //{51576, ""}, + //{51577, ""}, + //{51578, ""}, + //{51579, ""}, + {51600, "+proj=longlat +a=21500 +b=21500 +no_defs"}, + {51601, "+proj=longlat +a=21500 +b=21500 +no_defs"}, + //{51610, ""}, + //{51611, ""}, + //{51612, ""}, + //{51613, ""}, + {51614, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51615, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51616, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51617, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51618, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51619, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51620, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51621, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51660, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51661, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51662, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51663, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51664, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51665, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51666, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51667, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + //{51668, ""}, + //{51669, ""}, + //{51670, ""}, + //{51671, ""}, + {51672, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + {51673, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs"}, + //{51674, ""}, + //{51675, ""}, + //{51676, ""}, + //{51677, ""}, + //{51678, ""}, + //{51679, ""}, + {59900, "+proj=longlat +a=71492000 +b=66854000 +no_defs"}, + {59901, "+proj=longlat +a=71492000 +b=66854000 +no_defs"}, + //{59910, ""}, + //{59911, ""}, + //{59912, ""}, + //{59913, ""}, + {59914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + //{59968, ""}, + //{59969, ""}, + //{59970, ""}, + //{59971, ""}, + {59972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + {59973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs"}, + //{59974, ""}, + //{59975, ""}, + //{59976, ""}, + //{59977, ""}, + //{59978, ""}, + //{59979, ""}, + {60100, "+proj=longlat +a=209100 +b=191400 +no_defs"}, + {60101, "+proj=longlat +a=209100 +b=191400 +no_defs"}, + //{60110, ""}, + //{60111, ""}, + //{60112, ""}, + //{60113, ""}, + {60114, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60115, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60116, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60117, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60118, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60119, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60120, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60121, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60160, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60161, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60162, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60163, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60164, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60165, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60166, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60167, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + //{60168, ""}, + //{60169, ""}, + //{60170, ""}, + //{60171, ""}, + {60172, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + {60173, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs"}, + //{60174, ""}, + //{60175, ""}, + //{60176, ""}, + //{60177, ""}, + //{60178, ""}, + //{60179, ""}, + {60200, "+proj=longlat +a=256300 +b=244600 +no_defs"}, + {60201, "+proj=longlat +a=256300 +b=244600 +no_defs"}, + //{60210, ""}, + //{60211, ""}, + //{60212, ""}, + //{60213, ""}, + {60214, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60215, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60216, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60217, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60218, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60219, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60220, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60221, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60260, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60261, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60262, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60263, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60264, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60265, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60266, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60267, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + //{60268, ""}, + //{60269, ""}, + //{60270, ""}, + //{60271, ""}, + {60272, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + {60273, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs"}, + //{60274, ""}, + //{60275, ""}, + //{60276, ""}, + //{60277, ""}, + //{60278, ""}, + //{60279, ""}, + {60300, "+proj=longlat +a=535600 +b=525800 +no_defs"}, + {60301, "+proj=longlat +a=535600 +b=525800 +no_defs"}, + //{60310, ""}, + //{60311, ""}, + //{60312, ""}, + //{60313, ""}, + {60314, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60315, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60316, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60317, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60318, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60319, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60320, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60321, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60360, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60361, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60362, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60363, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60364, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60365, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60366, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60367, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + //{60368, ""}, + //{60369, ""}, + //{60370, ""}, + //{60371, ""}, + {60372, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + {60373, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs"}, + //{60374, ""}, + //{60375, ""}, + //{60376, ""}, + //{60377, ""}, + //{60378, ""}, + //{60379, ""}, + {60400, "+proj=longlat +a=560000 +b=560000 +no_defs"}, + {60401, "+proj=longlat +a=560000 +b=560000 +no_defs"}, + //{60410, ""}, + //{60411, ""}, + //{60412, ""}, + //{60413, ""}, + {60414, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60415, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60416, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60417, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60418, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60419, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60420, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60421, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60460, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60461, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60462, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60463, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60464, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60465, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60466, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60467, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + //{60468, ""}, + //{60469, ""}, + //{60470, ""}, + //{60471, ""}, + {60472, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + {60473, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs"}, + //{60474, ""}, + //{60475, ""}, + //{60476, ""}, + //{60477, ""}, + //{60478, ""}, + //{60479, ""}, + {60500, "+proj=longlat +a=764000 +b=764000 +no_defs"}, + {60501, "+proj=longlat +a=764000 +b=764000 +no_defs"}, + //{60510, ""}, + //{60511, ""}, + //{60512, ""}, + //{60513, ""}, + {60514, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60515, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60516, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60517, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60518, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60519, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60520, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60521, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60560, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60561, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60562, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60563, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60564, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60565, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60566, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60567, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + //{60568, ""}, + //{60569, ""}, + //{60570, ""}, + //{60571, ""}, + {60572, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + {60573, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs"}, + //{60574, ""}, + //{60575, ""}, + //{60576, ""}, + //{60577, ""}, + //{60578, ""}, + //{60579, ""}, + {60600, "+proj=longlat +a=2575000 +b=2575000 +no_defs"}, + {60601, "+proj=longlat +a=2575000 +b=2575000 +no_defs"}, + //{60610, ""}, + //{60611, ""}, + //{60612, ""}, + //{60613, ""}, + {60614, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60615, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60616, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60617, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60618, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60619, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60620, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60621, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60660, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60661, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60662, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60663, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60664, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60665, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60666, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60667, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + //{60668, ""}, + //{60669, ""}, + //{60670, ""}, + //{60671, ""}, + {60672, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + {60673, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs"}, + //{60674, ""}, + //{60675, ""}, + //{60676, ""}, + //{60677, ""}, + //{60678, ""}, + //{60679, ""}, + {60700, "+proj=longlat +a=164000 +b=107000 +no_defs"}, + {60701, "+proj=longlat +a=164000 +b=107000 +no_defs"}, + //{60710, ""}, + //{60711, ""}, + //{60712, ""}, + //{60713, ""}, + {60714, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60715, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60716, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60717, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60718, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60719, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60720, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60721, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60760, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60761, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60762, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60763, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60764, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60765, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60766, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60767, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + //{60768, ""}, + //{60769, ""}, + //{60770, ""}, + //{60771, ""}, + {60772, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + {60773, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs"}, + //{60774, ""}, + //{60775, ""}, + //{60776, ""}, + //{60777, ""}, + //{60778, ""}, + //{60779, ""}, + {60800, "+proj=longlat +a=718000 +b=718000 +no_defs"}, + {60801, "+proj=longlat +a=718000 +b=718000 +no_defs"}, + //{60810, ""}, + //{60811, ""}, + //{60812, ""}, + //{60813, ""}, + {60814, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60815, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60816, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60817, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60818, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60819, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60820, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60821, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60860, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60861, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60862, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60863, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60864, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60865, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60866, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60867, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + //{60868, ""}, + //{60869, ""}, + //{60870, ""}, + //{60871, ""}, + {60872, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + {60873, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs"}, + //{60874, ""}, + //{60875, ""}, + //{60876, ""}, + //{60877, ""}, + //{60878, ""}, + //{60879, ""}, + {60900, "+proj=longlat +a=115000 +b=105000 +no_defs"}, + {60901, "+proj=longlat +a=115000 +b=105000 +no_defs"}, + //{60910, ""}, + //{60911, ""}, + //{60912, ""}, + //{60913, ""}, + {60914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + //{60968, ""}, + //{60969, ""}, + //{60970, ""}, + //{60971, ""}, + {60972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + {60973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs"}, + //{60974, ""}, + //{60975, ""}, + //{60976, ""}, + //{60977, ""}, + //{60978, ""}, + //{60979, ""}, + {61000, "+proj=longlat +a=97000 +b=77000 +no_defs"}, + {61001, "+proj=longlat +a=97000 +b=77000 +no_defs"}, + //{61010, ""}, + //{61011, ""}, + //{61012, ""}, + //{61013, ""}, + {61014, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61015, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61016, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61017, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61018, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61019, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61020, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61021, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61060, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61061, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61062, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61063, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61064, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61065, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61066, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61067, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + //{61068, ""}, + //{61069, ""}, + //{61070, ""}, + //{61071, ""}, + {61072, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + {61073, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs"}, + //{61074, ""}, + //{61075, ""}, + //{61076, ""}, + //{61077, ""}, + //{61078, ""}, + //{61079, ""}, + {61100, "+proj=longlat +a=69000 +b=55000 +no_defs"}, + {61101, "+proj=longlat +a=69000 +b=55000 +no_defs"}, + //{61110, ""}, + //{61111, ""}, + //{61112, ""}, + //{61113, ""}, + {61114, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61115, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61116, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61117, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61118, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61119, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61120, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61121, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61160, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61161, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61162, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61163, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61164, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61165, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61166, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61167, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + //{61168, ""}, + //{61169, ""}, + //{61170, ""}, + //{61171, ""}, + {61172, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + {61173, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs"}, + //{61174, ""}, + //{61175, ""}, + //{61176, ""}, + //{61177, ""}, + //{61178, ""}, + //{61179, ""}, + {61200, "+proj=longlat +a=16000 +b=16000 +no_defs"}, + {61201, "+proj=longlat +a=16000 +b=16000 +no_defs"}, + //{61210, ""}, + //{61211, ""}, + //{61212, ""}, + //{61213, ""}, + {61214, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61215, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61216, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61217, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61218, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61219, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61220, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61221, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61260, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61261, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61262, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61263, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61264, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61265, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61266, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61267, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + //{61268, ""}, + //{61269, ""}, + //{61270, ""}, + //{61271, ""}, + {61272, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + {61273, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs"}, + //{61274, ""}, + //{61275, ""}, + //{61276, ""}, + //{61277, ""}, + //{61278, ""}, + //{61279, ""}, + {61300, "+proj=longlat +a=15000 +b=7500 +no_defs"}, + {61301, "+proj=longlat +a=15000 +b=7500 +no_defs"}, + //{61310, ""}, + //{61311, ""}, + //{61312, ""}, + //{61313, ""}, + {61314, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61315, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61316, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61317, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61318, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61319, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61320, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61321, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61360, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61361, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61362, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61363, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61364, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61365, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61366, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61367, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + //{61368, ""}, + //{61369, ""}, + //{61370, ""}, + //{61371, ""}, + {61372, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + {61373, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs"}, + //{61374, ""}, + //{61375, ""}, + //{61376, ""}, + //{61377, ""}, + //{61378, ""}, + //{61379, ""}, + {61400, "+proj=longlat +a=15000 +b=8000 +no_defs"}, + {61401, "+proj=longlat +a=15000 +b=8000 +no_defs"}, + //{61410, ""}, + //{61411, ""}, + //{61412, ""}, + //{61413, ""}, + {61414, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61415, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61416, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61417, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61418, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61419, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61420, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61421, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61460, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61461, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61462, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61463, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61464, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61465, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61466, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61467, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + //{61468, ""}, + //{61469, ""}, + //{61470, ""}, + //{61471, ""}, + {61472, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + {61473, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs"}, + //{61474, ""}, + //{61475, ""}, + //{61476, ""}, + //{61477, ""}, + //{61478, ""}, + //{61479, ""}, + {61500, "+proj=longlat +a=18500 +b=13500 +no_defs"}, + {61501, "+proj=longlat +a=18500 +b=13500 +no_defs"}, + //{61510, ""}, + //{61511, ""}, + //{61512, ""}, + //{61513, ""}, + {61514, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61515, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61516, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61517, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61518, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61519, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61520, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61521, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61560, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61561, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61562, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61563, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61564, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61565, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61566, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61567, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + //{61568, ""}, + //{61569, ""}, + //{61570, ""}, + //{61571, ""}, + {61572, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + {61573, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs"}, + //{61574, ""}, + //{61575, ""}, + //{61576, ""}, + //{61577, ""}, + //{61578, ""}, + //{61579, ""}, + {61600, "+proj=longlat +a=74000 +b=34000 +no_defs"}, + {61601, "+proj=longlat +a=74000 +b=34000 +no_defs"}, + //{61610, ""}, + //{61611, ""}, + //{61612, ""}, + //{61613, ""}, + {61614, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61615, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61616, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61617, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61618, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61619, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61620, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61621, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61660, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61661, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61662, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61663, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61664, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61665, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61666, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61667, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + //{61668, ""}, + //{61669, ""}, + //{61670, ""}, + //{61671, ""}, + {61672, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + {61673, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs"}, + //{61674, ""}, + //{61675, ""}, + //{61676, ""}, + //{61677, ""}, + //{61678, ""}, + //{61679, ""}, + {61700, "+proj=longlat +a=55000 +b=31000 +no_defs"}, + {61701, "+proj=longlat +a=55000 +b=31000 +no_defs"}, + //{61710, ""}, + //{61711, ""}, + //{61712, ""}, + //{61713, ""}, + {61714, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61715, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61716, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61717, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61718, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61719, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61720, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61721, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61760, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61761, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61762, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61763, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61764, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61765, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61766, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61767, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + //{61768, ""}, + //{61769, ""}, + //{61770, ""}, + //{61771, ""}, + {61772, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + {61773, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs"}, + //{61774, ""}, + //{61775, ""}, + //{61776, ""}, + //{61777, ""}, + //{61778, ""}, + //{61779, ""}, + {61800, "+proj=longlat +a=10000 +b=10000 +no_defs"}, + {61801, "+proj=longlat +a=10000 +b=10000 +no_defs"}, + //{61810, ""}, + //{61811, ""}, + //{61812, ""}, + //{61813, ""}, + {61814, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61815, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61816, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61817, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61818, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61819, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61820, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61821, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61860, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61861, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61862, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61863, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61864, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61865, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61866, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61867, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + //{61868, ""}, + //{61869, ""}, + //{61870, ""}, + //{61871, ""}, + {61872, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + {61873, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs"}, + //{61874, ""}, + //{61875, ""}, + //{61876, ""}, + //{61877, ""}, + //{61878, ""}, + //{61879, ""}, + {69900, "+proj=longlat +a=60268000 +b=54364000 +no_defs"}, + {69901, "+proj=longlat +a=60268000 +b=54364000 +no_defs"}, + //{69910, ""}, + //{69911, ""}, + //{69912, ""}, + //{69913, ""}, + {69914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + //{69968, ""}, + //{69969, ""}, + //{69970, ""}, + //{69971, ""}, + {69972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + {69973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs"}, + //{69974, ""}, + //{69975, ""}, + //{69976, ""}, + //{69977, ""}, + //{69978, ""}, + //{69979, ""}, + {70100, "+proj=longlat +a=581100 +b=577700 +no_defs"}, + {70101, "+proj=longlat +a=581100 +b=577700 +no_defs"}, + //{70110, ""}, + //{70111, ""}, + //{70112, ""}, + //{70113, ""}, + {70114, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70115, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70116, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70117, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70118, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70119, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70120, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70121, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70160, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70161, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70162, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70163, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70164, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70165, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70166, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70167, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + //{70168, ""}, + //{70169, ""}, + //{70170, ""}, + //{70171, ""}, + {70172, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + {70173, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs"}, + //{70174, ""}, + //{70175, ""}, + //{70176, ""}, + //{70177, ""}, + //{70178, ""}, + //{70179, ""}, + {70200, "+proj=longlat +a=584700 +b=584700 +no_defs"}, + {70201, "+proj=longlat +a=584700 +b=584700 +no_defs"}, + //{70210, ""}, + //{70211, ""}, + //{70212, ""}, + //{70213, ""}, + {70214, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70215, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70216, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70217, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70218, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70219, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70220, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70221, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70260, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70261, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70262, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70263, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70264, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70265, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70266, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70267, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + //{70268, ""}, + //{70269, ""}, + //{70270, ""}, + //{70271, ""}, + {70272, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + {70273, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs"}, + //{70274, ""}, + //{70275, ""}, + //{70276, ""}, + //{70277, ""}, + //{70278, ""}, + //{70279, ""}, + {70300, "+proj=longlat +a=788900 +b=788900 +no_defs"}, + {70301, "+proj=longlat +a=788900 +b=788900 +no_defs"}, + //{70310, ""}, + //{70311, ""}, + //{70312, ""}, + //{70313, ""}, + {70314, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70315, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70316, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70317, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70318, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70319, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70320, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70321, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70360, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70361, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70362, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70363, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70364, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70365, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70366, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70367, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + //{70368, ""}, + //{70369, ""}, + //{70370, ""}, + //{70371, ""}, + {70372, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + {70373, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs"}, + //{70374, ""}, + //{70375, ""}, + //{70376, ""}, + //{70377, ""}, + //{70378, ""}, + //{70379, ""}, + {70400, "+proj=longlat +a=761400 +b=761400 +no_defs"}, + {70401, "+proj=longlat +a=761400 +b=761400 +no_defs"}, + //{70410, ""}, + //{70411, ""}, + //{70412, ""}, + //{70413, ""}, + {70414, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70415, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70416, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70417, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70418, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70419, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70420, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70421, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70460, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70461, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70462, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70463, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70464, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70465, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70466, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70467, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + //{70468, ""}, + //{70469, ""}, + //{70470, ""}, + //{70471, ""}, + {70472, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + {70473, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs"}, + //{70474, ""}, + //{70475, ""}, + //{70476, ""}, + //{70477, ""}, + //{70478, ""}, + //{70479, ""}, + {70500, "+proj=longlat +a=240400 +b=232900 +no_defs"}, + {70501, "+proj=longlat +a=240400 +b=232900 +no_defs"}, + //{70510, ""}, + //{70511, ""}, + //{70512, ""}, + //{70513, ""}, + {70514, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70515, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70516, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70517, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70518, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70519, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70520, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70521, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70560, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70561, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70562, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70563, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70564, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70565, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70566, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70567, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + //{70568, ""}, + //{70569, ""}, + //{70570, ""}, + //{70571, ""}, + {70572, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + {70573, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs"}, + //{70574, ""}, + //{70575, ""}, + //{70576, ""}, + //{70577, ""}, + //{70578, ""}, + //{70579, ""}, + {70600, "+proj=longlat +a=13000 +b=13000 +no_defs"}, + {70601, "+proj=longlat +a=13000 +b=13000 +no_defs"}, + //{70610, ""}, + //{70611, ""}, + //{70612, ""}, + //{70613, ""}, + {70614, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70615, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70616, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70617, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70618, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70619, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70620, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70621, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70660, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70661, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70662, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70663, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70664, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70665, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70666, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70667, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + //{70668, ""}, + //{70669, ""}, + //{70670, ""}, + //{70671, ""}, + {70672, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + {70673, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs"}, + //{70674, ""}, + //{70675, ""}, + //{70676, ""}, + //{70677, ""}, + //{70678, ""}, + //{70679, ""}, + {70700, "+proj=longlat +a=15000 +b=15000 +no_defs"}, + {70701, "+proj=longlat +a=15000 +b=15000 +no_defs"}, + //{70710, ""}, + //{70711, ""}, + //{70712, ""}, + //{70713, ""}, + {70714, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70715, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70716, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70717, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70718, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70719, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70720, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70721, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70760, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70761, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70762, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70763, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70764, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70765, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70766, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70767, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + //{70768, ""}, + //{70769, ""}, + //{70770, ""}, + //{70771, ""}, + {70772, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + {70773, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs"}, + //{70774, ""}, + //{70775, ""}, + //{70776, ""}, + //{70777, ""}, + //{70778, ""}, + //{70779, ""}, + {70800, "+proj=longlat +a=21000 +b=21000 +no_defs"}, + {70801, "+proj=longlat +a=21000 +b=21000 +no_defs"}, + //{70810, ""}, + //{70811, ""}, + //{70812, ""}, + //{70813, ""}, + {70814, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70815, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70816, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70817, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70818, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70819, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70820, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70821, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70860, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70861, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70862, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70863, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70864, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70865, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70866, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70867, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + //{70868, ""}, + //{70869, ""}, + //{70870, ""}, + //{70871, ""}, + {70872, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + {70873, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs"}, + //{70874, ""}, + //{70875, ""}, + //{70876, ""}, + //{70877, ""}, + //{70878, ""}, + //{70879, ""}, + {70900, "+proj=longlat +a=31000 +b=31000 +no_defs"}, + {70901, "+proj=longlat +a=31000 +b=31000 +no_defs"}, + //{70910, ""}, + //{70911, ""}, + //{70912, ""}, + //{70913, ""}, + {70914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + //{70968, ""}, + //{70969, ""}, + //{70970, ""}, + //{70971, ""}, + {70972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + {70973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs"}, + //{70974, ""}, + //{70975, ""}, + //{70976, ""}, + //{70977, ""}, + //{70978, ""}, + //{70979, ""}, + {71000, "+proj=longlat +a=27000 +b=27000 +no_defs"}, + {71001, "+proj=longlat +a=27000 +b=27000 +no_defs"}, + //{71010, ""}, + //{71011, ""}, + //{71012, ""}, + //{71013, ""}, + {71014, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71015, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71016, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71017, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71018, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71019, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71020, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71021, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71060, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71061, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71062, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71063, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71064, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71065, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71066, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71067, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + //{71068, ""}, + //{71069, ""}, + //{71070, ""}, + //{71071, ""}, + {71072, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71073, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + //{71074, ""}, + //{71075, ""}, + //{71076, ""}, + //{71077, ""}, + //{71078, ""}, + //{71079, ""}, + {71100, "+proj=longlat +a=42000 +b=42000 +no_defs"}, + {71101, "+proj=longlat +a=42000 +b=42000 +no_defs"}, + //{71110, ""}, + //{71111, ""}, + //{71112, ""}, + //{71113, ""}, + {71114, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71115, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71116, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71117, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71118, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71119, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71120, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71121, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71160, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71161, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71162, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71163, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71164, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71165, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71166, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71167, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + //{71168, ""}, + //{71169, ""}, + //{71170, ""}, + //{71171, ""}, + {71172, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + {71173, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs"}, + //{71174, ""}, + //{71175, ""}, + //{71176, ""}, + //{71177, ""}, + //{71178, ""}, + //{71179, ""}, + {71200, "+proj=longlat +a=54000 +b=54000 +no_defs"}, + {71201, "+proj=longlat +a=54000 +b=54000 +no_defs"}, + //{71210, ""}, + //{71211, ""}, + //{71212, ""}, + //{71213, ""}, + {71214, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71215, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71216, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71217, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71218, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71219, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71220, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71221, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71260, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71261, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71262, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71263, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71264, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71265, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71266, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71267, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + //{71268, ""}, + //{71269, ""}, + //{71270, ""}, + //{71271, ""}, + {71272, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + {71273, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs"}, + //{71274, ""}, + //{71275, ""}, + //{71276, ""}, + //{71277, ""}, + //{71278, ""}, + //{71279, ""}, + {71300, "+proj=longlat +a=27000 +b=27000 +no_defs"}, + {71301, "+proj=longlat +a=27000 +b=27000 +no_defs"}, + //{71310, ""}, + //{71311, ""}, + //{71312, ""}, + //{71313, ""}, + {71314, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71315, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71316, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71317, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71318, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71319, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71320, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71321, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71360, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71361, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71362, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71363, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71364, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71365, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71366, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71367, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + //{71368, ""}, + //{71369, ""}, + //{71370, ""}, + //{71371, ""}, + {71372, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + {71373, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs"}, + //{71374, ""}, + //{71375, ""}, + //{71376, ""}, + //{71377, ""}, + //{71378, ""}, + //{71379, ""}, + {71400, "+proj=longlat +a=33000 +b=33000 +no_defs"}, + {71401, "+proj=longlat +a=33000 +b=33000 +no_defs"}, + //{71410, ""}, + //{71411, ""}, + //{71412, ""}, + //{71413, ""}, + {71414, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71415, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71416, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71417, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71418, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71419, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71420, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71421, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71460, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71461, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71462, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71463, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71464, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71465, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71466, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71467, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + //{71468, ""}, + //{71469, ""}, + //{71470, ""}, + //{71471, ""}, + {71472, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + {71473, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs"}, + //{71474, ""}, + //{71475, ""}, + //{71476, ""}, + //{71477, ""}, + //{71478, ""}, + //{71479, ""}, + {71500, "+proj=longlat +a=77000 +b=77000 +no_defs"}, + {71501, "+proj=longlat +a=77000 +b=77000 +no_defs"}, + //{71510, ""}, + //{71511, ""}, + //{71512, ""}, + //{71513, ""}, + {71514, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71515, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71516, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71517, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71518, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71519, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71520, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71521, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71560, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71561, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71562, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71563, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71564, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71565, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71566, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71567, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + //{71568, ""}, + //{71569, ""}, + //{71570, ""}, + //{71571, ""}, + {71572, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + {71573, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs"}, + //{71574, ""}, + //{71575, ""}, + //{71576, ""}, + //{71577, ""}, + //{71578, ""}, + //{71579, ""}, + {79900, "+proj=longlat +a=25559000 +b=24973000 +no_defs"}, + {79901, "+proj=longlat +a=25559000 +b=24973000 +no_defs"}, + //{79910, ""}, + //{79911, ""}, + //{79912, ""}, + //{79913, ""}, + {79914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + //{79968, ""}, + //{79969, ""}, + //{79970, ""}, + //{79971, ""}, + {79972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + {79973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs"}, + //{79974, ""}, + //{79975, ""}, + //{79976, ""}, + //{79977, ""}, + //{79978, ""}, + //{79979, ""}, + {80100, "+proj=longlat +a=1352600 +b=1352600 +no_defs"}, + {80101, "+proj=longlat +a=1352600 +b=1352600 +no_defs"}, + //{80110, ""}, + //{80111, ""}, + //{80112, ""}, + //{80113, ""}, + {80114, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80115, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80116, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80117, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80118, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80119, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80120, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80121, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80160, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80161, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80162, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80163, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80164, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80165, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80166, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80167, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + //{80168, ""}, + //{80169, ""}, + //{80170, ""}, + //{80171, ""}, + {80172, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + {80173, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs"}, + //{80174, ""}, + //{80175, ""}, + //{80176, ""}, + //{80177, ""}, + //{80178, ""}, + //{80179, ""}, + {80200, "+proj=longlat +a=170000 +b=170000 +no_defs"}, + {80201, "+proj=longlat +a=170000 +b=170000 +no_defs"}, + //{80210, ""}, + //{80211, ""}, + //{80212, ""}, + //{80213, ""}, + {80214, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80215, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80216, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80217, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80218, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80219, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80220, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80221, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80260, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80261, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80262, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80263, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80264, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80265, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80266, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80267, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + //{80268, ""}, + //{80269, ""}, + //{80270, ""}, + //{80271, ""}, + {80272, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + {80273, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs"}, + //{80274, ""}, + //{80275, ""}, + //{80276, ""}, + //{80277, ""}, + //{80278, ""}, + //{80279, ""}, + {80300, "+proj=longlat +a=29000 +b=29000 +no_defs"}, + {80301, "+proj=longlat +a=29000 +b=29000 +no_defs"}, + //{80310, ""}, + //{80311, ""}, + //{80312, ""}, + //{80313, ""}, + {80314, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80315, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80316, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80317, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80318, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80319, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80320, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80321, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80360, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80361, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80362, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80363, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80364, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80365, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80366, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80367, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + //{80368, ""}, + //{80369, ""}, + //{80370, ""}, + //{80371, ""}, + {80372, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + {80373, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs"}, + //{80374, ""}, + //{80375, ""}, + //{80376, ""}, + //{80377, ""}, + //{80378, ""}, + //{80379, ""}, + {80400, "+proj=longlat +a=40000 +b=40000 +no_defs"}, + {80401, "+proj=longlat +a=40000 +b=40000 +no_defs"}, + //{80410, ""}, + //{80411, ""}, + //{80412, ""}, + //{80413, ""}, + {80414, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80415, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80416, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80417, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80418, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80419, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80420, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80421, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80460, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80461, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80462, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80463, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80464, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80465, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80466, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80467, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + //{80468, ""}, + //{80469, ""}, + //{80470, ""}, + //{80471, ""}, + {80472, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + {80473, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs"}, + //{80474, ""}, + //{80475, ""}, + //{80476, ""}, + //{80477, ""}, + //{80478, ""}, + //{80479, ""}, + {80500, "+proj=longlat +a=74000 +b=74000 +no_defs"}, + {80501, "+proj=longlat +a=74000 +b=74000 +no_defs"}, + //{80510, ""}, + //{80511, ""}, + //{80512, ""}, + //{80513, ""}, + {80514, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80515, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80516, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80517, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80518, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80519, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80520, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80521, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80560, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80561, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80562, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80563, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80564, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80565, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80566, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80567, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + //{80568, ""}, + //{80569, ""}, + //{80570, ""}, + //{80571, ""}, + {80572, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + {80573, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs"}, + //{80574, ""}, + //{80575, ""}, + //{80576, ""}, + //{80577, ""}, + //{80578, ""}, + //{80579, ""}, + {80600, "+proj=longlat +a=79000 +b=79000 +no_defs"}, + {80601, "+proj=longlat +a=79000 +b=79000 +no_defs"}, + //{80610, ""}, + //{80611, ""}, + //{80612, ""}, + //{80613, ""}, + {80614, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80615, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80616, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80617, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80618, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80619, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80620, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80621, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80660, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80661, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80662, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80663, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80664, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80665, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80666, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80667, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + //{80668, ""}, + //{80669, ""}, + //{80670, ""}, + //{80671, ""}, + {80672, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + {80673, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs"}, + //{80674, ""}, + //{80675, ""}, + //{80676, ""}, + //{80677, ""}, + //{80678, ""}, + //{80679, ""}, + {80700, "+proj=longlat +a=96000 +b=96000 +no_defs"}, + {80701, "+proj=longlat +a=96000 +b=96000 +no_defs"}, + //{80710, ""}, + //{80711, ""}, + //{80712, ""}, + //{80713, ""}, + {80714, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80715, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80716, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80717, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80718, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80719, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80720, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80721, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80760, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80761, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80762, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80763, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80764, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80765, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80766, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80767, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + //{80768, ""}, + //{80769, ""}, + //{80770, ""}, + //{80771, ""}, + {80772, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + {80773, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs"}, + //{80774, ""}, + //{80775, ""}, + //{80776, ""}, + //{80777, ""}, + //{80778, ""}, + //{80779, ""}, + {80800, "+proj=longlat +a=218000 +b=201000 +no_defs"}, + {80801, "+proj=longlat +a=218000 +b=201000 +no_defs"}, + //{80810, ""}, + //{80811, ""}, + //{80812, ""}, + //{80813, ""}, + {80814, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80815, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80816, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80817, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80818, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80819, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80820, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80821, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80860, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80861, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80862, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80863, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80864, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80865, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80866, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80867, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + //{80868, ""}, + //{80869, ""}, + //{80870, ""}, + //{80871, ""}, + {80872, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + {80873, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs"}, + //{80874, ""}, + //{80875, ""}, + //{80876, ""}, + //{80877, ""}, + //{80878, ""}, + //{80879, ""}, + {89900, "+proj=longlat +a=24764000 +b=24341000 +no_defs"}, + {89901, "+proj=longlat +a=24764000 +b=24341000 +no_defs"}, + //{89910, ""}, + //{89911, ""}, + //{89912, ""}, + //{89913, ""}, + {89914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + //{89968, ""}, + //{89969, ""}, + //{89970, ""}, + //{89971, ""}, + {89972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + {89973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs"}, + //{89974, ""}, + //{89975, ""}, + //{89976, ""}, + //{89977, ""}, + //{89978, ""}, + //{89979, ""}, + {90100, "+proj=longlat +a=593000 +b=593000 +no_defs"}, + {90101, "+proj=longlat +a=593000 +b=593000 +no_defs"}, + //{90110, ""}, + //{90111, ""}, + //{90112, ""}, + //{90113, ""}, + {90114, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90115, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90116, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90117, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90118, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90119, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90120, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90121, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90160, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90161, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90162, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90163, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90164, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90165, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90166, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90167, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + //{90168, ""}, + //{90169, ""}, + //{90170, ""}, + //{90171, ""}, + {90172, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + {90173, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs"}, + //{90174, ""}, + //{90175, ""}, + //{90176, ""}, + //{90177, ""}, + //{90178, ""}, + //{90179, ""}, + {99900, "+proj=longlat +a=1195000 +b=1195000 +no_defs"}, + {99901, "+proj=longlat +a=1195000 +b=1195000 +no_defs"}, + //{99910, ""}, + //{99911, ""}, + //{99912, ""}, + //{99913, ""}, + {99914, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99915, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99916, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99917, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99918, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99919, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99920, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99921, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99960, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99961, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99962, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99963, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99964, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99965, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99966, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99967, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + //{99968, ""}, + //{99969, ""}, + //{99970, ""}, + //{99971, ""}, + {99972, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"}, + {99973, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs"} +//{99974, ""}, +//{99975, ""}, +//{99976, ""}, +//{99977, ""}, +//{99978, ""}, +//{99979, ""} + }; + + const code_element * first = arr; + const code_element * last = arr + sizeof(arr) / sizeof(code_element); + const code_element * el = binary_find_code_element(first, last, code); + + return el != last ? el->proj4_str : ""; + } + +} +#endif // DOXYGEN_NO_DETAIL + + +}}} // namespace boost::geometry::projections + +#endif diff --git a/boost/geometry/srs/projections/iau2000_params.hpp b/boost/geometry/srs/projections/iau2000_params.hpp new file mode 100644 index 0000000000..1cc8539a05 --- /dev/null +++ b/boost/geometry/srs/projections/iau2000_params.hpp @@ -0,0 +1,48 @@ +// Boost.Geometry + +// Copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_SRS_PROJECTIONS_IAU2000_PARAMS_HPP +#define BOOST_GEOMETRY_SRS_PROJECTIONS_IAU2000_PARAMS_HPP + + +#include <string> + +#include <boost/geometry/srs/spheroid.hpp> + + +namespace boost { namespace geometry +{ + +namespace srs +{ + + +struct iau2000 +{ + explicit iau2000(int c) + : code(c) + {} + + int code; +}; + + +template <int Code> +struct static_iau2000 +{ + static const int code = Code; +}; + + +} // namespace srs + + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_SRS_PROJECTIONS_IAU2000_PARAMS_HPP diff --git a/boost/geometry/srs/projections/iau2000_traits.hpp b/boost/geometry/srs/projections/iau2000_traits.hpp new file mode 100644 index 0000000000..2c329db631 --- /dev/null +++ b/boost/geometry/srs/projections/iau2000_traits.hpp @@ -0,0 +1,2432 @@ +// Boost.Geometry + +// Copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IAU2000_TRAITS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IAU2000_TRAITS_HPP + + +#include <boost/geometry/core/tags.hpp> + +#include <boost/geometry/srs/projections/factory.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/srid_traits.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + +/*! + \brief IAU2000 traits + \details With help of the IAU2000 traits library users can statically use projections + or coordinate systems specifying an IAU2000 code. The correct projections for transformations + are used automically then, still keeping static polymorphism. + \ingroup projection + \tparam IAU2000 iau2000 code +*/ +template <size_t IAU2000> +struct iau2000_traits +{ + // Specializations define: + // - type to get projection type + // - function par to get parameters +}; + +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19900, longlat, 2439700, "+proj=longlat +a=2439700 +b=2439700 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19901, longlat, 2439700, "+proj=longlat +a=2439700 +b=2439700 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19914, sinu, 2439700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19915, sinu, 2439700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19916, sinu, 2439700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19917, sinu, 2439700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19918, stere, 2439700, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19919, stere, 2439700, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19920, stere, 2439700, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19921, stere, 2439700, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19960, sinu, 2439700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19961, sinu, 2439700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19962, stere, 2439700, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19963, stere, 2439700, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19964, tmerc, 2439700, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19965, tmerc, 2439700, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19966, ortho, 2439700, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19967, ortho, 2439700, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19972, laea, 2439700, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 19973, laea, 2439700, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2439700 +b=2439700 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 19979, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29900, longlat, 6051800, "+proj=longlat +a=6051800 +b=6051800 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29901, longlat, 6051800, "+proj=longlat +a=6051800 +b=6051800 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29914, sinu, 6051800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29915, sinu, 6051800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29916, sinu, 6051800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29917, sinu, 6051800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29918, stere, 6051800, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29919, stere, 6051800, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29920, stere, 6051800, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29921, stere, 6051800, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29960, sinu, 6051800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29961, sinu, 6051800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29962, stere, 6051800, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29963, stere, 6051800, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29964, tmerc, 6051800, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29965, tmerc, 6051800, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29966, ortho, 6051800, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29967, ortho, 6051800, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29972, laea, 6051800, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 29973, laea, 6051800, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6051800 +b=6051800 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 29979, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30100, longlat, 1737400, "+proj=longlat +a=1737400 +b=1737400 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30101, longlat, 1737400, "+proj=longlat +a=1737400 +b=1737400 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30110, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30111, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30112, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30113, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30114, sinu, 1737400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30115, sinu, 1737400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30116, sinu, 1737400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30117, sinu, 1737400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30118, stere, 1737400, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30119, stere, 1737400, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30120, stere, 1737400, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30121, stere, 1737400, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30160, sinu, 1737400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30161, sinu, 1737400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30162, stere, 1737400, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30163, stere, 1737400, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30164, tmerc, 1737400, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30165, tmerc, 1737400, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30166, ortho, 1737400, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30167, ortho, 1737400, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30168, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30169, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30170, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30171, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30172, laea, 1737400, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 30173, laea, 1737400, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1737400 +b=1737400 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30174, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30175, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30176, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30177, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30178, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 30179, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39900, longlat, 6378140, 6356750, "+proj=longlat +a=6378140 +b=6356750 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39901, longlat, 6378140, 6356750, "+proj=longlat +a=6378140 +b=6356750 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39914, sinu, 6378140, 6356750, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39915, sinu, 6378140, 6356750, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39916, sinu, 6378140, 6356750, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39917, sinu, 6378140, 6356750, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39918, stere, 6378140, 6356750, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39919, stere, 6378140, 6356750, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39920, stere, 6378140, 6356750, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39921, stere, 6378140, 6356750, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39960, sinu, 6378140, 6356750, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39961, sinu, 6378140, 6356750, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39962, stere, 6378140, 6356750, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39963, stere, 6378140, 6356750, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39964, tmerc, 6378140, 6356750, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39965, tmerc, 6378140, 6356750, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39966, ortho, 6378140, 6356750, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39967, ortho, 6378140, 6356750, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39972, laea, 6378140, 6356750, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 39973, laea, 6378140, 6356750, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 39979, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40100, longlat, 13400, 9200, "+proj=longlat +a=13400 +b=9200 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40101, longlat, 13400, 9200, "+proj=longlat +a=13400 +b=9200 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40110, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40111, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40112, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40113, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40114, sinu, 13400, 9200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40115, sinu, 13400, 9200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40116, sinu, 13400, 9200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40117, sinu, 13400, 9200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40118, stere, 13400, 9200, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40119, stere, 13400, 9200, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40120, stere, 13400, 9200, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40121, stere, 13400, 9200, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40160, sinu, 13400, 9200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40161, sinu, 13400, 9200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40162, stere, 13400, 9200, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40163, stere, 13400, 9200, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40164, tmerc, 13400, 9200, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40165, tmerc, 13400, 9200, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40166, ortho, 13400, 9200, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40167, ortho, 13400, 9200, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40168, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40169, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40170, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40171, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40172, laea, 13400, 9200, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40173, laea, 13400, 9200, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13400 +b=9200 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40174, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40175, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40176, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40177, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40178, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40179, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40200, longlat, 7500, 5200, "+proj=longlat +a=7500 +b=5200 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40201, longlat, 7500, 5200, "+proj=longlat +a=7500 +b=5200 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40210, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40211, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40212, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40213, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40214, sinu, 7500, 5200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40215, sinu, 7500, 5200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40216, sinu, 7500, 5200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40217, sinu, 7500, 5200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40218, stere, 7500, 5200, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40219, stere, 7500, 5200, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40220, stere, 7500, 5200, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40221, stere, 7500, 5200, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40260, sinu, 7500, 5200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40261, sinu, 7500, 5200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40262, stere, 7500, 5200, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40263, stere, 7500, 5200, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40264, tmerc, 7500, 5200, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40265, tmerc, 7500, 5200, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40266, ortho, 7500, 5200, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40267, ortho, 7500, 5200, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40268, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40269, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40270, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40271, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40272, laea, 7500, 5200, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 40273, laea, 7500, 5200, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=7500 +b=5200 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40274, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40275, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40276, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40277, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40278, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 40279, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49900, longlat, 3396190, 3376200, "+proj=longlat +a=3396190 +b=3376200 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49901, longlat, 3396190, 3376200, "+proj=longlat +a=3396190 +b=3376200 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49914, sinu, 3396190, 3376200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49915, sinu, 3396190, 3376200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49916, sinu, 3396190, 3376200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49917, sinu, 3396190, 3376200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49918, stere, 3396190, 3376200, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49919, stere, 3396190, 3376200, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49920, stere, 3396190, 3376200, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49921, stere, 3396190, 3376200, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49960, sinu, 3396190, 3376200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49961, sinu, 3396190, 3376200, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49962, stere, 3396190, 3376200, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49963, stere, 3396190, 3376200, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49964, tmerc, 3396190, 3376200, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49965, tmerc, 3396190, 3376200, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49966, ortho, 3396190, 3376200, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49967, ortho, 3396190, 3376200, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49972, laea, 3396190, 3376200, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 49973, laea, 3396190, 3376200, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=3396190 +b=3376200 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 49979, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50100, longlat, 1829400, 1815700, "+proj=longlat +a=1829400 +b=1815700 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50101, longlat, 1829400, 1815700, "+proj=longlat +a=1829400 +b=1815700 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50110, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50111, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50112, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50113, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50114, sinu, 1829400, 1815700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50115, sinu, 1829400, 1815700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50116, sinu, 1829400, 1815700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50117, sinu, 1829400, 1815700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50118, stere, 1829400, 1815700, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50119, stere, 1829400, 1815700, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50120, stere, 1829400, 1815700, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50121, stere, 1829400, 1815700, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50160, sinu, 1829400, 1815700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50161, sinu, 1829400, 1815700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50162, stere, 1829400, 1815700, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50163, stere, 1829400, 1815700, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50164, tmerc, 1829400, 1815700, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50165, tmerc, 1829400, 1815700, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50166, ortho, 1829400, 1815700, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50167, ortho, 1829400, 1815700, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50168, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50169, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50170, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50171, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50172, laea, 1829400, 1815700, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50173, laea, 1829400, 1815700, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1829400 +b=1815700 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50174, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50175, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50176, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50177, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50178, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50179, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50200, longlat, 1564130, 1560930, "+proj=longlat +a=1564130 +b=1560930 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50201, longlat, 1564130, 1560930, "+proj=longlat +a=1564130 +b=1560930 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50210, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50211, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50212, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50213, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50214, sinu, 1564130, 1560930, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50215, sinu, 1564130, 1560930, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50216, sinu, 1564130, 1560930, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50217, sinu, 1564130, 1560930, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50218, stere, 1564130, 1560930, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50219, stere, 1564130, 1560930, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50220, stere, 1564130, 1560930, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50221, stere, 1564130, 1560930, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50260, sinu, 1564130, 1560930, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50261, sinu, 1564130, 1560930, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50262, stere, 1564130, 1560930, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50263, stere, 1564130, 1560930, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50264, tmerc, 1564130, 1560930, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50265, tmerc, 1564130, 1560930, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50266, ortho, 1564130, 1560930, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50267, ortho, 1564130, 1560930, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50268, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50269, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50270, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50271, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50272, laea, 1564130, 1560930, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50273, laea, 1564130, 1560930, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1564130 +b=1560930 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50274, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50275, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50276, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50277, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50278, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50279, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50300, longlat, 2632400, 2632350, "+proj=longlat +a=2632400 +b=2632350 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50301, longlat, 2632400, 2632350, "+proj=longlat +a=2632400 +b=2632350 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50310, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50311, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50312, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50313, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50314, sinu, 2632400, 2632350, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50315, sinu, 2632400, 2632350, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50316, sinu, 2632400, 2632350, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50317, sinu, 2632400, 2632350, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50318, stere, 2632400, 2632350, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50319, stere, 2632400, 2632350, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50320, stere, 2632400, 2632350, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50321, stere, 2632400, 2632350, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50360, sinu, 2632400, 2632350, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50361, sinu, 2632400, 2632350, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50362, stere, 2632400, 2632350, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50363, stere, 2632400, 2632350, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50364, tmerc, 2632400, 2632350, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50365, tmerc, 2632400, 2632350, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50366, ortho, 2632400, 2632350, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50367, ortho, 2632400, 2632350, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50368, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50369, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50370, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50371, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50372, laea, 2632400, 2632350, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50373, laea, 2632400, 2632350, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2632400 +b=2632350 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50374, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50375, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50376, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50377, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50378, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50379, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50400, longlat, 2409400, 2409300, "+proj=longlat +a=2409400 +b=2409300 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50401, longlat, 2409400, 2409300, "+proj=longlat +a=2409400 +b=2409300 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50410, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50411, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50412, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50413, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50414, sinu, 2409400, 2409300, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50415, sinu, 2409400, 2409300, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50416, sinu, 2409400, 2409300, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50417, sinu, 2409400, 2409300, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50418, stere, 2409400, 2409300, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50419, stere, 2409400, 2409300, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50420, stere, 2409400, 2409300, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50421, stere, 2409400, 2409300, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50460, sinu, 2409400, 2409300, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50461, sinu, 2409400, 2409300, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50462, stere, 2409400, 2409300, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50463, stere, 2409400, 2409300, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50464, tmerc, 2409400, 2409300, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50465, tmerc, 2409400, 2409300, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50466, ortho, 2409400, 2409300, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50467, ortho, 2409400, 2409300, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50468, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50469, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50470, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50471, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50472, laea, 2409400, 2409300, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50473, laea, 2409400, 2409300, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2409400 +b=2409300 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50474, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50475, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50476, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50477, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50478, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50479, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50500, longlat, 125000, 64000, "+proj=longlat +a=125000 +b=64000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50501, longlat, 125000, 64000, "+proj=longlat +a=125000 +b=64000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50510, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50511, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50512, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50513, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50514, sinu, 125000, 64000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50515, sinu, 125000, 64000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50516, sinu, 125000, 64000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50517, sinu, 125000, 64000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50518, stere, 125000, 64000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50519, stere, 125000, 64000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50520, stere, 125000, 64000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50521, stere, 125000, 64000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50560, sinu, 125000, 64000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50561, sinu, 125000, 64000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50562, stere, 125000, 64000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50563, stere, 125000, 64000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50564, tmerc, 125000, 64000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50565, tmerc, 125000, 64000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50566, ortho, 125000, 64000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50567, ortho, 125000, 64000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50568, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50569, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50570, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50571, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50572, laea, 125000, 64000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 50573, laea, 125000, 64000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=125000 +b=64000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50574, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50575, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50576, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50577, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50578, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50579, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50600, longlat, 85000, "+proj=longlat +a=85000 +b=85000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50601, longlat, 85000, "+proj=longlat +a=85000 +b=85000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50610, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50611, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50612, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50613, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50614, sinu, 85000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50615, sinu, 85000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50616, sinu, 85000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50617, sinu, 85000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50618, stere, 85000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50619, stere, 85000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50620, stere, 85000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50621, stere, 85000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50660, sinu, 85000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50661, sinu, 85000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50662, stere, 85000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50663, stere, 85000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50664, tmerc, 85000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50665, tmerc, 85000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50666, ortho, 85000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50667, ortho, 85000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50668, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50669, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50670, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50671, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50672, laea, 85000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50673, laea, 85000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=85000 +b=85000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50674, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50675, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50676, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50677, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50678, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50679, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50700, longlat, 40000, "+proj=longlat +a=40000 +b=40000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50701, longlat, 40000, "+proj=longlat +a=40000 +b=40000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50710, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50711, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50712, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50713, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50714, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50715, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50716, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50717, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50718, stere, 40000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50719, stere, 40000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50720, stere, 40000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50721, stere, 40000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50760, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50761, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50762, stere, 40000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50763, stere, 40000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50764, tmerc, 40000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50765, tmerc, 40000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50766, ortho, 40000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50767, ortho, 40000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50768, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50769, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50770, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50771, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50772, laea, 40000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50773, laea, 40000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50774, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50775, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50776, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50777, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50778, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50779, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50800, longlat, 18000, "+proj=longlat +a=18000 +b=18000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50801, longlat, 18000, "+proj=longlat +a=18000 +b=18000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50810, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50811, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50812, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50813, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50814, sinu, 18000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50815, sinu, 18000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50816, sinu, 18000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50817, sinu, 18000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50818, stere, 18000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50819, stere, 18000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50820, stere, 18000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50821, stere, 18000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50860, sinu, 18000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50861, sinu, 18000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50862, stere, 18000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50863, stere, 18000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50864, tmerc, 18000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50865, tmerc, 18000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50866, ortho, 18000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50867, ortho, 18000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50868, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50869, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50870, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50871, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50872, laea, 18000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50873, laea, 18000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18000 +b=18000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50874, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50875, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50876, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50877, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50878, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50879, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50900, longlat, 14000, "+proj=longlat +a=14000 +b=14000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50901, longlat, 14000, "+proj=longlat +a=14000 +b=14000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50914, sinu, 14000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50915, sinu, 14000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50916, sinu, 14000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50917, sinu, 14000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50918, stere, 14000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50919, stere, 14000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50920, stere, 14000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50921, stere, 14000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50960, sinu, 14000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50961, sinu, 14000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50962, stere, 14000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50963, stere, 14000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50964, tmerc, 14000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50965, tmerc, 14000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50966, ortho, 14000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50967, ortho, 14000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50972, laea, 14000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 50973, laea, 14000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=14000 +b=14000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 50979, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51000, longlat, 12000, "+proj=longlat +a=12000 +b=12000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51001, longlat, 12000, "+proj=longlat +a=12000 +b=12000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51010, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51011, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51012, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51013, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51014, sinu, 12000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51015, sinu, 12000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51016, sinu, 12000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51017, sinu, 12000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51018, stere, 12000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51019, stere, 12000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51020, stere, 12000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51021, stere, 12000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51060, sinu, 12000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51061, sinu, 12000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51062, stere, 12000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51063, stere, 12000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51064, tmerc, 12000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51065, tmerc, 12000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51066, ortho, 12000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51067, ortho, 12000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51068, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51069, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51070, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51071, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51072, laea, 12000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51073, laea, 12000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=12000 +b=12000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51074, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51075, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51076, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51077, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51078, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51079, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51100, longlat, 15000, "+proj=longlat +a=15000 +b=15000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51101, longlat, 15000, "+proj=longlat +a=15000 +b=15000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51110, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51111, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51112, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51113, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51114, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51115, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51116, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51117, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51118, stere, 15000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51119, stere, 15000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51120, stere, 15000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51121, stere, 15000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51160, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51161, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51162, stere, 15000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51163, stere, 15000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51164, tmerc, 15000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51165, tmerc, 15000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51166, ortho, 15000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51167, ortho, 15000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51168, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51169, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51170, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51171, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51172, laea, 15000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51173, laea, 15000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51174, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51175, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51176, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51177, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51178, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51179, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51200, longlat, 10000, "+proj=longlat +a=10000 +b=10000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51201, longlat, 10000, "+proj=longlat +a=10000 +b=10000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51210, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51211, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51212, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51213, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51214, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51215, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51216, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51217, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51218, stere, 10000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51219, stere, 10000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51220, stere, 10000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51221, stere, 10000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51260, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51261, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51262, stere, 10000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51263, stere, 10000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51264, tmerc, 10000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51265, tmerc, 10000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51266, ortho, 10000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51267, ortho, 10000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51268, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51269, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51270, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51271, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51272, laea, 10000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51273, laea, 10000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51274, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51275, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51276, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51277, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51278, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51279, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51300, longlat, 5000, "+proj=longlat +a=5000 +b=5000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51301, longlat, 5000, "+proj=longlat +a=5000 +b=5000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51310, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51311, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51312, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51313, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51314, sinu, 5000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51315, sinu, 5000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51316, sinu, 5000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51317, sinu, 5000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51318, stere, 5000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51319, stere, 5000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51320, stere, 5000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51321, stere, 5000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51360, sinu, 5000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51361, sinu, 5000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51362, stere, 5000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51363, stere, 5000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51364, tmerc, 5000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51365, tmerc, 5000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51366, ortho, 5000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51367, ortho, 5000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51368, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51369, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51370, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51371, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51372, laea, 5000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51373, laea, 5000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=5000 +b=5000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51374, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51375, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51376, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51377, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51378, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51379, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51400, longlat, 58000, 42000, "+proj=longlat +a=58000 +b=42000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51401, longlat, 58000, 42000, "+proj=longlat +a=58000 +b=42000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51410, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51411, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51412, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51413, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51414, sinu, 58000, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51415, sinu, 58000, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51416, sinu, 58000, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51417, sinu, 58000, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51418, stere, 58000, 42000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51419, stere, 58000, 42000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51420, stere, 58000, 42000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51421, stere, 58000, 42000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51460, sinu, 58000, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51461, sinu, 58000, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51462, stere, 58000, 42000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51463, stere, 58000, 42000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51464, tmerc, 58000, 42000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51465, tmerc, 58000, 42000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51466, ortho, 58000, 42000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51467, ortho, 58000, 42000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51468, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51469, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51470, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51471, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51472, laea, 58000, 42000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51473, laea, 58000, 42000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=58000 +b=42000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51474, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51475, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51476, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51477, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51478, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51479, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51500, longlat, 10000, 7000, "+proj=longlat +a=10000 +b=7000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51501, longlat, 10000, 7000, "+proj=longlat +a=10000 +b=7000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51510, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51511, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51512, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51513, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51514, sinu, 10000, 7000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51515, sinu, 10000, 7000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51516, sinu, 10000, 7000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51517, sinu, 10000, 7000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51518, stere, 10000, 7000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51519, stere, 10000, 7000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51520, stere, 10000, 7000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51521, stere, 10000, 7000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51560, sinu, 10000, 7000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51561, sinu, 10000, 7000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51562, stere, 10000, 7000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51563, stere, 10000, 7000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51564, tmerc, 10000, 7000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51565, tmerc, 10000, 7000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51566, ortho, 10000, 7000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51567, ortho, 10000, 7000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51568, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51569, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51570, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51571, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51572, laea, 10000, 7000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 51573, laea, 10000, 7000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=7000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51574, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51575, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51576, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51577, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51578, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51579, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51600, longlat, 21500, "+proj=longlat +a=21500 +b=21500 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51601, longlat, 21500, "+proj=longlat +a=21500 +b=21500 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51610, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51611, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51612, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51613, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51614, sinu, 21500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51615, sinu, 21500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51616, sinu, 21500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51617, sinu, 21500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51618, stere, 21500, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51619, stere, 21500, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51620, stere, 21500, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51621, stere, 21500, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51660, sinu, 21500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51661, sinu, 21500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51662, stere, 21500, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51663, stere, 21500, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51664, tmerc, 21500, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51665, tmerc, 21500, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51666, ortho, 21500, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51667, ortho, 21500, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51668, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51669, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51670, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51671, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51672, laea, 21500, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 51673, laea, 21500, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21500 +b=21500 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51674, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51675, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51676, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51677, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51678, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 51679, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59900, longlat, 71492000, 66854000, "+proj=longlat +a=71492000 +b=66854000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59901, longlat, 71492000, 66854000, "+proj=longlat +a=71492000 +b=66854000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59914, sinu, 71492000, 66854000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59915, sinu, 71492000, 66854000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59916, sinu, 71492000, 66854000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59917, sinu, 71492000, 66854000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59918, stere, 71492000, 66854000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59919, stere, 71492000, 66854000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59920, stere, 71492000, 66854000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59921, stere, 71492000, 66854000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59960, sinu, 71492000, 66854000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59961, sinu, 71492000, 66854000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59962, stere, 71492000, 66854000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59963, stere, 71492000, 66854000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59964, tmerc, 71492000, 66854000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59965, tmerc, 71492000, 66854000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59966, ortho, 71492000, 66854000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59967, ortho, 71492000, 66854000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59972, laea, 71492000, 66854000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 59973, laea, 71492000, 66854000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=71492000 +b=66854000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 59979, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60100, longlat, 209100, 191400, "+proj=longlat +a=209100 +b=191400 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60101, longlat, 209100, 191400, "+proj=longlat +a=209100 +b=191400 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60110, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60111, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60112, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60113, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60114, sinu, 209100, 191400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60115, sinu, 209100, 191400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60116, sinu, 209100, 191400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60117, sinu, 209100, 191400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60118, stere, 209100, 191400, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60119, stere, 209100, 191400, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60120, stere, 209100, 191400, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60121, stere, 209100, 191400, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60160, sinu, 209100, 191400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60161, sinu, 209100, 191400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60162, stere, 209100, 191400, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60163, stere, 209100, 191400, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60164, tmerc, 209100, 191400, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60165, tmerc, 209100, 191400, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60166, ortho, 209100, 191400, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60167, ortho, 209100, 191400, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60168, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60169, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60170, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60171, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60172, laea, 209100, 191400, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60173, laea, 209100, 191400, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=209100 +b=191400 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60174, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60175, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60176, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60177, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60178, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60179, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60200, longlat, 256300, 244600, "+proj=longlat +a=256300 +b=244600 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60201, longlat, 256300, 244600, "+proj=longlat +a=256300 +b=244600 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60210, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60211, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60212, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60213, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60214, sinu, 256300, 244600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60215, sinu, 256300, 244600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60216, sinu, 256300, 244600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60217, sinu, 256300, 244600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60218, stere, 256300, 244600, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60219, stere, 256300, 244600, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60220, stere, 256300, 244600, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60221, stere, 256300, 244600, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60260, sinu, 256300, 244600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60261, sinu, 256300, 244600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60262, stere, 256300, 244600, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60263, stere, 256300, 244600, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60264, tmerc, 256300, 244600, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60265, tmerc, 256300, 244600, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60266, ortho, 256300, 244600, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60267, ortho, 256300, 244600, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60268, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60269, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60270, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60271, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60272, laea, 256300, 244600, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60273, laea, 256300, 244600, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=256300 +b=244600 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60274, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60275, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60276, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60277, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60278, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60279, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60300, longlat, 535600, 525800, "+proj=longlat +a=535600 +b=525800 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60301, longlat, 535600, 525800, "+proj=longlat +a=535600 +b=525800 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60310, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60311, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60312, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60313, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60314, sinu, 535600, 525800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60315, sinu, 535600, 525800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60316, sinu, 535600, 525800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60317, sinu, 535600, 525800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60318, stere, 535600, 525800, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60319, stere, 535600, 525800, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60320, stere, 535600, 525800, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60321, stere, 535600, 525800, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60360, sinu, 535600, 525800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60361, sinu, 535600, 525800, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60362, stere, 535600, 525800, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60363, stere, 535600, 525800, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60364, tmerc, 535600, 525800, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60365, tmerc, 535600, 525800, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60366, ortho, 535600, 525800, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60367, ortho, 535600, 525800, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60368, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60369, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60370, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60371, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60372, laea, 535600, 525800, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60373, laea, 535600, 525800, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=535600 +b=525800 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60374, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60375, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60376, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60377, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60378, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60379, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60400, longlat, 560000, "+proj=longlat +a=560000 +b=560000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60401, longlat, 560000, "+proj=longlat +a=560000 +b=560000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60410, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60411, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60412, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60413, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60414, sinu, 560000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60415, sinu, 560000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60416, sinu, 560000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60417, sinu, 560000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60418, stere, 560000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60419, stere, 560000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60420, stere, 560000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60421, stere, 560000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60460, sinu, 560000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60461, sinu, 560000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60462, stere, 560000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60463, stere, 560000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60464, tmerc, 560000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60465, tmerc, 560000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60466, ortho, 560000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60467, ortho, 560000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60468, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60469, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60470, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60471, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60472, laea, 560000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60473, laea, 560000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=560000 +b=560000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60474, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60475, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60476, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60477, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60478, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60479, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60500, longlat, 764000, "+proj=longlat +a=764000 +b=764000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60501, longlat, 764000, "+proj=longlat +a=764000 +b=764000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60510, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60511, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60512, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60513, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60514, sinu, 764000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60515, sinu, 764000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60516, sinu, 764000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60517, sinu, 764000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60518, stere, 764000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60519, stere, 764000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60520, stere, 764000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60521, stere, 764000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60560, sinu, 764000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60561, sinu, 764000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60562, stere, 764000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60563, stere, 764000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60564, tmerc, 764000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60565, tmerc, 764000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60566, ortho, 764000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60567, ortho, 764000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60568, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60569, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60570, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60571, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60572, laea, 764000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60573, laea, 764000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=764000 +b=764000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60574, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60575, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60576, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60577, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60578, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60579, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60600, longlat, 2575000, "+proj=longlat +a=2575000 +b=2575000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60601, longlat, 2575000, "+proj=longlat +a=2575000 +b=2575000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60610, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60611, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60612, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60613, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60614, sinu, 2575000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60615, sinu, 2575000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60616, sinu, 2575000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60617, sinu, 2575000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60618, stere, 2575000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60619, stere, 2575000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60620, stere, 2575000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60621, stere, 2575000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60660, sinu, 2575000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60661, sinu, 2575000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60662, stere, 2575000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60663, stere, 2575000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60664, tmerc, 2575000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60665, tmerc, 2575000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60666, ortho, 2575000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60667, ortho, 2575000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60668, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60669, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60670, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60671, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60672, laea, 2575000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60673, laea, 2575000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=2575000 +b=2575000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60674, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60675, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60676, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60677, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60678, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60679, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60700, longlat, 164000, 107000, "+proj=longlat +a=164000 +b=107000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60701, longlat, 164000, 107000, "+proj=longlat +a=164000 +b=107000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60710, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60711, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60712, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60713, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60714, sinu, 164000, 107000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60715, sinu, 164000, 107000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60716, sinu, 164000, 107000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60717, sinu, 164000, 107000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60718, stere, 164000, 107000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60719, stere, 164000, 107000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60720, stere, 164000, 107000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60721, stere, 164000, 107000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60760, sinu, 164000, 107000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60761, sinu, 164000, 107000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60762, stere, 164000, 107000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60763, stere, 164000, 107000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60764, tmerc, 164000, 107000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60765, tmerc, 164000, 107000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60766, ortho, 164000, 107000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60767, ortho, 164000, 107000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60768, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60769, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60770, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60771, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60772, laea, 164000, 107000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60773, laea, 164000, 107000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=164000 +b=107000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60774, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60775, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60776, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60777, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60778, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60779, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60800, longlat, 718000, "+proj=longlat +a=718000 +b=718000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60801, longlat, 718000, "+proj=longlat +a=718000 +b=718000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60810, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60811, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60812, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60813, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60814, sinu, 718000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60815, sinu, 718000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60816, sinu, 718000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60817, sinu, 718000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60818, stere, 718000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60819, stere, 718000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60820, stere, 718000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60821, stere, 718000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60860, sinu, 718000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60861, sinu, 718000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60862, stere, 718000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60863, stere, 718000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60864, tmerc, 718000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60865, tmerc, 718000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60866, ortho, 718000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60867, ortho, 718000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60868, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60869, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60870, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60871, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60872, laea, 718000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 60873, laea, 718000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=718000 +b=718000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60874, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60875, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60876, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60877, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60878, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60879, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60900, longlat, 115000, 105000, "+proj=longlat +a=115000 +b=105000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60901, longlat, 115000, 105000, "+proj=longlat +a=115000 +b=105000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60914, sinu, 115000, 105000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60915, sinu, 115000, 105000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60916, sinu, 115000, 105000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60917, sinu, 115000, 105000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60918, stere, 115000, 105000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60919, stere, 115000, 105000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60920, stere, 115000, 105000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60921, stere, 115000, 105000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60960, sinu, 115000, 105000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60961, sinu, 115000, 105000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60962, stere, 115000, 105000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60963, stere, 115000, 105000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60964, tmerc, 115000, 105000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60965, tmerc, 115000, 105000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60966, ortho, 115000, 105000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60967, ortho, 115000, 105000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60972, laea, 115000, 105000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 60973, laea, 115000, 105000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=115000 +b=105000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 60979, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61000, longlat, 97000, 77000, "+proj=longlat +a=97000 +b=77000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61001, longlat, 97000, 77000, "+proj=longlat +a=97000 +b=77000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61010, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61011, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61012, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61013, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61014, sinu, 97000, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61015, sinu, 97000, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61016, sinu, 97000, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61017, sinu, 97000, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61018, stere, 97000, 77000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61019, stere, 97000, 77000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61020, stere, 97000, 77000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61021, stere, 97000, 77000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61060, sinu, 97000, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61061, sinu, 97000, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61062, stere, 97000, 77000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61063, stere, 97000, 77000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61064, tmerc, 97000, 77000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61065, tmerc, 97000, 77000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61066, ortho, 97000, 77000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61067, ortho, 97000, 77000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61068, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61069, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61070, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61071, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61072, laea, 97000, 77000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61073, laea, 97000, 77000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=97000 +b=77000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61074, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61075, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61076, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61077, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61078, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61079, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61100, longlat, 69000, 55000, "+proj=longlat +a=69000 +b=55000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61101, longlat, 69000, 55000, "+proj=longlat +a=69000 +b=55000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61110, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61111, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61112, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61113, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61114, sinu, 69000, 55000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61115, sinu, 69000, 55000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61116, sinu, 69000, 55000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61117, sinu, 69000, 55000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61118, stere, 69000, 55000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61119, stere, 69000, 55000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61120, stere, 69000, 55000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61121, stere, 69000, 55000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61160, sinu, 69000, 55000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61161, sinu, 69000, 55000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61162, stere, 69000, 55000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61163, stere, 69000, 55000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61164, tmerc, 69000, 55000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61165, tmerc, 69000, 55000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61166, ortho, 69000, 55000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61167, ortho, 69000, 55000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61168, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61169, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61170, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61171, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61172, laea, 69000, 55000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61173, laea, 69000, 55000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=69000 +b=55000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61174, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61175, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61176, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61177, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61178, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61179, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61200, longlat, 16000, "+proj=longlat +a=16000 +b=16000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61201, longlat, 16000, "+proj=longlat +a=16000 +b=16000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61210, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61211, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61212, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61213, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61214, sinu, 16000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61215, sinu, 16000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61216, sinu, 16000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61217, sinu, 16000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61218, stere, 16000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61219, stere, 16000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61220, stere, 16000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61221, stere, 16000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61260, sinu, 16000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61261, sinu, 16000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61262, stere, 16000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61263, stere, 16000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61264, tmerc, 16000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61265, tmerc, 16000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61266, ortho, 16000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61267, ortho, 16000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61268, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61269, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61270, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61271, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61272, laea, 16000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61273, laea, 16000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=16000 +b=16000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61274, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61275, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61276, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61277, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61278, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61279, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61300, longlat, 15000, 7500, "+proj=longlat +a=15000 +b=7500 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61301, longlat, 15000, 7500, "+proj=longlat +a=15000 +b=7500 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61310, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61311, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61312, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61313, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61314, sinu, 15000, 7500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61315, sinu, 15000, 7500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61316, sinu, 15000, 7500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61317, sinu, 15000, 7500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61318, stere, 15000, 7500, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61319, stere, 15000, 7500, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61320, stere, 15000, 7500, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61321, stere, 15000, 7500, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61360, sinu, 15000, 7500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61361, sinu, 15000, 7500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61362, stere, 15000, 7500, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61363, stere, 15000, 7500, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61364, tmerc, 15000, 7500, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61365, tmerc, 15000, 7500, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61366, ortho, 15000, 7500, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61367, ortho, 15000, 7500, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61368, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61369, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61370, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61371, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61372, laea, 15000, 7500, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61373, laea, 15000, 7500, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=7500 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61374, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61375, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61376, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61377, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61378, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61379, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61400, longlat, 15000, 8000, "+proj=longlat +a=15000 +b=8000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61401, longlat, 15000, 8000, "+proj=longlat +a=15000 +b=8000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61410, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61411, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61412, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61413, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61414, sinu, 15000, 8000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61415, sinu, 15000, 8000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61416, sinu, 15000, 8000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61417, sinu, 15000, 8000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61418, stere, 15000, 8000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61419, stere, 15000, 8000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61420, stere, 15000, 8000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61421, stere, 15000, 8000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61460, sinu, 15000, 8000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61461, sinu, 15000, 8000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61462, stere, 15000, 8000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61463, stere, 15000, 8000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61464, tmerc, 15000, 8000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61465, tmerc, 15000, 8000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61466, ortho, 15000, 8000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61467, ortho, 15000, 8000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61468, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61469, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61470, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61471, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61472, laea, 15000, 8000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61473, laea, 15000, 8000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=8000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61474, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61475, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61476, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61477, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61478, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61479, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61500, longlat, 18500, 13500, "+proj=longlat +a=18500 +b=13500 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61501, longlat, 18500, 13500, "+proj=longlat +a=18500 +b=13500 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61510, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61511, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61512, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61513, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61514, sinu, 18500, 13500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61515, sinu, 18500, 13500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61516, sinu, 18500, 13500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61517, sinu, 18500, 13500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61518, stere, 18500, 13500, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61519, stere, 18500, 13500, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61520, stere, 18500, 13500, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61521, stere, 18500, 13500, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61560, sinu, 18500, 13500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61561, sinu, 18500, 13500, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61562, stere, 18500, 13500, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61563, stere, 18500, 13500, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61564, tmerc, 18500, 13500, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61565, tmerc, 18500, 13500, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61566, ortho, 18500, 13500, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61567, ortho, 18500, 13500, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61568, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61569, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61570, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61571, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61572, laea, 18500, 13500, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61573, laea, 18500, 13500, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=18500 +b=13500 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61574, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61575, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61576, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61577, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61578, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61579, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61600, longlat, 74000, 34000, "+proj=longlat +a=74000 +b=34000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61601, longlat, 74000, 34000, "+proj=longlat +a=74000 +b=34000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61610, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61611, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61612, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61613, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61614, sinu, 74000, 34000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61615, sinu, 74000, 34000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61616, sinu, 74000, 34000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61617, sinu, 74000, 34000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61618, stere, 74000, 34000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61619, stere, 74000, 34000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61620, stere, 74000, 34000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61621, stere, 74000, 34000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61660, sinu, 74000, 34000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61661, sinu, 74000, 34000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61662, stere, 74000, 34000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61663, stere, 74000, 34000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61664, tmerc, 74000, 34000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61665, tmerc, 74000, 34000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61666, ortho, 74000, 34000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61667, ortho, 74000, 34000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61668, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61669, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61670, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61671, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61672, laea, 74000, 34000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61673, laea, 74000, 34000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=34000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61674, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61675, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61676, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61677, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61678, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61679, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61700, longlat, 55000, 31000, "+proj=longlat +a=55000 +b=31000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61701, longlat, 55000, 31000, "+proj=longlat +a=55000 +b=31000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61710, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61711, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61712, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61713, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61714, sinu, 55000, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61715, sinu, 55000, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61716, sinu, 55000, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61717, sinu, 55000, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61718, stere, 55000, 31000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61719, stere, 55000, 31000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61720, stere, 55000, 31000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61721, stere, 55000, 31000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61760, sinu, 55000, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61761, sinu, 55000, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61762, stere, 55000, 31000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61763, stere, 55000, 31000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61764, tmerc, 55000, 31000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61765, tmerc, 55000, 31000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61766, ortho, 55000, 31000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61767, ortho, 55000, 31000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61768, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61769, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61770, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61771, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61772, laea, 55000, 31000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 61773, laea, 55000, 31000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=55000 +b=31000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61774, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61775, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61776, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61777, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61778, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61779, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61800, longlat, 10000, "+proj=longlat +a=10000 +b=10000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61801, longlat, 10000, "+proj=longlat +a=10000 +b=10000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61810, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61811, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61812, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61813, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61814, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61815, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61816, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61817, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61818, stere, 10000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61819, stere, 10000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61820, stere, 10000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61821, stere, 10000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61860, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61861, sinu, 10000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61862, stere, 10000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61863, stere, 10000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61864, tmerc, 10000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61865, tmerc, 10000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61866, ortho, 10000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61867, ortho, 10000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61868, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61869, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61870, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61871, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61872, laea, 10000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 61873, laea, 10000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=10000 +b=10000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61874, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61875, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61876, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61877, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61878, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 61879, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69900, longlat, 60268000, 54364000, "+proj=longlat +a=60268000 +b=54364000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69901, longlat, 60268000, 54364000, "+proj=longlat +a=60268000 +b=54364000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69914, sinu, 60268000, 54364000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69915, sinu, 60268000, 54364000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69916, sinu, 60268000, 54364000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69917, sinu, 60268000, 54364000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69918, stere, 60268000, 54364000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69919, stere, 60268000, 54364000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69920, stere, 60268000, 54364000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69921, stere, 60268000, 54364000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69960, sinu, 60268000, 54364000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69961, sinu, 60268000, 54364000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69962, stere, 60268000, 54364000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69963, stere, 60268000, 54364000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69964, tmerc, 60268000, 54364000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69965, tmerc, 60268000, 54364000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69966, ortho, 60268000, 54364000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69967, ortho, 60268000, 54364000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69972, laea, 60268000, 54364000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 69973, laea, 60268000, 54364000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=60268000 +b=54364000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 69979, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70100, longlat, 581100, 577700, "+proj=longlat +a=581100 +b=577700 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70101, longlat, 581100, 577700, "+proj=longlat +a=581100 +b=577700 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70110, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70111, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70112, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70113, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70114, sinu, 581100, 577700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70115, sinu, 581100, 577700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70116, sinu, 581100, 577700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70117, sinu, 581100, 577700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70118, stere, 581100, 577700, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70119, stere, 581100, 577700, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70120, stere, 581100, 577700, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70121, stere, 581100, 577700, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70160, sinu, 581100, 577700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70161, sinu, 581100, 577700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70162, stere, 581100, 577700, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70163, stere, 581100, 577700, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70164, tmerc, 581100, 577700, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70165, tmerc, 581100, 577700, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70166, ortho, 581100, 577700, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70167, ortho, 581100, 577700, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70168, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70169, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70170, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70171, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70172, laea, 581100, 577700, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70173, laea, 581100, 577700, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=581100 +b=577700 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70174, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70175, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70176, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70177, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70178, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70179, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70200, longlat, 584700, "+proj=longlat +a=584700 +b=584700 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70201, longlat, 584700, "+proj=longlat +a=584700 +b=584700 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70210, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70211, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70212, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70213, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70214, sinu, 584700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70215, sinu, 584700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70216, sinu, 584700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70217, sinu, 584700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70218, stere, 584700, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70219, stere, 584700, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70220, stere, 584700, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70221, stere, 584700, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70260, sinu, 584700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70261, sinu, 584700, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70262, stere, 584700, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70263, stere, 584700, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70264, tmerc, 584700, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70265, tmerc, 584700, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70266, ortho, 584700, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70267, ortho, 584700, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70268, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70269, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70270, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70271, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70272, laea, 584700, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70273, laea, 584700, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=584700 +b=584700 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70274, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70275, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70276, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70277, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70278, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70279, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70300, longlat, 788900, "+proj=longlat +a=788900 +b=788900 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70301, longlat, 788900, "+proj=longlat +a=788900 +b=788900 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70310, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70311, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70312, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70313, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70314, sinu, 788900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70315, sinu, 788900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70316, sinu, 788900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70317, sinu, 788900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70318, stere, 788900, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70319, stere, 788900, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70320, stere, 788900, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70321, stere, 788900, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70360, sinu, 788900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70361, sinu, 788900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70362, stere, 788900, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70363, stere, 788900, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70364, tmerc, 788900, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70365, tmerc, 788900, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70366, ortho, 788900, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70367, ortho, 788900, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70368, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70369, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70370, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70371, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70372, laea, 788900, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70373, laea, 788900, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=788900 +b=788900 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70374, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70375, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70376, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70377, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70378, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70379, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70400, longlat, 761400, "+proj=longlat +a=761400 +b=761400 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70401, longlat, 761400, "+proj=longlat +a=761400 +b=761400 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70410, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70411, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70412, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70413, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70414, sinu, 761400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70415, sinu, 761400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70416, sinu, 761400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70417, sinu, 761400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70418, stere, 761400, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70419, stere, 761400, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70420, stere, 761400, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70421, stere, 761400, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70460, sinu, 761400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70461, sinu, 761400, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70462, stere, 761400, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70463, stere, 761400, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70464, tmerc, 761400, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70465, tmerc, 761400, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70466, ortho, 761400, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70467, ortho, 761400, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70468, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70469, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70470, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70471, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70472, laea, 761400, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70473, laea, 761400, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=761400 +b=761400 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70474, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70475, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70476, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70477, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70478, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70479, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70500, longlat, 240400, 232900, "+proj=longlat +a=240400 +b=232900 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70501, longlat, 240400, 232900, "+proj=longlat +a=240400 +b=232900 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70510, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70511, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70512, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70513, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70514, sinu, 240400, 232900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70515, sinu, 240400, 232900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70516, sinu, 240400, 232900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70517, sinu, 240400, 232900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70518, stere, 240400, 232900, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70519, stere, 240400, 232900, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70520, stere, 240400, 232900, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70521, stere, 240400, 232900, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70560, sinu, 240400, 232900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70561, sinu, 240400, 232900, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70562, stere, 240400, 232900, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70563, stere, 240400, 232900, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70564, tmerc, 240400, 232900, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70565, tmerc, 240400, 232900, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70566, ortho, 240400, 232900, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70567, ortho, 240400, 232900, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70568, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70569, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70570, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70571, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70572, laea, 240400, 232900, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 70573, laea, 240400, 232900, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=240400 +b=232900 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70574, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70575, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70576, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70577, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70578, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70579, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70600, longlat, 13000, "+proj=longlat +a=13000 +b=13000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70601, longlat, 13000, "+proj=longlat +a=13000 +b=13000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70610, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70611, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70612, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70613, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70614, sinu, 13000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70615, sinu, 13000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70616, sinu, 13000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70617, sinu, 13000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70618, stere, 13000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70619, stere, 13000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70620, stere, 13000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70621, stere, 13000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70660, sinu, 13000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70661, sinu, 13000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70662, stere, 13000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70663, stere, 13000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70664, tmerc, 13000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70665, tmerc, 13000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70666, ortho, 13000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70667, ortho, 13000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70668, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70669, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70670, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70671, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70672, laea, 13000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70673, laea, 13000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=13000 +b=13000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70674, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70675, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70676, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70677, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70678, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70679, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70700, longlat, 15000, "+proj=longlat +a=15000 +b=15000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70701, longlat, 15000, "+proj=longlat +a=15000 +b=15000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70710, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70711, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70712, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70713, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70714, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70715, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70716, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70717, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70718, stere, 15000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70719, stere, 15000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70720, stere, 15000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70721, stere, 15000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70760, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70761, sinu, 15000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70762, stere, 15000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70763, stere, 15000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70764, tmerc, 15000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70765, tmerc, 15000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70766, ortho, 15000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70767, ortho, 15000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70768, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70769, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70770, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70771, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70772, laea, 15000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70773, laea, 15000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=15000 +b=15000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70774, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70775, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70776, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70777, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70778, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70779, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70800, longlat, 21000, "+proj=longlat +a=21000 +b=21000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70801, longlat, 21000, "+proj=longlat +a=21000 +b=21000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70810, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70811, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70812, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70813, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70814, sinu, 21000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70815, sinu, 21000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70816, sinu, 21000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70817, sinu, 21000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70818, stere, 21000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70819, stere, 21000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70820, stere, 21000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70821, stere, 21000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70860, sinu, 21000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70861, sinu, 21000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70862, stere, 21000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70863, stere, 21000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70864, tmerc, 21000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70865, tmerc, 21000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70866, ortho, 21000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70867, ortho, 21000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70868, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70869, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70870, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70871, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70872, laea, 21000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70873, laea, 21000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=21000 +b=21000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70874, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70875, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70876, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70877, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70878, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70879, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70900, longlat, 31000, "+proj=longlat +a=31000 +b=31000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70901, longlat, 31000, "+proj=longlat +a=31000 +b=31000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70914, sinu, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70915, sinu, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70916, sinu, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70917, sinu, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70918, stere, 31000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70919, stere, 31000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70920, stere, 31000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70921, stere, 31000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70960, sinu, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70961, sinu, 31000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70962, stere, 31000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70963, stere, 31000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70964, tmerc, 31000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70965, tmerc, 31000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70966, ortho, 31000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70967, ortho, 31000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70972, laea, 31000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 70973, laea, 31000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=31000 +b=31000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 70979, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71000, longlat, 27000, "+proj=longlat +a=27000 +b=27000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71001, longlat, 27000, "+proj=longlat +a=27000 +b=27000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71010, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71011, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71012, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71013, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71014, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71015, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71016, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71017, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71018, stere, 27000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71019, stere, 27000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71020, stere, 27000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71021, stere, 27000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71060, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71061, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71062, stere, 27000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71063, stere, 27000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71064, tmerc, 27000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71065, tmerc, 27000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71066, ortho, 27000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71067, ortho, 27000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71068, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71069, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71070, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71071, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71072, laea, 27000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71073, laea, 27000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71074, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71075, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71076, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71077, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71078, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71079, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71100, longlat, 42000, "+proj=longlat +a=42000 +b=42000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71101, longlat, 42000, "+proj=longlat +a=42000 +b=42000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71110, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71111, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71112, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71113, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71114, sinu, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71115, sinu, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71116, sinu, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71117, sinu, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71118, stere, 42000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71119, stere, 42000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71120, stere, 42000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71121, stere, 42000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71160, sinu, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71161, sinu, 42000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71162, stere, 42000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71163, stere, 42000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71164, tmerc, 42000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71165, tmerc, 42000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71166, ortho, 42000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71167, ortho, 42000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71168, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71169, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71170, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71171, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71172, laea, 42000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71173, laea, 42000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=42000 +b=42000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71174, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71175, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71176, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71177, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71178, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71179, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71200, longlat, 54000, "+proj=longlat +a=54000 +b=54000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71201, longlat, 54000, "+proj=longlat +a=54000 +b=54000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71210, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71211, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71212, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71213, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71214, sinu, 54000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71215, sinu, 54000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71216, sinu, 54000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71217, sinu, 54000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71218, stere, 54000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71219, stere, 54000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71220, stere, 54000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71221, stere, 54000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71260, sinu, 54000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71261, sinu, 54000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71262, stere, 54000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71263, stere, 54000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71264, tmerc, 54000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71265, tmerc, 54000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71266, ortho, 54000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71267, ortho, 54000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71268, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71269, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71270, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71271, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71272, laea, 54000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71273, laea, 54000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=54000 +b=54000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71274, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71275, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71276, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71277, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71278, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71279, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71300, longlat, 27000, "+proj=longlat +a=27000 +b=27000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71301, longlat, 27000, "+proj=longlat +a=27000 +b=27000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71310, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71311, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71312, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71313, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71314, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71315, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71316, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71317, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71318, stere, 27000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71319, stere, 27000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71320, stere, 27000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71321, stere, 27000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71360, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71361, sinu, 27000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71362, stere, 27000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71363, stere, 27000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71364, tmerc, 27000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71365, tmerc, 27000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71366, ortho, 27000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71367, ortho, 27000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71368, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71369, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71370, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71371, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71372, laea, 27000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71373, laea, 27000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=27000 +b=27000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71374, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71375, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71376, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71377, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71378, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71379, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71400, longlat, 33000, "+proj=longlat +a=33000 +b=33000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71401, longlat, 33000, "+proj=longlat +a=33000 +b=33000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71410, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71411, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71412, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71413, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71414, sinu, 33000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71415, sinu, 33000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71416, sinu, 33000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71417, sinu, 33000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71418, stere, 33000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71419, stere, 33000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71420, stere, 33000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71421, stere, 33000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71460, sinu, 33000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71461, sinu, 33000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71462, stere, 33000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71463, stere, 33000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71464, tmerc, 33000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71465, tmerc, 33000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71466, ortho, 33000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71467, ortho, 33000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71468, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71469, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71470, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71471, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71472, laea, 33000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71473, laea, 33000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=33000 +b=33000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71474, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71475, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71476, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71477, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71478, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71479, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71500, longlat, 77000, "+proj=longlat +a=77000 +b=77000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71501, longlat, 77000, "+proj=longlat +a=77000 +b=77000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71510, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71511, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71512, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71513, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71514, sinu, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71515, sinu, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71516, sinu, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71517, sinu, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71518, stere, 77000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71519, stere, 77000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71520, stere, 77000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71521, stere, 77000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71560, sinu, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71561, sinu, 77000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71562, stere, 77000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71563, stere, 77000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71564, tmerc, 77000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71565, tmerc, 77000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71566, ortho, 77000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71567, ortho, 77000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71568, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71569, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71570, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71571, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71572, laea, 77000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 71573, laea, 77000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=77000 +b=77000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71574, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71575, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71576, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71577, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71578, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 71579, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79900, longlat, 25559000, 24973000, "+proj=longlat +a=25559000 +b=24973000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79901, longlat, 25559000, 24973000, "+proj=longlat +a=25559000 +b=24973000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79914, sinu, 25559000, 24973000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79915, sinu, 25559000, 24973000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79916, sinu, 25559000, 24973000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79917, sinu, 25559000, 24973000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79918, stere, 25559000, 24973000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79919, stere, 25559000, 24973000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79920, stere, 25559000, 24973000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79921, stere, 25559000, 24973000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79960, sinu, 25559000, 24973000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79961, sinu, 25559000, 24973000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79962, stere, 25559000, 24973000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79963, stere, 25559000, 24973000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79964, tmerc, 25559000, 24973000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79965, tmerc, 25559000, 24973000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79966, ortho, 25559000, 24973000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79967, ortho, 25559000, 24973000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79972, laea, 25559000, 24973000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 79973, laea, 25559000, 24973000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=25559000 +b=24973000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 79979, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80100, longlat, 1352600, "+proj=longlat +a=1352600 +b=1352600 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80101, longlat, 1352600, "+proj=longlat +a=1352600 +b=1352600 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80110, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80111, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80112, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80113, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80114, sinu, 1352600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80115, sinu, 1352600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80116, sinu, 1352600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80117, sinu, 1352600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80118, stere, 1352600, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80119, stere, 1352600, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80120, stere, 1352600, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80121, stere, 1352600, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80160, sinu, 1352600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80161, sinu, 1352600, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80162, stere, 1352600, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80163, stere, 1352600, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80164, tmerc, 1352600, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80165, tmerc, 1352600, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80166, ortho, 1352600, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80167, ortho, 1352600, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80168, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80169, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80170, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80171, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80172, laea, 1352600, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80173, laea, 1352600, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1352600 +b=1352600 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80174, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80175, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80176, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80177, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80178, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80179, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80200, longlat, 170000, "+proj=longlat +a=170000 +b=170000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80201, longlat, 170000, "+proj=longlat +a=170000 +b=170000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80210, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80211, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80212, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80213, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80214, sinu, 170000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80215, sinu, 170000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80216, sinu, 170000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80217, sinu, 170000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80218, stere, 170000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80219, stere, 170000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80220, stere, 170000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80221, stere, 170000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80260, sinu, 170000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80261, sinu, 170000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80262, stere, 170000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80263, stere, 170000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80264, tmerc, 170000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80265, tmerc, 170000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80266, ortho, 170000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80267, ortho, 170000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80268, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80269, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80270, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80271, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80272, laea, 170000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80273, laea, 170000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=170000 +b=170000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80274, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80275, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80276, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80277, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80278, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80279, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80300, longlat, 29000, "+proj=longlat +a=29000 +b=29000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80301, longlat, 29000, "+proj=longlat +a=29000 +b=29000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80310, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80311, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80312, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80313, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80314, sinu, 29000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80315, sinu, 29000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80316, sinu, 29000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80317, sinu, 29000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80318, stere, 29000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80319, stere, 29000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80320, stere, 29000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80321, stere, 29000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80360, sinu, 29000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80361, sinu, 29000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80362, stere, 29000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80363, stere, 29000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80364, tmerc, 29000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80365, tmerc, 29000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80366, ortho, 29000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80367, ortho, 29000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80368, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80369, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80370, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80371, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80372, laea, 29000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80373, laea, 29000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=29000 +b=29000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80374, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80375, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80376, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80377, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80378, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80379, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80400, longlat, 40000, "+proj=longlat +a=40000 +b=40000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80401, longlat, 40000, "+proj=longlat +a=40000 +b=40000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80410, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80411, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80412, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80413, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80414, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80415, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80416, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80417, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80418, stere, 40000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80419, stere, 40000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80420, stere, 40000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80421, stere, 40000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80460, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80461, sinu, 40000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80462, stere, 40000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80463, stere, 40000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80464, tmerc, 40000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80465, tmerc, 40000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80466, ortho, 40000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80467, ortho, 40000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80468, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80469, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80470, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80471, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80472, laea, 40000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80473, laea, 40000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=40000 +b=40000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80474, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80475, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80476, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80477, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80478, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80479, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80500, longlat, 74000, "+proj=longlat +a=74000 +b=74000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80501, longlat, 74000, "+proj=longlat +a=74000 +b=74000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80510, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80511, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80512, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80513, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80514, sinu, 74000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80515, sinu, 74000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80516, sinu, 74000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80517, sinu, 74000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80518, stere, 74000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80519, stere, 74000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80520, stere, 74000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80521, stere, 74000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80560, sinu, 74000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80561, sinu, 74000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80562, stere, 74000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80563, stere, 74000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80564, tmerc, 74000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80565, tmerc, 74000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80566, ortho, 74000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80567, ortho, 74000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80568, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80569, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80570, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80571, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80572, laea, 74000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80573, laea, 74000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=74000 +b=74000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80574, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80575, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80576, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80577, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80578, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80579, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80600, longlat, 79000, "+proj=longlat +a=79000 +b=79000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80601, longlat, 79000, "+proj=longlat +a=79000 +b=79000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80610, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80611, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80612, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80613, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80614, sinu, 79000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80615, sinu, 79000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80616, sinu, 79000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80617, sinu, 79000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80618, stere, 79000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80619, stere, 79000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80620, stere, 79000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80621, stere, 79000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80660, sinu, 79000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80661, sinu, 79000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80662, stere, 79000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80663, stere, 79000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80664, tmerc, 79000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80665, tmerc, 79000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80666, ortho, 79000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80667, ortho, 79000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80668, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80669, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80670, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80671, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80672, laea, 79000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80673, laea, 79000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=79000 +b=79000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80674, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80675, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80676, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80677, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80678, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80679, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80700, longlat, 96000, "+proj=longlat +a=96000 +b=96000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80701, longlat, 96000, "+proj=longlat +a=96000 +b=96000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80710, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80711, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80712, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80713, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80714, sinu, 96000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80715, sinu, 96000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80716, sinu, 96000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80717, sinu, 96000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80718, stere, 96000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80719, stere, 96000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80720, stere, 96000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80721, stere, 96000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80760, sinu, 96000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80761, sinu, 96000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80762, stere, 96000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80763, stere, 96000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80764, tmerc, 96000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80765, tmerc, 96000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80766, ortho, 96000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80767, ortho, 96000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80768, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80769, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80770, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80771, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80772, laea, 96000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 80773, laea, 96000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=96000 +b=96000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80774, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80775, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80776, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80777, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80778, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80779, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80800, longlat, 218000, 201000, "+proj=longlat +a=218000 +b=201000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80801, longlat, 218000, 201000, "+proj=longlat +a=218000 +b=201000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80810, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80811, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80812, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80813, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80814, sinu, 218000, 201000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80815, sinu, 218000, 201000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80816, sinu, 218000, 201000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80817, sinu, 218000, 201000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80818, stere, 218000, 201000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80819, stere, 218000, 201000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80820, stere, 218000, 201000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80821, stere, 218000, 201000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80860, sinu, 218000, 201000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80861, sinu, 218000, 201000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80862, stere, 218000, 201000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80863, stere, 218000, 201000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80864, tmerc, 218000, 201000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80865, tmerc, 218000, 201000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80866, ortho, 218000, 201000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80867, ortho, 218000, 201000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80868, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80869, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80870, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80871, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80872, laea, 218000, 201000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 80873, laea, 218000, 201000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=218000 +b=201000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80874, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80875, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80876, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80877, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80878, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 80879, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89900, longlat, 24764000, 24341000, "+proj=longlat +a=24764000 +b=24341000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89901, longlat, 24764000, 24341000, "+proj=longlat +a=24764000 +b=24341000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89914, sinu, 24764000, 24341000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89915, sinu, 24764000, 24341000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89916, sinu, 24764000, 24341000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89917, sinu, 24764000, 24341000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89918, stere, 24764000, 24341000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89919, stere, 24764000, 24341000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89920, stere, 24764000, 24341000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89921, stere, 24764000, 24341000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89960, sinu, 24764000, 24341000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89961, sinu, 24764000, 24341000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89962, stere, 24764000, 24341000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89963, stere, 24764000, 24341000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89964, tmerc, 24764000, 24341000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89965, tmerc, 24764000, 24341000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89966, ortho, 24764000, 24341000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89967, ortho, 24764000, 24341000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89972, laea, 24764000, 24341000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(iau2000, 89973, laea, 24764000, 24341000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=24764000 +b=24341000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 89979, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90100, longlat, 593000, "+proj=longlat +a=593000 +b=593000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90101, longlat, 593000, "+proj=longlat +a=593000 +b=593000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90110, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90111, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90112, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90113, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90114, sinu, 593000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90115, sinu, 593000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90116, sinu, 593000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90117, sinu, 593000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90118, stere, 593000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90119, stere, 593000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90120, stere, 593000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90121, stere, 593000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90160, sinu, 593000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90161, sinu, 593000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90162, stere, 593000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90163, stere, 593000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90164, tmerc, 593000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90165, tmerc, 593000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90166, ortho, 593000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90167, ortho, 593000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90168, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90169, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90170, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90171, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90172, laea, 593000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 90173, laea, 593000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=593000 +b=593000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90174, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90175, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90176, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90177, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90178, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 90179, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99900, longlat, 1195000, "+proj=longlat +a=1195000 +b=1195000 +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99901, longlat, 1195000, "+proj=longlat +a=1195000 +b=1195000 +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99910, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99911, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99912, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99913, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99914, sinu, 1195000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99915, sinu, 1195000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99916, sinu, 1195000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99917, sinu, 1195000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99918, stere, 1195000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99919, stere, 1195000, "+proj=stere +lat_0=90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99920, stere, 1195000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99921, stere, 1195000, "+proj=stere +lat_0=-90 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99960, sinu, 1195000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99961, sinu, 1195000, "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99962, stere, 1195000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99963, stere, 1195000, "+proj=stere +lat_0=0 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99964, tmerc, 1195000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99965, tmerc, 1195000, "+proj=tmerc +lat_0=0 +lon_0=0 +k=0.9996 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99966, ortho, 1195000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99967, ortho, 1195000, "+proj=ortho +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99968, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99969, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99970, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99971, "") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99972, laea, 1195000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S (iau2000, 99973, laea, 1195000, "+proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +a=1195000 +b=1195000 +units=m +no_defs") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99974, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99975, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99976, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99977, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99978, "") +//BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS (iau2000, 99979, "") + +} // namespace detail +#endif // DOXYGEN_NO_DETAIL + +}}} // namespace boost::geometry::projections + + +#endif + diff --git a/boost/geometry/srs/projections/impl/aasincos.hpp b/boost/geometry/srs/projections/impl/aasincos.hpp new file mode 100644 index 0000000000..4678029bc0 --- /dev/null +++ b/boost/geometry/srs/projections/impl/aasincos.hpp @@ -0,0 +1,114 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_AASINCOS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_AASINCOS_HPP + + +#include <cmath> + +#include <boost/geometry/util/math.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + +namespace detail +{ + +namespace aasincos +{ + template <typename T> + inline T ONE_TOL() { return 1.00000000000001; } + //template <typename T> + //inline T TOL() { return 0.000000001; } + template <typename T> + inline T ATOL() { return 1e-50; } +} + +template <typename T> +inline T aasin(T const& v) +{ + T av = 0; + + if ((av = geometry::math::abs(v)) >= 1.0) + { + if (av > aasincos::ONE_TOL<T>()) + { + BOOST_THROW_EXCEPTION( projection_exception(-19) ); + } + return (v < 0.0 ? -geometry::math::half_pi<T>() : geometry::math::half_pi<T>()); + } + + return asin(v); +} + +template <typename T> +inline T aacos(T const& v) +{ + T av = 0; + + if ((av = geometry::math::abs(v)) >= 1.0) + { + if (av > aasincos::ONE_TOL<T>()) + { + BOOST_THROW_EXCEPTION( projection_exception(-19) ); + } + return (v < 0.0 ? geometry::math::pi<T>() : 0.0); + } + + return acos(v); +} + +template <typename T> +inline T asqrt(T const& v) +{ + return ((v <= 0) ? 0 : sqrt(v)); +} + +template <typename T> +inline T aatan2(T const& n, T const& d) +{ + return ((geometry::math::abs(n) < aasincos::ATOL<T>() + && geometry::math::abs(d) < aasincos::ATOL<T>()) ? 0.0 : atan2(n, d)); +} + + +} // namespace detail + + +}}} // namespace boost::geometry::projections + + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_AASINCOS_HPP diff --git a/boost/geometry/srs/projections/impl/adjlon.hpp b/boost/geometry/srs/projections/impl/adjlon.hpp new file mode 100644 index 0000000000..7f0c9ac4ca --- /dev/null +++ b/boost/geometry/srs/projections/impl/adjlon.hpp @@ -0,0 +1,70 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_ADJLON_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_ADJLON_HPP + +#include <boost/math/constants/constants.hpp> +#include <boost/geometry/util/math.hpp> + +namespace boost { namespace geometry { namespace projections +{ + +namespace detail +{ + +/* reduce argument to range +/- PI */ +template <typename T> +inline T adjlon (T lon) +{ + if (geometry::math::abs(lon) <= boost::math::constants::pi<T>()) + { + return lon; + } + + /* adjust to 0..2pi rad */ + lon += boost::math::constants::pi<T>(); + /* remove integral # of 'revolutions'*/ + lon -= boost::math::constants::two_pi<T>() * + std::floor(lon / boost::math::constants::two_pi<T>()); + /* adjust back to -pi..pi rad */ + lon -= boost::math::constants::pi<T>(); + + return lon; +} + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_ADJLON_HPP diff --git a/boost/geometry/srs/projections/impl/base_dynamic.hpp b/boost/geometry/srs/projections/impl/base_dynamic.hpp new file mode 100644 index 0000000000..3979c34300 --- /dev/null +++ b/boost/geometry/srs/projections/impl/base_dynamic.hpp @@ -0,0 +1,151 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) + +// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_BASE_DYNAMIC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_BASE_DYNAMIC_HPP + +#include <string> + +#include <boost/geometry/srs/projections/impl/projects.hpp> + +namespace boost { namespace geometry { namespace projections +{ + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + +/*! + \brief projection virtual base class + \details class containing virtual methods + \ingroup projection + \tparam CT calculation type + \tparam P parameters type +*/ +template <typename CT, typename P> +class base_v +{ +public : + /// Forward projection, from Latitude-Longitude to Cartesian + template <typename LL, typename XY> + inline bool forward(LL const& lp, XY& xy) const + { + try + { + pj_fwd(*this, this->params(), lp, xy); + return true; + } + catch (...) + { + return false; + } + } + + /// Inverse projection, from Cartesian to Latitude-Longitude + template <typename LL, typename XY> + inline bool inverse(XY const& xy, LL& lp) const + { + try + { + pj_inv(*this, this->params(), xy, lp); + return true; + } + catch (projection_not_invertible_exception &) + { + BOOST_RETHROW + } + catch (...) + { + return false; + } + } + + /// Forward projection using lon / lat and x / y separately + virtual void fwd(CT& lp_lon, CT& lp_lat, CT& xy_x, CT& xy_y) const = 0; + + /// Inverse projection using x / y and lon / lat + virtual void inv(CT& xy_x, CT& xy_y, CT& lp_lon, CT& lp_lat) const = 0; + + /// Returns name of projection + virtual std::string name() const = 0; + + /// Returns parameters of projection + virtual P const& params() const = 0; + + /// Returns mutable parameters of projection + virtual P& mutable_params() = 0; + + virtual ~base_v() {} +}; + +// Base-virtual-forward +template <typename Prj, typename CT, typename P> +class base_v_f : public base_v<CT, P> +{ +public: + base_v_f(P const& params) + : m_proj(params) + {} + + template <typename ProjP> + base_v_f(P const& params, ProjP const& proj_params) + : m_proj(params, proj_params) + {} + + virtual void fwd(CT& lp_lon, CT& lp_lat, CT& xy_x, CT& xy_y) const + { + m_proj.fwd(lp_lon, lp_lat, xy_x, xy_y); + } + + virtual void inv(CT& , CT& , CT& , CT& ) const + { + BOOST_THROW_EXCEPTION(projection_not_invertible_exception(params().name)); + } + + virtual std::string name() const { return m_proj.name(); } + + virtual P const& params() const { return m_proj.params(); } + + virtual P& mutable_params() { return m_proj.mutable_params(); } + +protected: + Prj m_proj; +}; + +// Base-virtual-forward/inverse +template <typename Prj, typename CT, typename P> +class base_v_fi : public base_v_f<Prj, CT, P> +{ + typedef base_v_f<Prj, CT, P> base_t; + +public: + base_v_fi(P const& params) + : base_t(params) + {} + + template <typename ProjP> + base_v_fi(P const& params, ProjP const& proj_params) + : base_t(params, proj_params) + {} + + virtual void inv(CT& xy_x, CT& xy_y, CT& lp_lon, CT& lp_lat) const + { + this->m_proj.inv(xy_x, xy_y, lp_lon, lp_lat); + } +}; + +} // namespace detail +#endif // DOXYGEN_NO_DETAIL + +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_BASE_DYNAMIC_HPP diff --git a/boost/geometry/srs/projections/impl/base_static.hpp b/boost/geometry/srs/projections/impl/base_static.hpp new file mode 100644 index 0000000000..aa205bcee5 --- /dev/null +++ b/boost/geometry/srs/projections/impl/base_static.hpp @@ -0,0 +1,139 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) + +// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_BASE_STATIC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_BASE_STATIC_HPP + +#if defined(_MSC_VER) +// For CRTP, *this is acceptable in constructor -> turn warning off +#pragma warning( disable : 4355 ) +#endif // defined(_MSC_VER) + + +#include <string> + +#include <boost/geometry/core/tags.hpp> + +#include <boost/geometry/srs/projections/impl/pj_fwd.hpp> +#include <boost/geometry/srs/projections/impl/pj_inv.hpp> + +#include <boost/mpl/assert.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + +template <typename Prj, typename CSTag, typename BGP, typename CT, typename P> +struct static_projection_type +{ + BOOST_MPL_ASSERT_MSG((false), + NOT_IMPLEMENTED_FOR_THIS_PROJECTION_OR_CSTAG, + (Prj, CSTag)); +}; + +#define BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(PROJ, P_SPHERE, P_SPHEROID) \ +template <typename BGP, typename CT, typename P> \ +struct static_projection_type<PROJ, srs_sphere_tag, BGP, CT, P> \ +{ \ + typedef P_SPHERE<CT, P> type; \ +}; \ +template <typename BGP, typename CT, typename P> \ +struct static_projection_type<PROJ, srs_spheroid_tag, BGP, CT, P> \ +{ \ + typedef P_SPHEROID<CT, P> type; \ +}; \ + +// Base-template-forward +template <typename Prj, typename CT, typename P> +struct base_t_f +{ +public: + + inline base_t_f(Prj const& prj, P const& params) + : m_par(params), m_prj(prj) + {} + + inline P const& params() const { return m_par; } + + inline P& mutable_params() { return m_par; } + + template <typename LL, typename XY> + inline bool forward(LL const& lp, XY& xy) const + { + try + { + pj_fwd(m_prj, m_par, lp, xy); + return true; + } + catch(...) + { + return false; + } + } + + template <typename XY, typename LL> + inline bool inverse(XY const& , LL& ) const + { + BOOST_MPL_ASSERT_MSG((false), + PROJECTION_IS_NOT_INVERTABLE, + (Prj)); + return false; + } + + inline std::string name() const + { + return this->m_par.name; + } + +protected: + + P m_par; + const Prj& m_prj; +}; + +// Base-template-forward/inverse +template <typename Prj, typename CT, typename P> +struct base_t_fi : public base_t_f<Prj, CT, P> +{ +public : + inline base_t_fi(Prj const& prj, P const& params) + : base_t_f<Prj, CT, P>(prj, params) + {} + + template <typename XY, typename LL> + inline bool inverse(XY const& xy, LL& lp) const + { + try + { + pj_inv(this->m_prj, this->m_par, xy, lp); + return true; + } + catch(...) + { + return false; + } + } +}; + +} // namespace detail +#endif // DOXYGEN_NO_DETAIL + + +}}} // namespace boost::geometry::projections + + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_BASE_STATIC_HPP diff --git a/boost/geometry/srs/projections/impl/dms_parser.hpp b/boost/geometry/srs/projections/impl/dms_parser.hpp new file mode 100644 index 0000000000..bbecc9b1a2 --- /dev/null +++ b/boost/geometry/srs/projections/impl/dms_parser.hpp @@ -0,0 +1,278 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) + +// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_SRS_PROJECTIONS_IMPL_DMS_PARSER_HPP +#define BOOST_GEOMETRY_SRS_PROJECTIONS_IMPL_DMS_PARSER_HPP + +// This file is totally revised from PROJ4 dmstor.c + +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <string> + +#include <boost/static_assert.hpp> + +#if !defined(BOOST_GEOMETRY_NO_LEXICAL_CAST) +#include <boost/lexical_cast.hpp> +#endif // !defined(BOOST_GEOMETRY_NO_LEXICAL_CAST) + +#include <boost/algorithm/string.hpp> + +#include <boost/config.hpp> + +#include <boost/geometry/core/cs.hpp> + +#include <boost/geometry/util/math.hpp> + +namespace boost { namespace geometry { namespace projections +{ + +namespace detail +{ + +template <typename T> +struct dms_result +{ + enum axis_selector {axis_lat = 1, axis_lon = 0}; + + private : + T m_angle; + axis_selector m_axis; + + public : + + explicit dms_result(T const& v, axis_selector ax) + : m_angle(v) + , m_axis(ax) + {} + + inline axis_selector axis() const { return m_axis; } + + inline T angle() const { return m_angle; } + + template <typename CH, typename TR> + inline friend std::basic_ostream<CH, TR>& operator<<(std::basic_ostream<CH, TR>& os, + const dms_result& d) + { + os << d.m_angle; + return os; + } + +}; + + +template <typename T + , bool as_radian = true + , char N = 'N', char E = 'E', char S = 'S', char W = 'W' // translatable + , char MIN = '\'', char SEC = '"' // other char's possible + , char D = 'D', char R = 'R' // degree sign might be small o + > +struct dms_parser +{ + + + // Question from Barend: can we compile-time select that it is case-sensitive/case-insensitive? + // We have to change the switch then -> specializations + + // For now: make it (compile-time) case sensitive + static const int diff = 'a' - 'A'; +#ifndef __GNUC__ + BOOST_STATIC_ASSERT((diff > 0)); // make sure we've the right assumption. GCC does not accept this here. +#endif + static const char n_alter = N <= 'Z' ? N + diff : N - diff; + static const char e_alter = E <= 'Z' ? E + diff : E - diff; + static const char s_alter = S <= 'Z' ? S + diff : S - diff; + static const char w_alter = W <= 'Z' ? W + diff : W - diff; + + static const char r_alter = R <= 'Z' ? R + diff : R - diff; + + // degree is normally D (proj4) but might be superscript o + // Note d_alter is not correct then, so map it to NULL now, guarded by the while + static const char d_alter = + ((D >= 'A' && D <= 'Z') || (D >= 'a' && D <= 'z')) ? (D <= 'Z' ? D + diff : D - diff) : '\0'; + + + struct dms_value + { + T dms[3]; + bool has_dms[3]; + + dms_value() +#ifndef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX + : dms{0, 0, 0} + , has_dms{false, false, false} +#endif + { +#ifdef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX + std::fill(dms, dms + 3, T(0)); + std::fill(has_dms, has_dms + 3, false); +#endif + } + }; + + + template <size_t I> + static inline void assign_dms(dms_value& dms, std::string& value, bool& has_value) + { +#if !defined(BOOST_GEOMETRY_NO_LEXICAL_CAST) + dms.dms[I] = boost::lexical_cast<T>(value.c_str()); +#else // !defined(BOOST_GEOMETRY_NO_LEXICAL_CAST) + dms.dms[I] = std::atof(value.c_str()); +#endif // !defined(BOOST_GEOMETRY_NO_LEXICAL_CAST) + dms.has_dms[I] = true; + has_value = false; + value.clear(); + } + + static inline void process(dms_value& dms, std::string& value, bool& has_value) + { + if (has_value) + { + // Assign last one, sequentially + if (! dms.has_dms[0]) assign_dms<0>(dms, value, has_value); + else if (! dms.has_dms[1]) assign_dms<1>(dms, value, has_value); + else if (! dms.has_dms[2]) assign_dms<2>(dms, value, has_value); + } + } + + dms_result<T> apply(std::string const& is) const + { + return apply(is.c_str()); + } + + dms_result<T> apply(const char* is) const + { + dms_value dms; + bool has_value = false; + std::string value; + + T factor = 1.0; // + denotes N/E values, -1 denotes S/W values + typename dms_result<T>::axis_selector axis = dms_result<T>::axis_lon; // true denotes N/S values + bool in_radian = false; // true denotes values as "0.1R" + + while(*is) + { + switch(*is) + { + case '-' : + if (! has_value && ! dms.has_dms[0]) + { + factor = -factor; + } + break; + case N : + case n_alter : + axis = dms_result<T>::axis_lat; + break; + case S : + case s_alter : + axis = dms_result<T>::axis_lat; + factor = -factor; + break; + case E : + case e_alter : + axis = dms_result<T>::axis_lon; + break; + case W : + case w_alter : + axis = dms_result<T>::axis_lon; + factor = -factor; + break; + case D : + case d_alter : + if (! dms.has_dms[0] && has_value) + { + assign_dms<0>(dms, value, has_value); + } + break; + case R : + case r_alter : + if (! dms.has_dms[0] && has_value) + { + // specified value is in radian! + in_radian = true; + assign_dms<0>(dms, value, has_value); + } + break; + case MIN: + if (! dms.has_dms[1] && has_value) + { + assign_dms<1>(dms, value, has_value); + } + break; + case SEC : + if (! dms.has_dms[2] && has_value) + { + assign_dms<2>(dms, value, has_value); + } + break; + case ' ' : + case '\t' : + case '\n' : + process(dms, value, has_value); + break; + default : + value += *is; + has_value = true; + break; + } + is++; + } + + // Assign last one, if any + process(dms, value, has_value); + + T const d2r = math::d2r<T>(); + T const r2d = math::r2d<T>(); + + return dms_result<T>(factor * + (in_radian && as_radian + ? dms.dms[0] + : in_radian && ! as_radian + ? dms.dms[0] * r2d + : ! in_radian && as_radian + ? dms.dms[0] * d2r + dms.dms[1] * d2r / 60.0 + dms.dms[2] * d2r / 3600.0 + : dms.dms[0] + dms.dms[1] / 60.0 + dms.dms[2] / 3600.0) + , axis); + } +}; + + +} // namespace detail + + +}}} // namespace boost::geometry::projections + + +#endif // BOOST_GEOMETRY_SRS_PROJECTIONS_IMPL_DMS_PARSER_HPP diff --git a/boost/geometry/srs/projections/impl/factory_entry.hpp b/boost/geometry/srs/projections/impl/factory_entry.hpp new file mode 100644 index 0000000000..7c587af5b6 --- /dev/null +++ b/boost/geometry/srs/projections/impl/factory_entry.hpp @@ -0,0 +1,51 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) + +// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_FACTORY_ENTRY_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_FACTORY_ENTRY_HPP + +#include <string> + +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> + +namespace boost { namespace geometry { namespace projections +{ + +namespace detail +{ + +// forward declaration needed by some projections +template <typename CT, typename Parameters> +class factory; + +template <typename CT, typename P> +class factory_entry +{ +public: + + virtual ~factory_entry() {} + virtual base_v<CT, P>* create_new(P const& par) const = 0; +}; + +template <typename CT, typename P> +class base_factory +{ +public: + + virtual ~base_factory() {} + virtual void add_to_factory(std::string const& name, factory_entry<CT, P>* sub) = 0; +}; + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_FACTORY_ENTRY_HPP diff --git a/boost/geometry/srs/projections/impl/function_overloads.hpp b/boost/geometry/srs/projections/impl/function_overloads.hpp new file mode 100644 index 0000000000..43d33c6bea --- /dev/null +++ b/boost/geometry/srs/projections/impl/function_overloads.hpp @@ -0,0 +1,46 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) + +// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_FUNCTION_OVERLOADS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_FUNCTION_OVERLOADS_HPP + +#include <cmath> + +namespace boost { namespace geometry { namespace projections +{ + +// Functions to resolve ambiguity when compiling with coordinates of different types +/* +template <typename T> +inline T atan2(T const& a, T const& b) +{ + using std::atan2; + return atan2(a, b); +} +template <typename T> +inline T pow(T const& a, T const& b) +{ + using std::pow; + return pow(a, b); +} +*/ + +template <typename T> +inline int int_floor(T const& f) +{ + using std::floor; + return int(floor(f)); +} + +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_FUNCTION_OVERLOADS_HPP diff --git a/boost/geometry/srs/projections/impl/geocent.hpp b/boost/geometry/srs/projections/impl/geocent.hpp new file mode 100644 index 0000000000..8ae2f393ce --- /dev/null +++ b/boost/geometry/srs/projections/impl/geocent.hpp @@ -0,0 +1,487 @@ +// Boost.Geometry +// This file is manually converted from PROJ4 + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// This file was converted to Geometry Library by Adam Wulkiewicz + +// Original copyright notice: + +/***************************************************************************/ +/* RSC IDENTIFIER: GEOCENTRIC + * + * ABSTRACT + * + * This component provides conversions between Geodetic coordinates (latitude, + * longitude in radians and height in meters) and Geocentric coordinates + * (X, Y, Z) in meters. + * + * ERROR HANDLING + * + * This component checks parameters for valid values. If an invalid value + * is found, the error code is combined with the current error code using + * the bitwise or. This combining allows multiple error codes to be + * returned. The possible error codes are: + * + * GEOCENT_NO_ERROR : No errors occurred in function + * GEOCENT_LAT_ERROR : Latitude out of valid range + * (-90 to 90 degrees) + * GEOCENT_LON_ERROR : Longitude out of valid range + * (-180 to 360 degrees) + * GEOCENT_A_ERROR : Semi-major axis lessthan or equal to zero + * GEOCENT_B_ERROR : Semi-minor axis lessthan or equal to zero + * GEOCENT_A_LESS_B_ERROR : Semi-major axis less than semi-minor axis + * + * + * REUSE NOTES + * + * GEOCENTRIC is intended for reuse by any application that performs + * coordinate conversions between geodetic coordinates and geocentric + * coordinates. + * + * + * REFERENCES + * + * An Improved Algorithm for Geocentric to Geodetic Coordinate Conversion, + * Ralph Toms, February 1996 UCRL-JC-123138. + * + * Further information on GEOCENTRIC can be found in the Reuse Manual. + * + * GEOCENTRIC originated from : U.S. Army Topographic Engineering Center + * Geospatial Information Division + * 7701 Telegraph Road + * Alexandria, VA 22310-3864 + * + * LICENSES + * + * None apply to this component. + * + * RESTRICTIONS + * + * GEOCENTRIC has no restrictions. + * + * ENVIRONMENT + * + * GEOCENTRIC was tested and certified in the following environments: + * + * 1. Solaris 2.5 with GCC version 2.8.1 + * 2. Windows 95 with MS Visual C++ version 6 + * + * MODIFICATIONS + * + * Date Description + * ---- ----------- + * 25-02-97 Original Code + * + */ + + +#ifndef BOOST_GEOMETRY_SRS_PROJECTIONS_IMPL_GEOCENT_HPP +#define BOOST_GEOMETRY_SRS_PROJECTIONS_IMPL_GEOCENT_HPP + + +#include <boost/geometry/util/math.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + +namespace detail +{ + +/***************************************************************************/ +/* + * DEFINES + */ +static const long GEOCENT_NO_ERROR = 0x0000; +static const long GEOCENT_LAT_ERROR = 0x0001; +static const long GEOCENT_LON_ERROR = 0x0002; +static const long GEOCENT_A_ERROR = 0x0004; +static const long GEOCENT_B_ERROR = 0x0008; +static const long GEOCENT_A_LESS_B_ERROR = 0x0010; + +template <typename T> +struct GeocentricInfo +{ + T Geocent_a; /* Semi-major axis of ellipsoid in meters */ + T Geocent_b; /* Semi-minor axis of ellipsoid */ + T Geocent_a2; /* Square of semi-major axis */ + T Geocent_b2; /* Square of semi-minor axis */ + T Geocent_e2; /* Eccentricity squared */ + T Geocent_ep2; /* 2nd eccentricity squared */ +}; + +template <typename T> +inline T COS_67P5() +{ + /*return 0.38268343236508977*/; + return cos(T(67.5) * math::d2r<T>()); /* cosine of 67.5 degrees */ +} +template <typename T> +inline T AD_C() +{ + return 1.0026000; /* Toms region 1 constant */ +} + + +/***************************************************************************/ +/* + * FUNCTIONS + */ + +template <typename T> +inline long pj_Set_Geocentric_Parameters (GeocentricInfo<T> & gi, T const& a, T const& b) + +{ /* BEGIN Set_Geocentric_Parameters */ +/* + * The function Set_Geocentric_Parameters receives the ellipsoid parameters + * as inputs and sets the corresponding state variables. + * + * a : Semi-major axis, in meters. (input) + * b : Semi-minor axis, in meters. (input) + */ + long Error_Code = GEOCENT_NO_ERROR; + + if (a <= 0.0) + Error_Code |= GEOCENT_A_ERROR; + if (b <= 0.0) + Error_Code |= GEOCENT_B_ERROR; + if (a < b) + Error_Code |= GEOCENT_A_LESS_B_ERROR; + if (!Error_Code) + { + gi.Geocent_a = a; + gi.Geocent_b = b; + gi.Geocent_a2 = a * a; + gi.Geocent_b2 = b * b; + gi.Geocent_e2 = (gi.Geocent_a2 - gi.Geocent_b2) / gi.Geocent_a2; + gi.Geocent_ep2 = (gi.Geocent_a2 - gi.Geocent_b2) / gi.Geocent_b2; + } + return (Error_Code); +} /* END OF Set_Geocentric_Parameters */ + + +template <typename T> +inline void pj_Get_Geocentric_Parameters (GeocentricInfo<T> const& gi, + T & a, + T & b) +{ /* BEGIN Get_Geocentric_Parameters */ +/* + * The function Get_Geocentric_Parameters returns the ellipsoid parameters + * to be used in geocentric coordinate conversions. + * + * a : Semi-major axis, in meters. (output) + * b : Semi-minor axis, in meters. (output) + */ + + a = gi.Geocent_a; + b = gi.Geocent_b; +} /* END OF Get_Geocentric_Parameters */ + + +template <typename T> +inline long pj_Convert_Geodetic_To_Geocentric (GeocentricInfo<T> const& gi, + T Longitude, T Latitude, T Height, + T & X, T & Y, T & Z) +{ /* BEGIN Convert_Geodetic_To_Geocentric */ +/* + * The function Convert_Geodetic_To_Geocentric converts geodetic coordinates + * (latitude, longitude, and height) to geocentric coordinates (X, Y, Z), + * according to the current ellipsoid parameters. + * + * Latitude : Geodetic latitude in radians (input) + * Longitude : Geodetic longitude in radians (input) + * Height : Geodetic height, in meters (input) + * X : Calculated Geocentric X coordinate, in meters (output) + * Y : Calculated Geocentric Y coordinate, in meters (output) + * Z : Calculated Geocentric Z coordinate, in meters (output) + * + */ + long Error_Code = GEOCENT_NO_ERROR; + T Rn; /* Earth radius at location */ + T Sin_Lat; /* sin(Latitude) */ + T Sin2_Lat; /* Square of sin(Latitude) */ + T Cos_Lat; /* cos(Latitude) */ + + static const T PI = math::pi<T>(); + static const T PI_OVER_2 = math::half_pi<T>(); + + /* + ** Don't blow up if Latitude is just a little out of the value + ** range as it may just be a rounding issue. Also removed longitude + ** test, it should be wrapped by cos() and sin(). NFW for PROJ.4, Sep/2001. + */ + if( Latitude < -PI_OVER_2 && Latitude > -1.001 * PI_OVER_2 ) + Latitude = -PI_OVER_2; + else if( Latitude > PI_OVER_2 && Latitude < 1.001 * PI_OVER_2 ) + Latitude = PI_OVER_2; + else if ((Latitude < -PI_OVER_2) || (Latitude > PI_OVER_2)) + { /* Latitude out of range */ + Error_Code |= GEOCENT_LAT_ERROR; + } + + if (!Error_Code) + { /* no errors */ + if (Longitude > PI) + Longitude -= (2*PI); + Sin_Lat = sin(Latitude); + Cos_Lat = cos(Latitude); + Sin2_Lat = Sin_Lat * Sin_Lat; + Rn = gi.Geocent_a / (sqrt(1.0e0 - gi.Geocent_e2 * Sin2_Lat)); + X = (Rn + Height) * Cos_Lat * cos(Longitude); + Y = (Rn + Height) * Cos_Lat * sin(Longitude); + Z = ((Rn * (1 - gi.Geocent_e2)) + Height) * Sin_Lat; + } + return (Error_Code); +} /* END OF Convert_Geodetic_To_Geocentric */ + +/* + * The function Convert_Geocentric_To_Geodetic converts geocentric + * coordinates (X, Y, Z) to geodetic coordinates (latitude, longitude, + * and height), according to the current ellipsoid parameters. + * + * X : Geocentric X coordinate, in meters. (input) + * Y : Geocentric Y coordinate, in meters. (input) + * Z : Geocentric Z coordinate, in meters. (input) + * Latitude : Calculated latitude value in radians. (output) + * Longitude : Calculated longitude value in radians. (output) + * Height : Calculated height value, in meters. (output) + */ + +#define BOOST_GEOMETRY_PROJECTIONS_USE_ITERATIVE_METHOD + +template <typename T> +inline void pj_Convert_Geocentric_To_Geodetic (GeocentricInfo<T> const& gi, + T X, T Y, T Z, + T & Longitude, T & Latitude, T & Height) +{ /* BEGIN Convert_Geocentric_To_Geodetic */ + + static const T PI_OVER_2 = math::half_pi<T>(); + +#if !defined(BOOST_GEOMETRY_PROJECTIONS_USE_ITERATIVE_METHOD) + + static const T COS_67P5 = detail::COS_67P5<T>(); + static const T AD_C = detail::AD_C<T>(); + +/* + * The method used here is derived from 'An Improved Algorithm for + * Geocentric to Geodetic Coordinate Conversion', by Ralph Toms, Feb 1996 + */ + +/* Note: Variable names follow the notation used in Toms, Feb 1996 */ + + T W; /* distance from Z axis */ + T W2; /* square of distance from Z axis */ + T T0; /* initial estimate of vertical component */ + T T1; /* corrected estimate of vertical component */ + T S0; /* initial estimate of horizontal component */ + T S1; /* corrected estimate of horizontal component */ + T Sin_B0; /* sin(B0), B0 is estimate of Bowring aux variable */ + T Sin3_B0; /* cube of sin(B0) */ + T Cos_B0; /* cos(B0) */ + T Sin_p1; /* sin(phi1), phi1 is estimated latitude */ + T Cos_p1; /* cos(phi1) */ + T Rn; /* Earth radius at location */ + T Sum; /* numerator of cos(phi1) */ + bool At_Pole; /* indicates location is in polar region */ + + At_Pole = false; + if (X != 0.0) + { + Longitude = atan2(Y,X); + } + else + { + if (Y > 0) + { + Longitude = PI_OVER_2; + } + else if (Y < 0) + { + Longitude = -PI_OVER_2; + } + else + { + At_Pole = true; + Longitude = 0.0; + if (Z > 0.0) + { /* north pole */ + Latitude = PI_OVER_2; + } + else if (Z < 0.0) + { /* south pole */ + Latitude = -PI_OVER_2; + } + else + { /* center of earth */ + Latitude = PI_OVER_2; + Height = -Geocent_b; + return; + } + } + } + W2 = X*X + Y*Y; + W = sqrt(W2); + T0 = Z * AD_C; + S0 = sqrt(T0 * T0 + W2); + Sin_B0 = T0 / S0; + Cos_B0 = W / S0; + Sin3_B0 = Sin_B0 * Sin_B0 * Sin_B0; + T1 = Z + gi.Geocent_b * gi.Geocent_ep2 * Sin3_B0; + Sum = W - gi.Geocent_a * gi.Geocent_e2 * Cos_B0 * Cos_B0 * Cos_B0; + S1 = sqrt(T1*T1 + Sum * Sum); + Sin_p1 = T1 / S1; + Cos_p1 = Sum / S1; + Rn = gi.Geocent_a / sqrt(1.0 - gi.Geocent_e2 * Sin_p1 * Sin_p1); + if (Cos_p1 >= COS_67P5) + { + Height = W / Cos_p1 - Rn; + } + else if (Cos_p1 <= -COS_67P5) + { + Height = W / -Cos_p1 - Rn; + } + else + { + Height = Z / Sin_p1 + Rn * (gi.Geocent_e2 - 1.0); + } + if (At_Pole == false) + { + Latitude = atan(Sin_p1 / Cos_p1); + } +#else /* defined(BOOST_GEOMETRY_PROJECTIONS_USE_ITERATIVE_METHOD) */ +/* +* Reference... +* ============ +* Wenzel, H.-G.(1985): Hochauflösende Kugelfunktionsmodelle für +* das Gravitationspotential der Erde. Wiss. Arb. Univ. Hannover +* Nr. 137, p. 130-131. + +* Programmed by GGA- Leibniz-Institute of Applied Geophysics +* Stilleweg 2 +* D-30655 Hannover +* Federal Republic of Germany +* Internet: www.gga-hannover.de +* +* Hannover, March 1999, April 2004. +* see also: comments in statements +* remarks: +* Mathematically exact and because of symmetry of rotation-ellipsoid, +* each point (X,Y,Z) has at least two solutions (Latitude1,Longitude1,Height1) and +* (Latitude2,Longitude2,Height2). Is point=(0.,0.,Z) (P=0.), so you get even +* four solutions, every two symmetrical to the semi-minor axis. +* Here Height1 and Height2 have at least a difference in order of +* radius of curvature (e.g. (0,0,b)=> (90.,0.,0.) or (-90.,0.,-2b); +* (a+100.)*(sqrt(2.)/2.,sqrt(2.)/2.,0.) => (0.,45.,100.) or +* (0.,225.,-(2a+100.))). +* The algorithm always computes (Latitude,Longitude) with smallest |Height|. +* For normal computations, that means |Height|<10000.m, algorithm normally +* converges after to 2-3 steps!!! +* But if |Height| has the amount of length of ellipsoid's axis +* (e.g. -6300000.m), algorithm needs about 15 steps. +*/ + +/* local definitions and variables */ +/* end-criterium of loop, accuracy of sin(Latitude) */ +static const T genau = 1.E-12; +static const T genau2 = (genau*genau); +static const int maxiter = 30; + + T P; /* distance between semi-minor axis and location */ + T RR; /* distance between center and location */ + T CT; /* sin of geocentric latitude */ + T ST; /* cos of geocentric latitude */ + T RX; + T RK; + T RN; /* Earth radius at location */ + T CPHI0; /* cos of start or old geodetic latitude in iterations */ + T SPHI0; /* sin of start or old geodetic latitude in iterations */ + T CPHI; /* cos of searched geodetic latitude */ + T SPHI; /* sin of searched geodetic latitude */ + T SDPHI; /* end-criterium: addition-theorem of sin(Latitude(iter)-Latitude(iter-1)) */ + int iter; /* # of continuous iteration, max. 30 is always enough (s.a.) */ + + P = sqrt(X*X+Y*Y); + RR = sqrt(X*X+Y*Y+Z*Z); + +/* special cases for latitude and longitude */ + if (P/gi.Geocent_a < genau) { + +/* special case, if P=0. (X=0., Y=0.) */ + Longitude = 0.; + +/* if (X,Y,Z)=(0.,0.,0.) then Height becomes semi-minor axis + * of ellipsoid (=center of mass), Latitude becomes PI/2 */ + if (RR/gi.Geocent_a < genau) { + Latitude = PI_OVER_2; + Height = -gi.Geocent_b; + return ; + + } + } + else { +/* ellipsoidal (geodetic) longitude + * interval: -PI < Longitude <= +PI */ + Longitude=atan2(Y,X); + } + +/* -------------------------------------------------------------- + * Following iterative algorithm was developed by + * "Institut für Erdmessung", University of Hannover, July 1988. + * Internet: www.ife.uni-hannover.de + * Iterative computation of CPHI,SPHI and Height. + * Iteration of CPHI and SPHI to 10**-12 radian resp. + * 2*10**-7 arcsec. + * -------------------------------------------------------------- + */ + CT = Z/RR; + ST = P/RR; + RX = 1.0/sqrt(1.0-gi.Geocent_e2*(2.0-gi.Geocent_e2)*ST*ST); + CPHI0 = ST*(1.0-gi.Geocent_e2)*RX; + SPHI0 = CT*RX; + iter = 0; + +/* loop to find sin(Latitude) resp. Latitude + * until |sin(Latitude(iter)-Latitude(iter-1))| < genau */ + do + { + iter++; + RN = gi.Geocent_a/sqrt(1.0-gi.Geocent_e2*SPHI0*SPHI0); + +/* ellipsoidal (geodetic) height */ + Height = P*CPHI0+Z*SPHI0-RN*(1.0-gi.Geocent_e2*SPHI0*SPHI0); + + RK = gi.Geocent_e2*RN/(RN+Height); + RX = 1.0/sqrt(1.0-RK*(2.0-RK)*ST*ST); + CPHI = ST*(1.0-RK)*RX; + SPHI = CT*RX; + SDPHI = SPHI*CPHI0-CPHI*SPHI0; + CPHI0 = CPHI; + SPHI0 = SPHI; + } + while (SDPHI*SDPHI > genau2 && iter < maxiter); + +/* ellipsoidal (geodetic) latitude */ + Latitude=atan(SPHI/fabs(CPHI)); + + return; +#endif /* defined(BOOST_GEOMETRY_PROJECTIONS_USE_ITERATIVE_METHOD) */ +} /* END OF Convert_Geocentric_To_Geodetic */ + + +} // namespace detail + + +}}} // namespace boost::geometry::projections + + +#endif // BOOST_GEOMETRY_SRS_PROJECTIONS_IMPL_GEOCENT_HPP diff --git a/boost/geometry/srs/projections/impl/pj_auth.hpp b/boost/geometry/srs/projections/impl/pj_auth.hpp new file mode 100644 index 0000000000..899d0b25b1 --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_auth.hpp @@ -0,0 +1,95 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_AUTH_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_AUTH_HPP + +#include <cassert> +#include <cmath> + +#include <boost/geometry/core/assert.hpp> + +namespace boost { namespace geometry { namespace projections { + +namespace detail { + +static const int APA_SIZE = 3; + +/* determine latitude from authalic latitude */ +template <typename T> +inline bool pj_authset(T const& es, T* APA) +{ + BOOST_GEOMETRY_ASSERT(0 != APA); + + static const T P00 = .33333333333333333333; + static const T P01 = .17222222222222222222; + static const T P02 = .10257936507936507936; + static const T P10 = .06388888888888888888; + static const T P11 = .06640211640211640211; + static const T P20 = .01641501294219154443; + + T t = 0; + + // if (APA = (double *)pj_malloc(APA_SIZE * sizeof(double))) + { + APA[0] = es * P00; + t = es * es; + APA[0] += t * P01; + APA[1] = t * P10; + t *= es; + APA[0] += t * P02; + APA[1] += t * P11; + APA[2] = t * P20; + } + return true; +} + +template <typename T> +inline T pj_authlat(T const& beta, const T* APA) +{ + BOOST_GEOMETRY_ASSERT(0 != APA); + + T const t = beta + beta; + + return(beta + APA[0] * sin(t) + APA[1] * sin(t + t) + APA[2] * sin(t + t + t)); +} + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_AUTH_HPP diff --git a/boost/geometry/srs/projections/impl/pj_datum_set.hpp b/boost/geometry/srs/projections/impl/pj_datum_set.hpp new file mode 100644 index 0000000000..5301dc7cfe --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_datum_set.hpp @@ -0,0 +1,213 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_DATUM_SET_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_DATUM_SET_HPP + + +#include <string> +#include <vector> + +#include <boost/algorithm/string.hpp> + +#include <boost/geometry/srs/projections/exception.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/pj_datums.hpp> +#include <boost/geometry/srs/projections/impl/pj_param.hpp> +#include <boost/geometry/srs/projections/par4.hpp> +#include <boost/geometry/srs/projections/proj4.hpp> + + +namespace boost { namespace geometry { namespace projections { + +namespace detail { + + +/* SEC_TO_RAD = Pi/180/3600 */ +template <typename T> +inline T SEC_TO_RAD() { return 4.84813681109535993589914102357e-6; } + +template <typename BGParams, typename T> +inline void pj_datum_add_defn(BGParams const& , std::vector<pvalue<T> >& pvalues) +{ + /* -------------------------------------------------------------------- */ + /* Is there a datum definition in the parameter list? If so, */ + /* add the defining values to the parameter list. Note that */ + /* this will append the ellipse definition as well as the */ + /* towgs84= and related parameters. It should also be pointed */ + /* out that the addition is permanent rather than temporary */ + /* like most other keyword expansion so that the ellipse */ + /* definition will last into the pj_ell_set() function called */ + /* after this one. */ + /* -------------------------------------------------------------------- */ + std::string name = pj_param(pvalues, "sdatum").s; + if(! name.empty()) + { + /* find the datum definition */ + const int n = sizeof(pj_datums) / sizeof(pj_datums[0]); + int index = -1; + for (int i = 0; i < n && index == -1; i++) + { + if(pj_datums[i].id == name) + { + index = i; + } + } + + if (index == -1) + { + BOOST_THROW_EXCEPTION( projection_exception(-9) ); + } + + if(! pj_datums[index].ellipse_id.empty()) + { + std::string entry("ellps="); + entry +=pj_datums[index].ellipse_id; + pvalues.push_back(pj_mkparam<T>(entry)); + } + + if(! pj_datums[index].defn.empty()) + { + pvalues.push_back(pj_mkparam<T>(pj_datums[index].defn)); + } + } +} + +template <BOOST_GEOMETRY_PROJECTIONS_DETAIL_TYPENAME_PX, typename T> +inline void pj_datum_add_defn(srs::static_proj4<BOOST_GEOMETRY_PROJECTIONS_DETAIL_PX> const& /*bg_params*/, + std::vector<pvalue<T> >& pvalues) +{ + typedef srs::static_proj4<BOOST_GEOMETRY_PROJECTIONS_DETAIL_PX> bg_parameters_type; + typedef typename srs::par4::detail::tuples_find_if + < + bg_parameters_type, + //srs::par4::detail::is_datum + srs::par4::detail::is_param_t<srs::par4::datum>::pred + >::type datum_type; + typedef typename srs::par4::detail::datum_traits + < + datum_type + > datum_traits; + + // is unknown if datum parameter found but traits are not specialized + static const bool not_set_or_known = boost::is_same<datum_type, void>::value + || ! boost::is_same<typename datum_traits::ellps_type, void>::value; + BOOST_MPL_ASSERT_MSG((not_set_or_known), UNKNOWN_DATUM, (bg_parameters_type)); + + std::string defn = datum_traits::definition(); + + if (! defn.empty()) + { + pvalues.push_back(pj_mkparam<T>(defn)); + } +} + +/************************************************************************/ +/* pj_datum_set() */ +/************************************************************************/ + +template <typename BGParams, typename T> +inline void pj_datum_set(BGParams const& bg_params, std::vector<pvalue<T> >& pvalues, parameters<T>& projdef) +{ + static const T SEC_TO_RAD = detail::SEC_TO_RAD<T>(); + + projdef.datum_type = PJD_UNKNOWN; + + pj_datum_add_defn(bg_params, pvalues); + +/* -------------------------------------------------------------------- */ +/* Check for nadgrids parameter. */ +/* -------------------------------------------------------------------- */ + std::string nadgrids = pj_param(pvalues, "snadgrids").s; + std::string towgs84 = pj_param(pvalues, "stowgs84").s; + if(! nadgrids.empty()) + { + /* We don't actually save the value separately. It will continue + to exist int he param list for use in pj_apply_gridshift.c */ + + projdef.datum_type = PJD_GRIDSHIFT; + } + +/* -------------------------------------------------------------------- */ +/* Check for towgs84 parameter. */ +/* -------------------------------------------------------------------- */ + else if(! towgs84.empty()) + { + int parm_count = 0; + + int n = sizeof(projdef.datum_params) / sizeof(projdef.datum_params[0]); + + /* parse out the pvalues */ + std::vector<std::string> parm; + boost::split(parm, towgs84, boost::is_any_of(" ,")); + for (std::vector<std::string>::const_iterator it = parm.begin(); + it != parm.end() && parm_count < n; + ++it) + { + projdef.datum_params[parm_count++] = atof(it->c_str()); + } + + if( projdef.datum_params[3] != 0.0 + || projdef.datum_params[4] != 0.0 + || projdef.datum_params[5] != 0.0 + || projdef.datum_params[6] != 0.0 ) + { + projdef.datum_type = PJD_7PARAM; + + /* transform from arc seconds to radians */ + projdef.datum_params[3] *= SEC_TO_RAD; + projdef.datum_params[4] *= SEC_TO_RAD; + projdef.datum_params[5] *= SEC_TO_RAD; + /* transform from parts per million to scaling factor */ + projdef.datum_params[6] = + (projdef.datum_params[6]/1000000.0) + 1; + } + else + { + projdef.datum_type = PJD_3PARAM; + } + + /* Note that pj_init() will later switch datum_type to + PJD_WGS84 if shifts are all zero, and ellipsoid is WGS84 or GRS80 */ + } +} + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_DATUM_SET_HPP diff --git a/boost/geometry/srs/projections/impl/pj_datums.hpp b/boost/geometry/srs/projections/impl/pj_datums.hpp new file mode 100644 index 0000000000..55da24a2ca --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_datums.hpp @@ -0,0 +1,112 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_DATUMS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_DATUMS_HPP + +#include <boost/geometry/srs/projections/impl/projects.hpp> + +namespace boost { namespace geometry { namespace projections { + +namespace detail { + +/* + * The ellipse code must match one from pj_ellps.c. The datum id should + * be kept to 12 characters or less if possible. Use the official OGC + * datum name for the comments if available. + */ + +static const PJ_DATUMS pj_datums[] = +{ + /* id definition ellipse comments */ + /* -- ---------- ------- -------- */ + {"WGS84", "towgs84=0,0,0", + "WGS84", ""}, + + {"GGRS87", "towgs84=-199.87,74.79,246.62", + "GRS80", "Greek_Geodetic_Reference_System_1987"}, + + {"NAD83", "towgs84=0,0,0", + "GRS80", "North_American_Datum_1983"}, + + {"NAD27", "nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat", + "clrk66", "North_American_Datum_1927"}, + + {"potsdam", "towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7", + "bessel", "Potsdam Rauenberg 1950 DHDN"}, + + {"carthage", "towgs84=-263.0,6.0,431.0", + "clrk80ign", "Carthage 1934 Tunisia"}, + + {"hermannskogel", "towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232", + "bessel", "Hermannskogel"}, + + {"ire65", "towgs84=482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15", + "mod_airy", "Ireland 1965"}, + + {"nzgd49", "towgs84=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993", + "intl", "New Zealand Geodetic Datum 1949"}, + + {"OSGB36", "towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894", + "airy", "Airy 1830"} +}; + + +static const PJ_PRIME_MERIDIANS pj_prime_meridians[] = +{ + /* id definition */ + /* -- ---------- */ + { "greenwich", "0dE" }, + { "lisbon", "9d07'54.862\"W" }, + { "paris", "2d20'14.025\"E" }, + { "bogota", "74d04'51.3\"W" }, + { "madrid", "3d41'16.58\"W" }, + { "rome", "12d27'8.4\"E" }, + { "bern", "7d26'22.5\"E" }, + { "jakarta", "106d48'27.79\"E" }, + { "ferro", "17d40'W" }, + { "brussels", "4d22'4.71\"E" }, + { "stockholm", "18d3'29.8\"E" }, + { "athens", "23d42'58.815\"E" }, + { "oslo", "10d43'22.5\"E" } +}; + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_DATUMS_HPP diff --git a/boost/geometry/srs/projections/impl/pj_ell_set.hpp b/boost/geometry/srs/projections/impl/pj_ell_set.hpp new file mode 100644 index 0000000000..6f5f14b780 --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_ell_set.hpp @@ -0,0 +1,205 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_ELL_SET_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_ELL_SET_HPP + +#include <string> +#include <vector> + +#include <boost/geometry/formulas/eccentricity_sqr.hpp> +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/pj_ellps.hpp> +#include <boost/geometry/srs/projections/impl/pj_param.hpp> +#include <boost/geometry/srs/projections/proj4.hpp> + + +namespace boost { namespace geometry { namespace projections { + +namespace detail { + +/* set ellipsoid parameters a and es */ +template <typename T> +inline T SIXTH() { return .1666666666666666667; } /* 1/6 */ +template <typename T> +inline T RA4() { return .04722222222222222222; } /* 17/360 */ +template <typename T> +inline T RA6() { return .02215608465608465608; } /* 67/3024 */ +template <typename T> +inline T RV4() { return .06944444444444444444; } /* 5/72 */ +template <typename T> +inline T RV6() { return .04243827160493827160; } /* 55/1296 */ + +/* initialize geographic shape parameters */ +template <typename BGParams, typename T> +inline void pj_ell_set(BGParams const& /*bg_params*/, std::vector<pvalue<T> >& parameters, T &a, T &es) +{ + T b = 0.0; + T e = 0.0; + std::string name; + + /* check for varying forms of ellipsoid input */ + a = es = 0.; + + /* R takes precedence */ + if (pj_param(parameters, "tR").i) + a = pj_param(parameters, "dR").f; + else { /* probable elliptical figure */ + + /* check if ellps present and temporarily append its values to pl */ + name = pj_param(parameters, "sellps").s; + if (! name.empty()) + { + const int n = sizeof(pj_ellps) / sizeof(pj_ellps[0]); + int index = -1; + for (int i = 0; i < n && index == -1; i++) + { + if(pj_ellps[i].id == name) + { + index = i; + } + } + + if (index == -1) { + BOOST_THROW_EXCEPTION( projection_exception(-9) ); + } + + parameters.push_back(pj_mkparam<T>(pj_ellps[index].major)); + parameters.push_back(pj_mkparam<T>(pj_ellps[index].ell)); + } + a = pj_param(parameters, "da").f; + if (pj_param(parameters, "tes").i) /* eccentricity squared */ + es = pj_param(parameters, "des").f; + else if (pj_param(parameters, "te").i) { /* eccentricity */ + e = pj_param(parameters, "de").f; + es = e * e; + } else if (pj_param(parameters, "trf").i) { /* recip flattening */ + es = pj_param(parameters, "drf").f; + if (!es) { + BOOST_THROW_EXCEPTION( projection_exception(-10) ); + } + es = 1./ es; + es = es * (2. - es); + } else if (pj_param(parameters, "tf").i) { /* flattening */ + es = pj_param(parameters, "df").f; + es = es * (2. - es); + } else if (pj_param(parameters, "tb").i) { /* minor axis */ + b = pj_param(parameters, "db").f; + es = 1. - (b * b) / (a * a); + } /* else es == 0. and sphere of radius a */ + if (!b) + b = a * sqrt(1. - es); + /* following options turn ellipsoid into equivalent sphere */ + if (pj_param(parameters, "bR_A").i) { /* sphere--area of ellipsoid */ + a *= 1. - es * (SIXTH<T>() + es * (RA4<T>() + es * RA6<T>())); + es = 0.; + } else if (pj_param(parameters, "bR_V").i) { /* sphere--vol. of ellipsoid */ + a *= 1. - es * (SIXTH<T>() + es * (RV4<T>() + es * RV6<T>())); + es = 0.; + } else if (pj_param(parameters, "bR_a").i) { /* sphere--arithmetic mean */ + a = .5 * (a + b); + es = 0.; + } else if (pj_param(parameters, "bR_g").i) { /* sphere--geometric mean */ + a = sqrt(a * b); + es = 0.; + } else if (pj_param(parameters, "bR_h").i) { /* sphere--harmonic mean */ + a = 2. * a * b / (a + b); + es = 0.; + } else { + int i = pj_param(parameters, "tR_lat_a").i; + if (i || /* sphere--arith. */ + pj_param(parameters, "tR_lat_g").i) { /* or geom. mean at latitude */ + T tmp; + + tmp = sin(pj_param(parameters, i ? "rR_lat_a" : "rR_lat_g").f); + if (geometry::math::abs(tmp) > geometry::math::half_pi<T>()) { + BOOST_THROW_EXCEPTION( projection_exception(-11) ); + } + tmp = 1. - es * tmp * tmp; + a *= i ? .5 * (1. - es + tmp) / ( tmp * sqrt(tmp)) : + sqrt(1. - es) / tmp; + es = 0.; + } + } + } + + /* some remaining checks */ + if (es < 0.) { + BOOST_THROW_EXCEPTION( projection_exception(-12) ); + } + if (a <= 0.) { + BOOST_THROW_EXCEPTION( projection_exception(-13) ); + } +} + +template <BOOST_GEOMETRY_PROJECTIONS_DETAIL_TYPENAME_PX, typename T> +inline void pj_ell_set(srs::static_proj4<BOOST_GEOMETRY_PROJECTIONS_DETAIL_PX> const& bg_params, + std::vector<pvalue<T> >& /*parameters*/, T &a, T &es) +{ + typedef srs::static_proj4<BOOST_GEOMETRY_PROJECTIONS_DETAIL_PX> static_parameters_type; + typedef typename srs::par4::detail::pick_ellps + < + static_parameters_type + > pick_ellps; + + typename pick_ellps::model_type model = pick_ellps::model(bg_params); + + a = geometry::get_radius<0>(model); + T b = geometry::get_radius<2>(model); + es = 0.; + if (a != b) + { + es = formula::eccentricity_sqr<T>(model); + + // Ignore all other parameters passed in string, at least for now + } + + /* some remaining checks */ + if (es < 0.) { + BOOST_THROW_EXCEPTION( projection_exception(-12) ); + } + if (a <= 0.) { + BOOST_THROW_EXCEPTION( projection_exception(-13) ); + } +} + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_ELL_SET_HPP diff --git a/boost/geometry/srs/projections/impl/pj_ellps.hpp b/boost/geometry/srs/projections/impl/pj_ellps.hpp new file mode 100644 index 0000000000..586802778c --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_ellps.hpp @@ -0,0 +1,98 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_ELLPS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_ELLPS_HPP + +#include <boost/geometry/srs/projections/impl/projects.hpp> + +namespace boost { namespace geometry { namespace projections { + +namespace detail { + +static const PJ_ELLPS pj_ellps[] = +{ + {"MERIT", "a=6378137.0", "rf=298.257", "MERIT 1983"}, + {"SGS85", "a=6378136.0", "rf=298.257", "Soviet Geodetic System 85"}, + {"GRS80", "a=6378137.0", "rf=298.257222101", "GRS 1980(IUGG, 1980)"}, + {"IAU76", "a=6378140.0", "rf=298.257", "IAU 1976"}, + {"airy", "a=6377563.396", "b=6356256.910", "Airy 1830"}, + {"APL4.9", "a=6378137.0.", "rf=298.25", "Appl. Physics. 1965"}, + {"NWL9D", "a=6378145.0.", "rf=298.25", "Naval Weapons Lab., 1965"}, + {"mod_airy", "a=6377340.189", "b=6356034.446", "Modified Airy"}, + {"andrae", "a=6377104.43", "rf=300.0", "Andrae 1876 (Den., Iclnd.)"}, + {"aust_SA", "a=6378160.0", "rf=298.25", "Australian Natl & S. Amer. 1969"}, + {"GRS67", "a=6378160.0", "rf=298.2471674270", "GRS 67(IUGG 1967)"}, + {"bessel", "a=6377397.155", "rf=299.1528128", "Bessel 1841"}, + {"bess_nam", "a=6377483.865", "rf=299.1528128", "Bessel 1841 (Namibia)"}, + {"clrk66", "a=6378206.4", "b=6356583.8", "Clarke 1866"}, + {"clrk80", "a=6378249.145", "rf=293.4663", "Clarke 1880 mod."}, + {"clrk80ign", "a=6378249.2", "rf=293.4660212936269", "Clarke 1880 (IGN)."}, + {"CPM", "a=6375738.7", "rf=334.29", "Comm. des Poids et Mesures 1799"}, + {"delmbr", "a=6376428.", "rf=311.5", "Delambre 1810 (Belgium)"}, + {"engelis", "a=6378136.05", "rf=298.2566", "Engelis 1985"}, + {"evrst30", "a=6377276.345", "rf=300.8017", "Everest 1830"}, + {"evrst48", "a=6377304.063", "rf=300.8017", "Everest 1948"}, + {"evrst56", "a=6377301.243", "rf=300.8017", "Everest 1956"}, + {"evrst69", "a=6377295.664", "rf=300.8017", "Everest 1969"}, + {"evrstSS", "a=6377298.556", "rf=300.8017", "Everest (Sabah & Sarawak)"}, + {"fschr60", "a=6378166.", "rf=298.3", "Fischer (Mercury Datum) 1960"}, + {"fschr60m", "a=6378155.", "rf=298.3", "Modified Fischer 1960"}, + {"fschr68", "a=6378150.", "rf=298.3", "Fischer 1968"}, + {"helmert", "a=6378200.", "rf=298.3", "Helmert 1906"}, + {"hough", "a=6378270.0", "rf=297.", "Hough"}, + {"intl", "a=6378388.0", "rf=297.", "International 1909 (Hayford)"}, + {"krass", "a=6378245.0", "rf=298.3", "Krassovsky, 1942"}, + {"kaula", "a=6378163.", "rf=298.24", "Kaula 1961"}, + {"lerch", "a=6378139.", "rf=298.257", "Lerch 1979"}, + {"mprts", "a=6397300.", "rf=191.", "Maupertius 1738"}, + {"new_intl", "a=6378157.5", "b=6356772.2", "New International 1967"}, + {"plessis", "a=6376523.", "b=6355863.", "Plessis 1817 (France)"}, + {"SEasia", "a=6378155.0", "b=6356773.3205", "Southeast Asia"}, + {"walbeck", "a=6376896.0", "b=6355834.8467", "Walbeck"}, + {"WGS60", "a=6378165.0", "rf=298.3", "WGS 60"}, + {"WGS66", "a=6378145.0", "rf=298.25", "WGS 66"}, + {"WGS72", "a=6378135.0", "rf=298.26", "WGS 72"}, + {"WGS84", "a=6378137.0", "rf=298.257223563", "WGS 84"}, + {"sphere", "a=6370997.0", "b=6370997.0", "Normal Sphere (r=6370997)"} +}; + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_ELLPS_HPP diff --git a/boost/geometry/srs/projections/impl/pj_fwd.hpp b/boost/geometry/srs/projections/impl/pj_fwd.hpp new file mode 100644 index 0000000000..73101b7f40 --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_fwd.hpp @@ -0,0 +1,101 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_FWD_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_FWD_HPP + +#include <boost/geometry/core/radian_access.hpp> +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/adjlon.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> + +#include <boost/math/constants/constants.hpp> + +/* general forward projection */ + +namespace boost { namespace geometry { namespace projections { + +namespace detail { + +/* forward projection entry */ +template <typename Prj, typename LL, typename XY, typename P> +inline void pj_fwd(Prj const& prj, P const& par, LL const& ll, XY& xy) +{ + typedef typename P::type calc_t; + static const calc_t EPS = 1.0e-12; + + using namespace detail; + + calc_t lp_lon = geometry::get_as_radian<0>(ll); + calc_t lp_lat = geometry::get_as_radian<1>(ll); + calc_t const t = geometry::math::abs(lp_lat) - geometry::math::half_pi<calc_t>(); + + /* check for forward and latitude or longitude overange */ + if (t > EPS || geometry::math::abs(lp_lon) > 10.) + { + BOOST_THROW_EXCEPTION( projection_exception(-14) ); + } + + if (geometry::math::abs(t) <= EPS) + { + lp_lat = lp_lat < 0. ? -geometry::math::half_pi<calc_t>() : geometry::math::half_pi<calc_t>(); + } + else if (par.geoc) + { + lp_lat = atan(par.rone_es * tan(lp_lat)); + } + + lp_lon -= par.lam0; /* compute del lp.lam */ + if (! par.over) + { + lp_lon = adjlon(lp_lon); /* post_forward del longitude */ + } + + calc_t x = 0; + calc_t y = 0; + + prj.fwd(lp_lon, lp_lat, x, y); + geometry::set<0>(xy, par.fr_meter * (par.a * x + par.x0)); + geometry::set<1>(xy, par.fr_meter * (par.a * y + par.y0)); +} + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_FWD_HPP diff --git a/boost/geometry/srs/projections/impl/pj_gauss.hpp b/boost/geometry/srs/projections/impl/pj_gauss.hpp new file mode 100644 index 0000000000..2c90870434 --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_gauss.hpp @@ -0,0 +1,142 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_GAUSS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_GAUSS_HPP + + +#include <boost/geometry/util/math.hpp> + + +namespace boost { namespace geometry { namespace projections { + +namespace detail { namespace gauss { + + +static const int MAX_ITER = 20; + +template <typename T> +struct GAUSS +{ + T C; + T K; + T e; + T ratexp; +}; + +template <typename T> +inline T srat(T const& esinp, T const& exp) +{ + return (pow((1.0 - esinp) / (1.0 + esinp), exp)); +} + +template <typename T> +inline GAUSS<T> gauss_ini(T const& e, T const& phi0, T& chi, T& rc) +{ + static const T FORTPI = detail::FORTPI<T>(); + + using std::asin; + using std::cos; + using std::sin; + using std::sqrt; + using std::tan; + + T sphi = 0; + T cphi = 0; + T es = 0; + + GAUSS<T> en; + es = e * e; + en.e = e; + sphi = sin(phi0); + cphi = cos(phi0); + cphi *= cphi; + + rc = sqrt(1.0 - es) / (1.0 - es * sphi * sphi); + en.C = sqrt(1.0 + es * cphi * cphi / (1.0 - es)); + chi = asin(sphi / en.C); + en.ratexp = 0.5 * en.C * e; + en.K = tan(0.5 * chi + FORTPI) + / (pow(tan(0.5 * phi0 + FORTPI), en.C) * srat(en.e * sphi, en.ratexp)); + + return en; +} + +template <typename T> +inline void gauss(GAUSS<T> const& en, T& lam, T& phi) +{ + static const T FORTPI = detail::FORTPI<T>(); + + phi = 2.0 * atan(en.K * pow(tan(0.5 * phi + FORTPI), en.C) + * srat(en.e * sin(phi), en.ratexp) ) - geometry::math::half_pi<T>(); + + lam *= en.C; +} + +template <typename T> +inline void inv_gauss(GAUSS<T> const& en, T& lam, T& phi) +{ + static const T FORTPI = detail::FORTPI<T>(); + static const T DEL_TOL = 1e-14; + + lam /= en.C; + const T num = pow(tan(0.5 * phi + FORTPI) / en.K, 1.0 / en.C); + + int i = 0; + for (i = MAX_ITER; i; --i) + { + const T elp_phi = 2.0 * atan(num * srat(en.e * sin(phi), - 0.5 * en.e)) - geometry::math::half_pi<T>(); + + if (geometry::math::abs(elp_phi - phi) < DEL_TOL) + { + break; + } + phi = elp_phi; + } + + /* convergence failed */ + if (!i) + { + BOOST_THROW_EXCEPTION( projection_exception(-17) ); + } +} + +}} // namespace detail::gauss +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_GAUSS_HPP diff --git a/boost/geometry/srs/projections/impl/pj_init.hpp b/boost/geometry/srs/projections/impl/pj_init.hpp new file mode 100644 index 0000000000..8b93343bcd --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_init.hpp @@ -0,0 +1,395 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_INIT_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_INIT_HPP + +#include <cstdlib> +#include <string> +#include <vector> + +#include <boost/algorithm/string.hpp> +#include <boost/lexical_cast.hpp> +#include <boost/range.hpp> +#include <boost/type_traits/is_same.hpp> + +#include <boost/geometry/util/math.hpp> +#include <boost/geometry/util/condition.hpp> + +#include <boost/geometry/srs/projections/impl/dms_parser.hpp> +#include <boost/geometry/srs/projections/impl/pj_datum_set.hpp> +#include <boost/geometry/srs/projections/impl/pj_datums.hpp> +#include <boost/geometry/srs/projections/impl/pj_ell_set.hpp> +#include <boost/geometry/srs/projections/impl/pj_param.hpp> +#include <boost/geometry/srs/projections/impl/pj_units.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/proj4.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + + +namespace detail +{ + +template <typename BGParams, typename T> +inline void pj_push_defaults(BGParams const& /*bg_params*/, parameters<T>& pin) +{ + pin.params.push_back(pj_mkparam<T>("ellps=WGS84")); + + if (pin.name == "aea") + { + pin.params.push_back(pj_mkparam<T>("lat_1=29.5")); + pin.params.push_back(pj_mkparam<T>("lat_2=45.5 ")); + } + else if (pin.name == "lcc") + { + pin.params.push_back(pj_mkparam<T>("lat_1=33")); + pin.params.push_back(pj_mkparam<T>("lat_2=45")); + } + else if (pin.name == "lagrng") + { + pin.params.push_back(pj_mkparam<T>("W=2")); + } +} + +template <BOOST_GEOMETRY_PROJECTIONS_DETAIL_TYPENAME_PX, typename T> +inline void pj_push_defaults(srs::static_proj4<BOOST_GEOMETRY_PROJECTIONS_DETAIL_PX> const& /*bg_params*/, + parameters<T>& pin) +{ + typedef srs::static_proj4<BOOST_GEOMETRY_PROJECTIONS_DETAIL_PX> static_parameters_type; + typedef typename srs::par4::detail::pick_proj_tag + < + static_parameters_type + >::type proj_tag; + + // statically defaulting to WGS84 + //pin.params.push_back(pj_mkparam("ellps=WGS84")); + + if (BOOST_GEOMETRY_CONDITION((boost::is_same<proj_tag, srs::par4::aea>::value))) + { + pin.params.push_back(pj_mkparam<T>("lat_1=29.5")); + pin.params.push_back(pj_mkparam<T>("lat_2=45.5 ")); + } + else if (BOOST_GEOMETRY_CONDITION((boost::is_same<proj_tag, srs::par4::lcc>::value))) + { + pin.params.push_back(pj_mkparam<T>("lat_1=33")); + pin.params.push_back(pj_mkparam<T>("lat_2=45")); + } + else if (BOOST_GEOMETRY_CONDITION((boost::is_same<proj_tag, srs::par4::lagrng>::value))) + { + pin.params.push_back(pj_mkparam<T>("W=2")); + } +} + +template <typename T> +inline void pj_init_units(std::vector<pvalue<T> > const& params, + std::string const& sunits, + std::string const& sto_meter, + T & to_meter, + T & fr_meter, + T const& default_to_meter, + T const& default_fr_meter) +{ + std::string s; + std::string units = pj_param(params, sunits).s; + if (! units.empty()) + { + const int n = sizeof(pj_units) / sizeof(pj_units[0]); + int index = -1; + for (int i = 0; i < n && index == -1; i++) + { + if(pj_units[i].id == units) + { + index = i; + } + } + + if (index == -1) { + BOOST_THROW_EXCEPTION( projection_exception(-7) ); + } + s = pj_units[index].to_meter; + } + + if (s.empty()) + { + s = pj_param(params, sto_meter).s; + } + + if (! s.empty()) + { + std::size_t const pos = s.find('/'); + if (pos == std::string::npos) + { + to_meter = lexical_cast<T>(s); + } + else + { + T const numerator = lexical_cast<T>(s.substr(0, pos)); + T const denominator = lexical_cast<T>(s.substr(pos + 1)); + if (numerator == 0.0 || denominator == 0.0) + { + BOOST_THROW_EXCEPTION( projection_exception(-99) ); + } + to_meter = numerator / denominator; + } + if (to_meter == 0.0) + { + BOOST_THROW_EXCEPTION( projection_exception(-99) ); + } + fr_meter = 1. / to_meter; + } + else + { + to_meter = default_to_meter; + fr_meter = default_fr_meter; + } +} + +/************************************************************************/ +/* pj_init() */ +/* */ +/* Main entry point for initialing a PJ projections */ +/* definition. Note that the projection specific function is */ +/* called to do the initial allocation so it can be created */ +/* large enough to hold projection specific parameters. */ +/************************************************************************/ +template <typename T, typename BGParams, typename R> +inline parameters<T> pj_init(BGParams const& bg_params, R const& arguments, bool use_defaults = true) +{ + parameters<T> pin; + for (std::vector<std::string>::const_iterator it = boost::begin(arguments); + it != boost::end(arguments); it++) + { + pin.params.push_back(pj_mkparam<T>(*it)); + } + + /* check if +init present */ + if (pj_param(pin.params, "tinit").i) + { + // maybe TODO: handle "init" parameter + //if (!(curr = get_init(&arguments, curr, pj_param(pin.params, "sinit").s))) + } + + // find projection -> implemented in projection factory + pin.name = pj_param(pin.params, "sproj").s; + // exception thrown in projection<> + // TODO: consider throwing here both projection_unknown_id_exception and + // projection_not_named_exception in order to throw before other exceptions + //if (pin.name.empty()) + //{ BOOST_THROW_EXCEPTION( projection_not_named_exception() ); } + + // set defaults, unless inhibited + // GL-Addition, if use_defaults is false then defaults are ignored + if (use_defaults && ! pj_param(pin.params, "bno_defs").i) + { + // proj4 gets defaults from "proj_def.dat", file of 94/02/23 with a few defaults. + // Here manually + pj_push_defaults(bg_params, pin); + //curr = get_defaults(&arguments, curr, name); + } + + /* allocate projection structure */ + // done by BGParams constructor: + // pin.is_latlong = 0; + // pin.is_geocent = 0; + // pin.long_wrap_center = 0.0; + // pin.long_wrap_center = 0.0; + pin.is_long_wrap_set = false; + + /* set datum parameters */ + pj_datum_set(bg_params, pin.params, pin); + + /* set ellipsoid/sphere parameters */ + pj_ell_set(bg_params, pin.params, pin.a, pin.es); + + pin.a_orig = pin.a; + pin.es_orig = pin.es; + + pin.e = sqrt(pin.es); + pin.ra = 1. / pin.a; + pin.one_es = 1. - pin.es; + if (pin.one_es == 0.) { + BOOST_THROW_EXCEPTION( projection_exception(-6) ); + } + pin.rone_es = 1./pin.one_es; + + /* Now that we have ellipse information check for WGS84 datum */ + if( pin.datum_type == PJD_3PARAM + && pin.datum_params[0] == 0.0 + && pin.datum_params[1] == 0.0 + && pin.datum_params[2] == 0.0 + && pin.a == 6378137.0 + && geometry::math::abs(pin.es - 0.006694379990) < 0.000000000050 )/*WGS84/GRS80*/ + { + pin.datum_type = PJD_WGS84; + } + + /* set pin.geoc coordinate system */ + pin.geoc = (pin.es && pj_param(pin.params, "bgeoc").i); + + /* over-ranging flag */ + pin.over = pj_param(pin.params, "bover").i; + + /* longitude center for wrapping */ + pin.is_long_wrap_set = pj_param(pin.params, "tlon_wrap").i != 0; + if (pin.is_long_wrap_set) + pin.long_wrap_center = pj_param(pin.params, "rlon_wrap").f; + + /* central meridian */ + pin.lam0 = pj_param(pin.params, "rlon_0").f; + + /* central latitude */ + pin.phi0 = pj_param(pin.params, "rlat_0").f; + + /* false easting and northing */ + pin.x0 = pj_param(pin.params, "dx_0").f; + pin.y0 = pj_param(pin.params, "dy_0").f; + + /* general scaling factor */ + if (pj_param(pin.params, "tk_0").i) + pin.k0 = pj_param(pin.params, "dk_0").f; + else if (pj_param(pin.params, "tk").i) + pin.k0 = pj_param(pin.params, "dk").f; + else + pin.k0 = 1.; + if (pin.k0 <= 0.) { + BOOST_THROW_EXCEPTION( projection_exception(-31) ); + } + + /* set units */ + pj_init_units(pin.params, "sunits", "sto_meter", + pin.to_meter, pin.fr_meter, 1., 1.); + pj_init_units(pin.params, "svunits", "svto_meter", + pin.vto_meter, pin.vfr_meter, pin.to_meter, pin.fr_meter); + + /* prime meridian */ + std::string pm = pj_param(pin.params, "spm").s; + if (! pm.empty()) + { + std::string value; + + int n = sizeof(pj_prime_meridians) / sizeof(pj_prime_meridians[0]); + for (int i = 0; i < n ; i++) + { + if(pj_prime_meridians[i].id == pm) + { + value = pj_prime_meridians[i].defn; + break; + } + } + + dms_parser<T, true> parser; + + // TODO: Handle case when lexical_cast is not used consistently. + // This should probably be done in dms_parser. + BOOST_TRY + { + if (value.empty()) { + pin.from_greenwich = parser.apply(pm).angle(); + } else { + pin.from_greenwich = parser.apply(value).angle(); + } + } + BOOST_CATCH(boost::bad_lexical_cast const&) + { + BOOST_THROW_EXCEPTION( projection_exception(-46) ); + } + BOOST_CATCH_END + } + else + { + pin.from_greenwich = 0.0; + } + + return pin; +} + +/************************************************************************/ +/* pj_init_plus() */ +/* */ +/* Same as pj_init() except it takes one argument string with */ +/* individual arguments preceeded by '+', such as "+proj=utm */ +/* +zone=11 +ellps=WGS84". */ +/************************************************************************/ +template <typename T, typename BGParams> +inline parameters<T> pj_init_plus(BGParams const& bg_params, std::string const& definition, bool use_defaults = true) +{ + const char* sep = " +"; + + /* split into arguments based on '+' and trim white space */ + + // boost::split splits on one character, here it should be on " +", so implementation below + // todo: put in different routine or sort out + std::vector<std::string> arguments; + std::string def = boost::trim_copy(definition); + boost::trim_left_if(def, boost::is_any_of(sep)); + + std::string::size_type loc = def.find(sep); + while (loc != std::string::npos) + { + std::string par = def.substr(0, loc); + boost::trim(par); + if (! par.empty()) + { + arguments.push_back(par); + } + + def.erase(0, loc); + boost::trim_left_if(def, boost::is_any_of(sep)); + loc = def.find(sep); + } + + if (! def.empty()) + { + arguments.push_back(def); + } + + /*boost::split(arguments, definition, boost::is_any_of("+")); + for (std::vector<std::string>::iterator it = arguments.begin(); it != arguments.end(); it++) + { + boost::trim(*it); + }*/ + return pj_init<T>(bg_params, arguments, use_defaults); +} + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_INIT_HPP diff --git a/boost/geometry/srs/projections/impl/pj_inv.hpp b/boost/geometry/srs/projections/impl/pj_inv.hpp new file mode 100644 index 0000000000..91cf4c50f6 --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_inv.hpp @@ -0,0 +1,82 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_PJ_INV_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PJ_INV_HPP + + + +#include <boost/geometry/srs/projections/impl/adjlon.hpp> +#include <boost/geometry/core/radian_access.hpp> +#include <boost/geometry/util/math.hpp> + +/* general inverse projection */ + +namespace boost { namespace geometry { namespace projections +{ + +namespace detail +{ + + /* inverse projection entry */ +template <typename PRJ, typename LL, typename XY, typename PAR> +inline void pj_inv(PRJ const& prj, PAR const& par, XY const& xy, LL& ll) +{ + typedef typename PAR::type calc_t; + static const calc_t EPS = 1.0e-12; + + /* can't do as much preliminary checking as with forward */ + /* descale and de-offset */ + calc_t xy_x = (geometry::get<0>(xy) * par.to_meter - par.x0) * par.ra; + calc_t xy_y = (geometry::get<1>(xy) * par.to_meter - par.y0) * par.ra; + calc_t lon = 0, lat = 0; + prj.inv(xy_x, xy_y, lon, lat); /* inverse project */ + lon += par.lam0; /* reduce from del lp.lam */ + if (!par.over) + lon = adjlon(lon); /* adjust longitude to CM */ + if (par.geoc && geometry::math::abs(geometry::math::abs(lat)-geometry::math::half_pi<calc_t>()) > EPS) + lat = atan(par.one_es * tan(lat)); + + geometry::set_from_radian<0>(ll, lon); + geometry::set_from_radian<1>(ll, lat); +} + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif diff --git a/boost/geometry/srs/projections/impl/pj_mlfn.hpp b/boost/geometry/srs/projections/impl/pj_mlfn.hpp new file mode 100644 index 0000000000..1317dd2e2f --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_mlfn.hpp @@ -0,0 +1,121 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_PJ_MLFN_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PJ_MLFN_HPP + + + +#include <boost/geometry/util/math.hpp> + + +namespace boost { namespace geometry { namespace projections { + +namespace detail { + +static const int EN_SIZE = 5; + +template <typename T> +inline bool pj_enfn(T const& es, T* en) +{ + static const T C00 = 1.; + static const T C02 = .25; + static const T C04 = .046875; + static const T C06 = .01953125; + static const T C08 = .01068115234375; + static const T C22 = .75; + static const T C44 = .46875; + static const T C46 = .01302083333333333333; + static const T C48 = .00712076822916666666; + static const T C66 = .36458333333333333333; + static const T C68 = .00569661458333333333; + static const T C88 = .3076171875; + + T t; //, *en; + + //if (en = (double *)pj_malloc(EN_SIZE * sizeof(double))) + { + en[0] = C00 - es * (C02 + es * (C04 + es * (C06 + es * C08))); + en[1] = es * (C22 - es * (C04 + es * (C06 + es * C08))); + en[2] = (t = es * es) * (C44 - es * (C46 + es * C48)); + en[3] = (t *= es) * (C66 - es * C68); + en[4] = t * es * C88; + } + // return en; + return true; +} + +template <typename T> +inline T pj_mlfn(T const& phi, T sphi, T cphi, const T *en) +{ + cphi *= sphi; + sphi *= sphi; + return(en[0] * phi - cphi * (en[1] + sphi*(en[2] + + sphi*(en[3] + sphi*en[4])))); +} + +template <typename T> +inline T pj_inv_mlfn(T const& arg, T const& es, const T *en) +{ + /* meridinal distance for ellipsoid and inverse + ** 8th degree - accurate to < 1e-5 meters when used in conjuction + ** with typical major axis values. + ** Inverse determines phi to EPS (1e-11) radians, about 1e-6 seconds. + */ + static const T EPS = 1e-11; + static const int MAX_ITER = 10; + + T s, t, phi, k = 1./(1.-es); + int i; + + phi = arg; + for (i = MAX_ITER; i ; --i) { /* rarely goes over 2 iterations */ + s = sin(phi); + t = 1. - es * s * s; + phi -= t = (pj_mlfn(phi, s, cos(phi), en) - arg) * (t * sqrt(t)) * k; + if (geometry::math::abs(t) < EPS) + return phi; + } + BOOST_THROW_EXCEPTION( projection_exception(-17) ); + return phi; +} + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif diff --git a/boost/geometry/srs/projections/impl/pj_msfn.hpp b/boost/geometry/srs/projections/impl/pj_msfn.hpp new file mode 100644 index 0000000000..f99cc2c843 --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_msfn.hpp @@ -0,0 +1,59 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_PJ_MSFN_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PJ_MSFN_HPP + + +namespace boost { namespace geometry { namespace projections { + +namespace detail { + + +/* determine constant small m */ +template <typename T> +inline T pj_msfn(T const& sinphi, T const& cosphi, T const& es) +{ + return (cosphi / sqrt (1. - es * sinphi * sinphi)); +} + + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif diff --git a/boost/geometry/srs/projections/impl/pj_param.hpp b/boost/geometry/srs/projections/impl/pj_param.hpp new file mode 100644 index 0000000000..4f33ad837f --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_param.hpp @@ -0,0 +1,161 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_PJ_PARAM_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PJ_PARAM_HPP + + +#include <string> +#include <vector> + +#include <boost/geometry/srs/projections/impl/dms_parser.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> + + +namespace boost { namespace geometry { namespace projections { + +namespace detail { + + + +/* create pvalue list entry */ +template <typename T> +inline pvalue<T> pj_mkparam(std::string const& str) +{ + std::string name = str; + std::string value; + boost::trim_left_if(name, boost::is_any_of("+")); + std::string::size_type loc = name.find("="); + if (loc != std::string::npos) + { + value = name.substr(loc + 1); + name.erase(loc); + } + + + pvalue<T> newitem; + newitem.param = name; + newitem.s = value; + newitem.used = 0; + newitem.i = atoi(value.c_str()); + newitem.f = atof(value.c_str()); + return newitem; +} + +/************************************************************************/ +/* pj_param() */ +/* */ +/* Test for presence or get pvalue value. The first */ +/* character in `opt' is a pvalue type which can take the */ +/* values: */ +/* */ +/* `t' - test for presence, return TRUE/FALSE in pvalue.i */ +/* `i' - integer value returned in pvalue.i */ +/* `d' - simple valued real input returned in pvalue.f */ +/* `r' - degrees (DMS translation applied), returned as */ +/* radians in pvalue.f */ +/* `s' - string returned in pvalue.s */ +/* `b' - test for t/T/f/F, return in pvalue.i */ +/* */ +/************************************************************************/ + +template <typename T> +inline pvalue<T> pj_param(std::vector<pvalue<T> > const& pl, std::string opt) +{ + char type = opt[0]; + opt.erase(opt.begin()); + + pvalue<T> value; + + /* simple linear lookup */ + typedef typename std::vector<pvalue<T> >::const_iterator iterator; + for (iterator it = pl.begin(); it != pl.end(); it++) + { + if (it->param == opt) + { + //it->used = 1; + switch (type) + { + case 't': + value.i = 1; + break; + case 'i': /* integer input */ + value.i = atoi(it->s.c_str()); + break; + case 'd': /* simple real input */ + value.f = atof(it->s.c_str()); + break; + case 'r': /* degrees input */ + { + dms_parser<T, true> parser; + value.f = parser.apply(it->s.c_str()).angle(); + } + break; + case 's': /* char string */ + value.s = it->s; + break; + case 'b': /* boolean */ + switch (it->s[0]) + { + case 'F': case 'f': + value.i = 0; + break; + case '\0': case 'T': case 't': + value.i = 1; + break; + default: + value.i = 0; + break; + } + break; + } + return value; + } + + } + + value.i = 0; + value.f = 0.0; + value.s = ""; + return value; +} + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif diff --git a/boost/geometry/srs/projections/impl/pj_phi2.hpp b/boost/geometry/srs/projections/impl/pj_phi2.hpp new file mode 100644 index 0000000000..71f0cf1249 --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_phi2.hpp @@ -0,0 +1,73 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_PHI2_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PHI2_HPP + +#include <boost/geometry/util/math.hpp> + +namespace boost { namespace geometry { namespace projections { +namespace detail { + +template <typename T> +inline T pj_phi2(T const& ts, T const& e) +{ + static const T TOL = 1.0e-10; + static const int N_ITER = 15; + + T eccnth, Phi, con, dphi; + int i; + + eccnth = .5 * e; + Phi = geometry::math::half_pi<T>() - 2. * atan (ts); + i = N_ITER; + do { + con = e * sin (Phi); + dphi = geometry::math::half_pi<T>() - 2. * atan (ts * pow((1. - con) / + (1. + con), eccnth)) - Phi; + Phi += dphi; + } while ( geometry::math::abs(dphi) > TOL && --i); + if (i <= 0) + BOOST_THROW_EXCEPTION( projection_exception(-18) ); + return Phi; +} + +} // namespace detail +}}} // namespace boost::geometry::projections + +#endif diff --git a/boost/geometry/srs/projections/impl/pj_qsfn.hpp b/boost/geometry/srs/projections/impl/pj_qsfn.hpp new file mode 100644 index 0000000000..606fab5e4e --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_qsfn.hpp @@ -0,0 +1,95 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_PJ_QSFN_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PJ_QSFN_HPP + + +namespace boost { namespace geometry { namespace projections +{ + +namespace detail { + +/* determine small q */ +template <typename T> +inline T pj_qsfn(T const& sinphi, T const& e, T const& one_es) +{ + static const T EPSILON = 1.0e-7; + + if (e >= EPSILON) + { + T con = e * sinphi; + return (one_es * (sinphi / (1. - con * con) - + (.5 / e) * log ((1. - con) / (1. + con)))); + } else + return (sinphi + sinphi); +} + + +static const int MAX_C = 9; + +template <typename T> +struct AUTHALIC +{ + T C[MAX_C], CP[MAX_C], CQ[MAX_C]; +}; + +/** + * @brief determine authalic latitude + * @param[in] phi geographic latitude + * @param[in] a initialized structure pointer + * @return authalic latitude + */ +template <typename T> +inline T proj_qsfn(T const& phi, AUTHALIC<T> const& a) +{ + T s, s2, sum; + int i = MAX_C; + + s = sin(phi); + s2 = s * s; + sum = a.CQ[MAX_C - 1]; + while (--i) sum = a.CQ[i] + s2 * sum; + return(s * sum); +} + +} // namespace detail + +}}} // namespace boost::geometry::projections + +#endif diff --git a/boost/geometry/srs/projections/impl/pj_strerrno.hpp b/boost/geometry/srs/projections/impl/pj_strerrno.hpp new file mode 100644 index 0000000000..22e0c48af4 --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_strerrno.hpp @@ -0,0 +1,144 @@ +// Boost.Geometry +// This file is manually converted from PROJ4 + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// This file was converted to Geometry Library by Adam Wulkiewicz + +// Original copyright notice: + +// None + +/* list of projection system pj_errno values */ + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_STRERRNO_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_STRERRNO_HPP + +#include <cerrno> +#include <cstring> +#include <sstream> +#include <string> + +namespace boost { namespace geometry { namespace projections +{ + +namespace detail +{ + + static const char * +pj_err_list[] = { + "no arguments in initialization list", /* -1 */ + "no options found in 'init' file", /* -2 */ + "no colon in init= string", /* -3 */ + "projection not named", /* -4 */ + "unknown projection id", /* -5 */ + "effective eccentricity = 1.", /* -6 */ + "unknown unit conversion id", /* -7 */ + "invalid boolean param argument", /* -8 */ + "unknown elliptical parameter name", /* -9 */ + "reciprocal flattening (1/f) = 0", /* -10 */ + "|radius reference latitude| > 90", /* -11 */ + "squared eccentricity < 0", /* -12 */ + "major axis or radius = 0 or not given", /* -13 */ + "latitude or longitude exceeded limits", /* -14 */ + "invalid x or y", /* -15 */ + "improperly formed DMS value", /* -16 */ + "non-convergent inverse meridional dist", /* -17 */ + "non-convergent inverse phi2", /* -18 */ + "acos/asin: |arg| >1.+1e-14", /* -19 */ + "tolerance condition error", /* -20 */ + "conic lat_1 = -lat_2", /* -21 */ + "lat_1 >= 90", /* -22 */ + "lat_1 = 0", /* -23 */ + "lat_ts >= 90", /* -24 */ + "no distance between control points", /* -25 */ + "projection not selected to be rotated", /* -26 */ + "W <= 0 or M <= 0", /* -27 */ + "lsat not in 1-5 range", /* -28 */ + "path not in range", /* -29 */ + "h <= 0", /* -30 */ + "k <= 0", /* -31 */ + "lat_0 = 0 or 90 or alpha = 90", /* -32 */ + "lat_1=lat_2 or lat_1=0 or lat_2=90", /* -33 */ + "elliptical usage required", /* -34 */ + "invalid UTM zone number", /* -35 */ + "arg(s) out of range for Tcheby eval", /* -36 */ + "failed to find projection to be rotated", /* -37 */ + "failed to load datum shift file", /* -38 */ + "both n & m must be spec'd and > 0", /* -39 */ + "n <= 0, n > 1 or not specified", /* -40 */ + "lat_1 or lat_2 not specified", /* -41 */ + "|lat_1| == |lat_2|", /* -42 */ + "lat_0 is pi/2 from mean lat", /* -43 */ + "unparseable coordinate system definition", /* -44 */ + "geocentric transformation missing z or ellps", /* -45 */ + "unknown prime meridian conversion id", /* -46 */ + "illegal axis orientation combination", /* -47 */ + "point not within available datum shift grids", /* -48 */ + "invalid sweep axis, choose x or y", /* -49 */ + "malformed pipeline", /* -50 */ +}; + +inline std::string pj_generic_strerrno(std::string const& msg, int err) +{ + std::stringstream ss; + ss << msg << " (" << err << ")"; + return ss.str(); +} + +inline std::string pj_strerrno(int err) { + if (0==err) + { + return ""; + } + else if (err > 0) + { + // std::strerror function may be not thread-safe + //return std::strerror(err); + + switch(err) + { +#ifdef EINVAL + case EINVAL: + return "Invalid argument"; +#endif +#ifdef EDOM + case EDOM: + return "Math argument out of domain of func"; +#endif +#ifdef ERANGE + case ERANGE: + return "Math result not representable"; +#endif + default: + return pj_generic_strerrno("system error", err); + } + } + else /*if (err < 0)*/ + { + size_t adjusted_err = - err - 1; + if (adjusted_err < (sizeof(pj_err_list) / sizeof(char *))) + { + return(pj_err_list[adjusted_err]); + } + else + { + return pj_generic_strerrno("invalid projection system error", err); + } + } +} + +} // namespace detail + +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_STRERRNO_HPP diff --git a/boost/geometry/srs/projections/impl/pj_transform.hpp b/boost/geometry/srs/projections/impl/pj_transform.hpp new file mode 100644 index 0000000000..8c2095642f --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_transform.hpp @@ -0,0 +1,1009 @@ +// Boost.Geometry +// This file is manually converted from PROJ4 + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// This file was converted to Geometry Library by Adam Wulkiewicz + +// Original copyright notice: + +// Copyright (c) 2000, Frank Warmerdam + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_SRS_PROJECTIONS_IMPL_PJ_TRANSFORM_HPP +#define BOOST_GEOMETRY_SRS_PROJECTIONS_IMPL_PJ_TRANSFORM_HPP + + +#include <boost/geometry/core/access.hpp> +#include <boost/geometry/core/radian_access.hpp> + +#include <boost/geometry/srs/projections/impl/geocent.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/invalid_point.hpp> + +#include <boost/geometry/util/range.hpp> + +#include <cstring> +#include <cmath> + + +namespace boost { namespace geometry { namespace projections +{ + +namespace detail +{ + +// ----------------------------------------------------------- +// Boost.Geometry helpers begin +// ----------------------------------------------------------- + +template +< + typename Point, + bool HasCoord2 = (dimension<Point>::value > 2) +> +struct z_access +{ + typedef typename coordinate_type<Point>::type type; + static inline type get(Point const& point) + { + return geometry::get<2>(point); + } + static inline void set(Point & point, type const& h) + { + return geometry::set<2>(point, h); + } +}; + +template <typename Point> +struct z_access<Point, false> +{ + typedef typename coordinate_type<Point>::type type; + static inline type get(Point const& ) + { + return type(0); + } + static inline void set(Point & , type const& ) + {} +}; + +template <typename XYorXYZ> +inline typename z_access<XYorXYZ>::type +get_z(XYorXYZ const& xy_or_xyz) +{ + return z_access<XYorXYZ>::get(xy_or_xyz); +} + +template <typename XYorXYZ> +inline void set_z(XYorXYZ & xy_or_xyz, + typename z_access<XYorXYZ>::type const& z) +{ + return z_access<XYorXYZ>::set(xy_or_xyz, z); +} + +template +< + typename Range, + bool AddZ = (dimension<typename boost::range_value<Range>::type>::value < 3) +> +struct range_wrapper +{ + typedef Range range_type; + typedef typename boost::range_value<Range>::type point_type; + typedef typename coordinate_type<point_type>::type coord_t; + + range_wrapper(Range & range) + : m_range(range) + {} + + range_type & get_range() { return m_range; } + + coord_t get_z(std::size_t i) { return detail::get_z(range::at(m_range, i)); } + void set_z(std::size_t i, coord_t const& v) { return detail::set_z(range::at(m_range, i), v); } + +private: + Range & m_range; +}; + +template <typename Range> +struct range_wrapper<Range, true> +{ + typedef Range range_type; + typedef typename boost::range_value<Range>::type point_type; + typedef typename coordinate_type<point_type>::type coord_t; + + range_wrapper(Range & range) + : m_range(range) + , m_zs(boost::size(range), coord_t(0)) + {} + + range_type & get_range() { return m_range; } + + coord_t get_z(std::size_t i) { return m_zs[i]; } + void set_z(std::size_t i, coord_t const& v) { m_zs[i] = v; } + +private: + Range & m_range; + std::vector<coord_t> m_zs; +}; + +// ----------------------------------------------------------- +// Boost.Geometry helpers end +// ----------------------------------------------------------- + +/*#ifndef SRS_WGS84_SEMIMAJOR +#define SRS_WGS84_SEMIMAJOR 6378137.0 +#endif + +#ifndef SRS_WGS84_ESQUARED +#define SRS_WGS84_ESQUARED 0.0066943799901413165 +#endif*/ + +template <typename Par> +inline typename Par::type Dx_BF(Par const& defn) { return defn.datum_params[0]; } +template <typename Par> +inline typename Par::type Dy_BF(Par const& defn) { return defn.datum_params[1]; } +template <typename Par> +inline typename Par::type Dz_BF(Par const& defn) { return defn.datum_params[2]; } +template <typename Par> +inline typename Par::type Rx_BF(Par const& defn) { return defn.datum_params[3]; } +template <typename Par> +inline typename Par::type Ry_BF(Par const& defn) { return defn.datum_params[4]; } +template <typename Par> +inline typename Par::type Rz_BF(Par const& defn) { return defn.datum_params[5]; } +template <typename Par> +inline typename Par::type M_BF(Par const& defn) { return defn.datum_params[6]; } + +/* +** This table is intended to indicate for any given error code in +** the range 0 to -44, whether that error will occur for all locations (ie. +** it is a problem with the coordinate system as a whole) in which case the +** value would be 0, or if the problem is with the point being transformed +** in which case the value is 1. +** +** At some point we might want to move this array in with the error message +** list or something, but while experimenting with it this should be fine. +*/ + +static const int transient_error[50] = { + /* 0 1 2 3 4 5 6 7 8 9 */ + /* 0 to 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 10 to 19 */ 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, + /* 20 to 29 */ 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, + /* 30 to 39 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 40 to 49 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }; + + +template <typename T, typename Range> +inline int pj_geocentric_to_geodetic( T const& a, T const& es, + Range & range ); +template <typename T, typename Range> +inline int pj_geodetic_to_geocentric( T const& a, T const& es, + Range & range ); + +/************************************************************************/ +/* pj_transform() */ +/* */ +/* Currently this function doesn't recognise if two projections */ +/* are identical (to short circuit reprojection) because it is */ +/* difficult to compare PJ structures (since there are some */ +/* projection specific components). */ +/************************************************************************/ + +template <typename SrcPrj, typename DstPrj2, typename Par, typename Range> +inline bool pj_transform(SrcPrj const& srcprj, Par const& srcdefn, + DstPrj2 const& dstprj, Par const& dstdefn, + Range & range) + +{ + typedef typename boost::range_value<Range>::type point_type; + typedef typename coordinate_type<point_type>::type coord_t; + static const std::size_t dimension = geometry::dimension<point_type>::value; + std::size_t point_count = boost::size(range); + bool result = true; + +/* -------------------------------------------------------------------- */ +/* Transform unusual input coordinate axis orientation to */ +/* standard form if needed. */ +/* -------------------------------------------------------------------- */ + // Ignored + +/* -------------------------------------------------------------------- */ +/* Transform Z to meters if it isn't already. */ +/* -------------------------------------------------------------------- */ + if( srcdefn.vto_meter != 1.0 && dimension > 2 ) + { + for( std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = geometry::range::at(range, i); + set_z(point, get_z(point) * srcdefn.vto_meter); + } + } + +/* -------------------------------------------------------------------- */ +/* Transform geocentric source coordinates to lat/long. */ +/* -------------------------------------------------------------------- */ + if( srcdefn.is_geocent ) + { + // Point should be cartesian 3D (ECEF) + if (dimension < 3) + BOOST_THROW_EXCEPTION( projection_exception(PJD_ERR_GEOCENTRIC) ); + //return PJD_ERR_GEOCENTRIC; + + if( srcdefn.to_meter != 1.0 ) + { + for(std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = range::at(range, i); + if( ! is_invalid_point(point) ) + { + set<0>(point, get<0>(point) * srcdefn.to_meter); + set<1>(point, get<1>(point) * srcdefn.to_meter); + } + } + } + + range_wrapper<Range, false> rng(range); + int err = pj_geocentric_to_geodetic( srcdefn.a_orig, srcdefn.es_orig, + rng ); + if( err != 0 ) + BOOST_THROW_EXCEPTION( projection_exception(err) ); + //return err; + + // NOTE: here 3D cartesian ECEF is converted into 3D geodetic LLH + } + +/* -------------------------------------------------------------------- */ +/* Transform source points to lat/long, if they aren't */ +/* already. */ +/* -------------------------------------------------------------------- */ + else if( !srcdefn.is_latlong ) + { + // Point should be cartesian 2D or 3D (map projection) + + /* Check first if projection is invertible. */ + /*if( (srcdefn->inv3d == NULL) && (srcdefn->inv == NULL)) + { + pj_ctx_set_errno( pj_get_ctx(srcdefn), -17 ); + pj_log( pj_get_ctx(srcdefn), PJ_LOG_ERROR, + "pj_transform(): source projection not invertible" ); + return -17; + }*/ + + /* If invertible - First try inv3d if defined */ + //if (srcdefn->inv3d != NULL) + //{ + // /* Three dimensions must be defined */ + // if ( z == NULL) + // { + // pj_ctx_set_errno( pj_get_ctx(srcdefn), PJD_ERR_GEOCENTRIC); + // return PJD_ERR_GEOCENTRIC; + // } + + // for (i=0; i < point_count; i++) + // { + // XYZ projected_loc; + // XYZ geodetic_loc; + + // projected_loc.u = x[point_offset*i]; + // projected_loc.v = y[point_offset*i]; + // projected_loc.w = z[point_offset*i]; + + // if (projected_loc.u == HUGE_VAL) + // continue; + + // geodetic_loc = pj_inv3d(projected_loc, srcdefn); + // if( srcdefn->ctx->last_errno != 0 ) + // { + // if( (srcdefn->ctx->last_errno != 33 /*EDOM*/ + // && srcdefn->ctx->last_errno != 34 /*ERANGE*/ ) + // && (srcdefn->ctx->last_errno > 0 + // || srcdefn->ctx->last_errno < -44 || point_count == 1 + // || transient_error[-srcdefn->ctx->last_errno] == 0 ) ) + // return srcdefn->ctx->last_errno; + // else + // { + // geodetic_loc.u = HUGE_VAL; + // geodetic_loc.v = HUGE_VAL; + // geodetic_loc.w = HUGE_VAL; + // } + // } + + // x[point_offset*i] = geodetic_loc.u; + // y[point_offset*i] = geodetic_loc.v; + // z[point_offset*i] = geodetic_loc.w; + + // } + + //} + //else + { + /* Fallback to the original PROJ.4 API 2d inversion - inv */ + for( std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = range::at(range, i); + + if( is_invalid_point(point) ) + continue; + + try + { + pj_inv(srcprj, srcdefn, point, point); + } + catch(projection_exception const& e) + { + if( (e.code() != 33 /*EDOM*/ + && e.code() != 34 /*ERANGE*/ ) + && (e.code() > 0 + || e.code() < -44 /*|| point_count == 1*/ + || transient_error[-e.code()] == 0) ) { + BOOST_RETHROW + } else { + set_invalid_point(point); + result = false; + if (point_count == 1) + return result; + } + } + } + } + } + +/* -------------------------------------------------------------------- */ +/* But if they are already lat long, adjust for the prime */ +/* meridian if there is one in effect. */ +/* -------------------------------------------------------------------- */ + if( srcdefn.from_greenwich != 0.0 ) + { + for( std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = range::at(range, i); + + if( ! is_invalid_point(point) ) + set<0>(point, get<0>(point) + srcdefn.from_greenwich); + } + } + +/* -------------------------------------------------------------------- */ +/* Do we need to translate from geoid to ellipsoidal vertical */ +/* datum? */ +/* -------------------------------------------------------------------- */ + /*if( srcdefn->has_geoid_vgrids && z != NULL ) + { + if( pj_apply_vgridshift( srcdefn, "sgeoidgrids", + &(srcdefn->vgridlist_geoid), + &(srcdefn->vgridlist_geoid_count), + 0, point_count, point_offset, x, y, z ) != 0 ) + return pj_ctx_get_errno(srcdefn->ctx); + }*/ + +/* -------------------------------------------------------------------- */ +/* Convert datums if needed, and possible. */ +/* -------------------------------------------------------------------- */ + if ( ! pj_datum_transform( srcdefn, dstdefn, range ) ) + { + result = false; + } + +/* -------------------------------------------------------------------- */ +/* Do we need to translate from ellipsoidal to geoid vertical */ +/* datum? */ +/* -------------------------------------------------------------------- */ + /*if( dstdefn->has_geoid_vgrids && z != NULL ) + { + if( pj_apply_vgridshift( dstdefn, "sgeoidgrids", + &(dstdefn->vgridlist_geoid), + &(dstdefn->vgridlist_geoid_count), + 1, point_count, point_offset, x, y, z ) != 0 ) + return dstdefn->ctx->last_errno; + }*/ + +/* -------------------------------------------------------------------- */ +/* But if they are staying lat long, adjust for the prime */ +/* meridian if there is one in effect. */ +/* -------------------------------------------------------------------- */ + if( dstdefn.from_greenwich != 0.0 ) + { + for( std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = range::at(range, i); + + if( ! is_invalid_point(point) ) + set<0>(point, get<0>(point) - dstdefn.from_greenwich); + } + } + +/* -------------------------------------------------------------------- */ +/* Transform destination latlong to geocentric if required. */ +/* -------------------------------------------------------------------- */ + if( dstdefn.is_geocent ) + { + // Point should be cartesian 3D (ECEF) + if (dimension < 3) + BOOST_THROW_EXCEPTION( projection_exception(PJD_ERR_GEOCENTRIC) ); + //return PJD_ERR_GEOCENTRIC; + + // NOTE: In the original code the return value of the following + // function is not checked + range_wrapper<Range, false> rng(range); + int err = pj_geodetic_to_geocentric( dstdefn.a_orig, dstdefn.es_orig, + rng ); + if( err == -14 ) + result = false; + else + BOOST_THROW_EXCEPTION( projection_exception(err) ); + + if( dstdefn.fr_meter != 1.0 ) + { + for( std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = range::at(range, i); + if( ! is_invalid_point(point) ) + { + set<0>(point, get<0>(point) * dstdefn.fr_meter); + set<1>(point, get<1>(point) * dstdefn.fr_meter); + } + } + } + } + +/* -------------------------------------------------------------------- */ +/* Transform destination points to projection coordinates, if */ +/* desired. */ +/* -------------------------------------------------------------------- */ + else if( !dstdefn.is_latlong ) + { + + //if( dstdefn->fwd3d != NULL) + //{ + // for( i = 0; i < point_count; i++ ) + // { + // XYZ projected_loc; + // LPZ geodetic_loc; + + // geodetic_loc.u = x[point_offset*i]; + // geodetic_loc.v = y[point_offset*i]; + // geodetic_loc.w = z[point_offset*i]; + + // if (geodetic_loc.u == HUGE_VAL) + // continue; + + // projected_loc = pj_fwd3d( geodetic_loc, dstdefn); + // if( dstdefn->ctx->last_errno != 0 ) + // { + // if( (dstdefn->ctx->last_errno != 33 /*EDOM*/ + // && dstdefn->ctx->last_errno != 34 /*ERANGE*/ ) + // && (dstdefn->ctx->last_errno > 0 + // || dstdefn->ctx->last_errno < -44 || point_count == 1 + // || transient_error[-dstdefn->ctx->last_errno] == 0 ) ) + // return dstdefn->ctx->last_errno; + // else + // { + // projected_loc.u = HUGE_VAL; + // projected_loc.v = HUGE_VAL; + // projected_loc.w = HUGE_VAL; + // } + // } + + // x[point_offset*i] = projected_loc.u; + // y[point_offset*i] = projected_loc.v; + // z[point_offset*i] = projected_loc.w; + // } + + //} + //else + { + for(std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = range::at(range, i); + + if( is_invalid_point(point) ) + continue; + + try { + pj_fwd(dstprj, dstdefn, point, point); + } catch (projection_exception const& e) { + + if( (e.code() != 33 /*EDOM*/ + && e.code() != 34 /*ERANGE*/ ) + && (e.code() > 0 + || e.code() < -44 /*|| point_count == 1*/ + || transient_error[-e.code()] == 0) ) { + BOOST_RETHROW + } else { + set_invalid_point(point); + result = false; + if (point_count == 1) + return result; + } + } + } + } + } + +/* -------------------------------------------------------------------- */ +/* If a wrapping center other than 0 is provided, rewrap around */ +/* the suggested center (for latlong coordinate systems only). */ +/* -------------------------------------------------------------------- */ + else if( dstdefn.is_latlong && dstdefn.is_long_wrap_set ) + { + for( std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = range::at(range, i); + coord_t x = get_as_radian<0>(point); + + if( is_invalid_point(point) ) + continue; + + // TODO - units-dependant constants could be used instead + while( x < dstdefn.long_wrap_center - math::pi<coord_t>() ) + x += math::two_pi<coord_t>(); + while( x > dstdefn.long_wrap_center + math::pi<coord_t>() ) + x -= math::two_pi<coord_t>(); + + set_from_radian<0>(point, x); + } + } + +/* -------------------------------------------------------------------- */ +/* Transform Z from meters if needed. */ +/* -------------------------------------------------------------------- */ + if( dstdefn.vto_meter != 1.0 && dimension > 2 ) + { + for( std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = geometry::range::at(range, i); + set_z(point, get_z(point) * dstdefn.vfr_meter); + } + } + +/* -------------------------------------------------------------------- */ +/* Transform normalized axes into unusual output coordinate axis */ +/* orientation if needed. */ +/* -------------------------------------------------------------------- */ + // Ignored + + return result; +} + +/************************************************************************/ +/* pj_geodetic_to_geocentric() */ +/************************************************************************/ + +template <typename T, typename Range, bool AddZ> +inline int pj_geodetic_to_geocentric( T const& a, T const& es, + range_wrapper<Range, AddZ> & range_wrapper ) + +{ + //typedef typename boost::range_iterator<Range>::type iterator; + typedef typename boost::range_value<Range>::type point_type; + //typedef typename coordinate_type<point_type>::type coord_t; + + Range & rng = range_wrapper.get_range(); + std::size_t point_count = boost::size(rng); + + int ret_errno = 0; + + T const b = (es == 0.0) ? a : a * sqrt(1-es); + + GeocentricInfo<T> gi; + if( pj_Set_Geocentric_Parameters( gi, a, b ) != 0 ) + { + return PJD_ERR_GEOCENTRIC; + } + + for( std::size_t i = 0 ; i < point_count ; ++i ) + { + point_type & point = range::at(rng, i); + + if( is_invalid_point(point) ) + continue; + + T X = 0, Y = 0, Z = 0; + if( pj_Convert_Geodetic_To_Geocentric( gi, + get_as_radian<0>(point), + get_as_radian<1>(point), + range_wrapper.get_z(i), // Height + X, Y, Z ) != 0 ) + { + ret_errno = -14; + set_invalid_point(point); + /* but keep processing points! */ + } + else + { + set<0>(point, X); + set<1>(point, Y); + range_wrapper.set_z(i, Z); + } + } + + return ret_errno; +} + +/************************************************************************/ +/* pj_geodetic_to_geocentric() */ +/************************************************************************/ + +template <typename T, typename Range, bool AddZ> +inline int pj_geocentric_to_geodetic( T const& a, T const& es, + range_wrapper<Range, AddZ> & range_wrapper ) + +{ + //typedef typename boost::range_iterator<Range>::type iterator; + typedef typename boost::range_value<Range>::type point_type; + //typedef typename coordinate_type<point_type>::type coord_t; + + Range & rng = range_wrapper.get_range(); + std::size_t point_count = boost::size(rng); + + T const b = (es == 0.0) ? a : a * sqrt(1-es); + + GeocentricInfo<T> gi; + if( pj_Set_Geocentric_Parameters( gi, a, b ) != 0 ) + { + return PJD_ERR_GEOCENTRIC; + } + + for( std::size_t i = 0 ; i < point_count ; ++i ) + { + point_type & point = range::at(rng, i); + + if( is_invalid_point(point) ) + continue; + + T Longitude = 0, Latitude = 0, Height = 0; + pj_Convert_Geocentric_To_Geodetic( gi, + get<0>(point), + get<1>(point), + range_wrapper.get_z(i), // z + Longitude, Latitude, Height ); + + set_from_radian<0>(point, Longitude); + set_from_radian<1>(point, Latitude); + range_wrapper.set_z(i, Height); // Height + } + + return 0; +} + +/************************************************************************/ +/* pj_compare_datums() */ +/* */ +/* Returns TRUE if the two datums are identical, otherwise */ +/* FALSE. */ +/************************************************************************/ + +template <typename Par> +inline bool pj_compare_datums( Par & srcdefn, Par & dstdefn ) +{ + if( srcdefn.datum_type != dstdefn.datum_type ) + { + return false; + } + else if( srcdefn.a_orig != dstdefn.a_orig + || math::abs(srcdefn.es_orig - dstdefn.es_orig) > 0.000000000050 ) + { + /* the tolerance for es is to ensure that GRS80 and WGS84 are + considered identical */ + return false; + } + else if( srcdefn.datum_type == PJD_3PARAM ) + { + return (srcdefn.datum_params[0] == dstdefn.datum_params[0] + && srcdefn.datum_params[1] == dstdefn.datum_params[1] + && srcdefn.datum_params[2] == dstdefn.datum_params[2]); + } + else if( srcdefn.datum_type == PJD_7PARAM ) + { + return (srcdefn.datum_params[0] == dstdefn.datum_params[0] + && srcdefn.datum_params[1] == dstdefn.datum_params[1] + && srcdefn.datum_params[2] == dstdefn.datum_params[2] + && srcdefn.datum_params[3] == dstdefn.datum_params[3] + && srcdefn.datum_params[4] == dstdefn.datum_params[4] + && srcdefn.datum_params[5] == dstdefn.datum_params[5] + && srcdefn.datum_params[6] == dstdefn.datum_params[6]); + } + else if( srcdefn.datum_type == PJD_GRIDSHIFT ) + { + return pj_param(srcdefn.params,"snadgrids").s + == pj_param(dstdefn.params,"snadgrids").s; + } + else + return true; +} + +/************************************************************************/ +/* pj_geocentic_to_wgs84() */ +/************************************************************************/ + +template <typename Par, typename Range, bool AddZ> +inline int pj_geocentric_to_wgs84( Par const& defn, + range_wrapper<Range, AddZ> & range_wrapper ) + +{ + typedef typename boost::range_value<Range>::type point_type; + typedef typename coordinate_type<point_type>::type coord_t; + + Range & rng = range_wrapper.get_range(); + std::size_t point_count = boost::size(rng); + + if( defn.datum_type == PJD_3PARAM ) + { + for(std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = range::at(rng, i); + + if( is_invalid_point(point) ) + continue; + + set<0>(point, get<0>(point) + Dx_BF(defn)); + set<1>(point, get<1>(point) + Dy_BF(defn)); + range_wrapper.set_z(i, range_wrapper.get_z(i) + Dz_BF(defn)); + } + } + else if( defn.datum_type == PJD_7PARAM ) + { + for(std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = range::at(rng, i); + + if( is_invalid_point(point) ) + continue; + + coord_t x = get<0>(point); + coord_t y = get<1>(point); + coord_t z = range_wrapper.get_z(i); + + coord_t x_out, y_out, z_out; + + x_out = M_BF(defn)*( x - Rz_BF(defn)*y + Ry_BF(defn)*z) + Dx_BF(defn); + y_out = M_BF(defn)*( Rz_BF(defn)*x + y - Rx_BF(defn)*z) + Dy_BF(defn); + z_out = M_BF(defn)*(-Ry_BF(defn)*x + Rx_BF(defn)*y + z) + Dz_BF(defn); + + set<0>(point, x_out); + set<1>(point, y_out); + range_wrapper.set_z(i, z_out); + } + } + + return 0; +} + +/************************************************************************/ +/* pj_geocentic_from_wgs84() */ +/************************************************************************/ + +template <typename Par, typename Range, bool AddZ> +inline int pj_geocentric_from_wgs84( Par const& defn, + range_wrapper<Range, AddZ> & range_wrapper ) + +{ + typedef typename boost::range_value<Range>::type point_type; + typedef typename coordinate_type<point_type>::type coord_t; + + Range & rng = range_wrapper.get_range(); + std::size_t point_count = boost::size(rng); + + if( defn.datum_type == PJD_3PARAM ) + { + for(std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = range::at(rng, i); + + if( is_invalid_point(point) ) + continue; + + set<0>(point, get<0>(point) - Dx_BF(defn)); + set<1>(point, get<1>(point) - Dy_BF(defn)); + range_wrapper.set_z(i, range_wrapper.get_z(i) - Dz_BF(defn)); + } + } + else if( defn.datum_type == PJD_7PARAM ) + { + for(std::size_t i = 0; i < point_count; i++ ) + { + point_type & point = range::at(rng, i); + + if( is_invalid_point(point) ) + continue; + + coord_t x = get<0>(point); + coord_t y = get<1>(point); + coord_t z = range_wrapper.get_z(i); + + coord_t x_tmp = (x - Dx_BF(defn)) / M_BF(defn); + coord_t y_tmp = (y - Dy_BF(defn)) / M_BF(defn); + coord_t z_tmp = (z - Dz_BF(defn)) / M_BF(defn); + + x = x_tmp + Rz_BF(defn)*y_tmp - Ry_BF(defn)*z_tmp; + y = -Rz_BF(defn)*x_tmp + y_tmp + Rx_BF(defn)*z_tmp; + z = Ry_BF(defn)*x_tmp - Rx_BF(defn)*y_tmp + z_tmp; + + set<0>(point, x); + set<1>(point, y); + range_wrapper.set_z(i, z); + } + } + + return 0; +} + + +inline bool pj_datum_check_error(int err) +{ + return err != 0 && (err > 0 || transient_error[-err] == 0); +} + +/************************************************************************/ +/* pj_datum_transform() */ +/* */ +/* The input should be long/lat/z coordinates in radians in the */ +/* source datum, and the output should be long/lat/z */ +/* coordinates in radians in the destination datum. */ +/************************************************************************/ + +template <typename Par, typename Range> +inline bool pj_datum_transform( Par const& srcdefn, Par const& dstdefn, + Range & range ) + +{ + typedef typename Par::type calc_t; + bool result = true; + + calc_t src_a, src_es, dst_a, dst_es; + +/* -------------------------------------------------------------------- */ +/* We cannot do any meaningful datum transformation if either */ +/* the source or destination are of an unknown datum type */ +/* (ie. only a +ellps declaration, no +datum). This is new */ +/* behavior for PROJ 4.6.0. */ +/* -------------------------------------------------------------------- */ + if( srcdefn.datum_type == PJD_UNKNOWN + || dstdefn.datum_type == PJD_UNKNOWN ) + return result; + +/* -------------------------------------------------------------------- */ +/* Short cut if the datums are identical. */ +/* -------------------------------------------------------------------- */ + if( pj_compare_datums( srcdefn, dstdefn ) ) + return result; + + src_a = srcdefn.a_orig; + src_es = srcdefn.es_orig; + + dst_a = dstdefn.a_orig; + dst_es = dstdefn.es_orig; + +/* -------------------------------------------------------------------- */ +/* Create a temporary Z array if one is not provided. */ +/* -------------------------------------------------------------------- */ + + range_wrapper<Range> z_range(range); + +/* -------------------------------------------------------------------- */ +/* If this datum requires grid shifts, then apply it to geodetic */ +/* coordinates. */ +/* -------------------------------------------------------------------- */ + /*if( srcdefn.datum_type == PJD_GRIDSHIFT ) + { + try { + pj_apply_gridshift_2( srcdefn, 0, point_count, point_offset, x, y, z ); + } catch (projection_exception const& e) { + if (pj_datum_check_error(e.code())) { + BOOST_RETHROW + } + } + + src_a = SRS_WGS84_SEMIMAJOR; + src_es = SRS_WGS84_ESQUARED; + } + + if( dstdefn.datum_type == PJD_GRIDSHIFT ) + { + dst_a = SRS_WGS84_SEMIMAJOR; + dst_es = SRS_WGS84_ESQUARED; + }*/ + +/* ==================================================================== */ +/* Do we need to go through geocentric coordinates? */ +/* ==================================================================== */ + if( src_es != dst_es || src_a != dst_a + || srcdefn.datum_type == PJD_3PARAM + || srcdefn.datum_type == PJD_7PARAM + || dstdefn.datum_type == PJD_3PARAM + || dstdefn.datum_type == PJD_7PARAM) + { +/* -------------------------------------------------------------------- */ +/* Convert to geocentric coordinates. */ +/* -------------------------------------------------------------------- */ + int err = pj_geodetic_to_geocentric( src_a, src_es, z_range ); + if (pj_datum_check_error(err)) + BOOST_THROW_EXCEPTION( projection_exception(err) ); + else if (err != 0) + result = false; + +/* -------------------------------------------------------------------- */ +/* Convert between datums. */ +/* -------------------------------------------------------------------- */ + if( srcdefn.datum_type == PJD_3PARAM + || srcdefn.datum_type == PJD_7PARAM ) + { + try { + pj_geocentric_to_wgs84( srcdefn, z_range ); + } catch (projection_exception const& e) { + if (pj_datum_check_error(e.code())) { + BOOST_RETHROW + } + } + } + + if( dstdefn.datum_type == PJD_3PARAM + || dstdefn.datum_type == PJD_7PARAM ) + { + try { + pj_geocentric_from_wgs84( dstdefn, z_range ); + } catch (projection_exception const& e) { + if (pj_datum_check_error(e.code())) { + BOOST_RETHROW + } + } + } + +/* -------------------------------------------------------------------- */ +/* Convert back to geodetic coordinates. */ +/* -------------------------------------------------------------------- */ + err = pj_geocentric_to_geodetic( dst_a, dst_es, z_range ); + if (pj_datum_check_error(err)) + BOOST_THROW_EXCEPTION( projection_exception(err) ); + else if (err != 0) + result = false; + } + +/* -------------------------------------------------------------------- */ +/* Apply grid shift to destination if required. */ +/* -------------------------------------------------------------------- */ + /*if( dstdefn.datum_type == PJD_GRIDSHIFT ) + { + try { + pj_apply_gridshift_2( dstdefn, 1, point_count, point_offset, x, y, z ); + } catch (projection_exception const& e) { + if (pj_datum_check_error(e.code())) + BOOST_RETHROW + } + }*/ + + return result; +} + +} // namespace detail + +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_SRS_PROJECTIONS_IMPL_PJ_TRANSFORM_HPP diff --git a/boost/geometry/srs/projections/impl/pj_tsfn.hpp b/boost/geometry/srs/projections/impl/pj_tsfn.hpp new file mode 100644 index 0000000000..d39a0fb2fc --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_tsfn.hpp @@ -0,0 +1,58 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_PJ_TSFN_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PJ_TSFN_HPP + +#include <boost/geometry/util/math.hpp> + +namespace boost { namespace geometry { namespace projections { +namespace detail { + + /* determine small t */ + template <typename T> + inline T pj_tsfn(T const& phi, T sinphi, T const& e) + { + sinphi *= e; + return (tan (.5 * (geometry::math::half_pi<T>() - phi)) / + pow((1. - sinphi) / (1. + sinphi), .5 * e)); + } + +} // namespace detail +}}} // namespace boost::geometry::projections +#endif diff --git a/boost/geometry/srs/projections/impl/pj_units.hpp b/boost/geometry/srs/projections/impl/pj_units.hpp new file mode 100644 index 0000000000..269b8ff92e --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_units.hpp @@ -0,0 +1,79 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_UNITS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_UNITS_HPP + +#include <boost/geometry/srs/projections/impl/projects.hpp> + +namespace boost { namespace geometry { namespace projections { +namespace detail { + +/* Field 2 that contains the multiplier to convert named units to meters +** may be expressed by either a simple floating point constant or a +** numerator/denomenator values (e.g. 1/1000) */ + +static const PJ_UNITS pj_units[] = +{ + { "km", "1000.", "Kilometer" }, + { "m", "1.", "Meter" }, + { "dm", "1/10", "Decimeter" }, + { "cm", "1/100", "Centimeter" }, + { "mm", "1/1000", "Millimeter" }, + { "kmi", "1852.0", "International Nautical Mile" }, + { "in", "0.0254", "International Inch" }, + { "ft", "0.3048", "International Foot" }, + { "yd", "0.9144", "International Yard" }, + { "mi", "1609.344", "International Statute Mile" }, + { "fath", "1.8288", "International Fathom" }, + { "ch", "20.1168", "International Chain" }, + { "link", "0.201168", "International Link" }, + { "us-in", "1./39.37", "U.S. Surveyor's Inch" }, + { "us-ft", "0.304800609601219", "U.S. Surveyor's Foot" }, + { "us-yd", "0.914401828803658", "U.S. Surveyor's Yard" }, + { "us-ch", "20.11684023368047", "U.S. Surveyor's Chain" }, + { "us-mi", "1609.347218694437", "U.S. Surveyor's Statute Mile" }, + { "ind-yd", "0.91439523", "Indian Yard" }, + { "ind-ft", "0.30479841", "Indian Foot" }, + { "ind-ch", "20.11669506", "Indian Chain" } +}; + +} // detail +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PJ_UNITS_HPP diff --git a/boost/geometry/srs/projections/impl/pj_zpoly1.hpp b/boost/geometry/srs/projections/impl/pj_zpoly1.hpp new file mode 100644 index 0000000000..613b6d2b35 --- /dev/null +++ b/boost/geometry/srs/projections/impl/pj_zpoly1.hpp @@ -0,0 +1,106 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_ZPOLY1_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ZPOLY1_HPP + + +#include <boost/geometry/srs/projections/impl/projects.hpp> + + +namespace boost { namespace geometry { namespace projections { namespace detail { + + /* evaluate complex polynomial */ + + /* note: coefficients are always from C_1 to C_n + ** i.e. C_0 == (0., 0) + ** n should always be >= 1 though no checks are made + */ + template <typename T> + inline COMPLEX<T> + pj_zpoly1(COMPLEX<T> z, const COMPLEX<T> *C, int n) + { + COMPLEX<T> a; + T t; + + a = *(C += n); + while (n-- > 0) + { + a.r = (--C)->r + z.r * (t = a.r) - z.i * a.i; + a.i = C->i + z.r * a.i + z.i * t; + } + a.r = z.r * (t = a.r) - z.i * a.i; + a.i = z.r * a.i + z.i * t; + return a; + } + + /* evaluate complex polynomial and derivative */ + template <typename T> + inline COMPLEX<T> + pj_zpolyd1(COMPLEX<T> z, const COMPLEX<T> *C, int n, COMPLEX<T> *der) + { + T t; + bool first = true; + + COMPLEX<T> a = *(C += n); + COMPLEX<T> b = a; + while (n-- > 0) + { + if (first) + { + first = false; + } + else + { + b.r = a.r + z.r * (t = b.r) - z.i * b.i; + b.i = a.i + z.r * b.i + z.i * t; + } + a.r = (--C)->r + z.r * (t = a.r) - z.i * a.i; + a.i = C->i + z.r * a.i + z.i * t; + } + b.r = a.r + z.r * (t = b.r) - z.i * b.i; + b.i = a.i + z.r * b.i + z.i * t; + a.r = z.r * (t = a.r) - z.i * a.i; + a.i = z.r * a.i + z.i * t; + *der = b; + return a; + } + +}}}} // namespace boost::geometry::projections::detail + +#endif diff --git a/boost/geometry/srs/projections/impl/proj_mdist.hpp b/boost/geometry/srs/projections/impl/proj_mdist.hpp new file mode 100644 index 0000000000..1c325df1c6 --- /dev/null +++ b/boost/geometry/srs/projections/impl/proj_mdist.hpp @@ -0,0 +1,144 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_PROJ_MDIST_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PROJ_MDIST_HPP + + +#include <boost/geometry/util/math.hpp> + + +namespace boost { namespace geometry { namespace projections +{ +namespace detail +{ + static const int MDIST_MAX_ITER = 20; + + template <typename T> + struct MDIST + { + int nb; + T es; + T E; + T b[MDIST_MAX_ITER]; + }; + + template <typename CT> + inline bool proj_mdist_ini(CT const& es, MDIST<CT>& b) + { + CT numf, numfi, twon1, denf, denfi, ens, T, twon; + CT den, El, Es; + CT E[MDIST_MAX_ITER]; + int i, j; + + /* generate E(e^2) and its terms E[] */ + ens = es; + numf = twon1 = denfi = 1.; + denf = 1.; + twon = 4.; + Es = El = E[0] = 1.; + for (i = 1; i < MDIST_MAX_ITER ; ++i) + { + numf *= (twon1 * twon1); + den = twon * denf * denf * twon1; + T = numf/den; + Es -= (E[i] = T * ens); + ens *= es; + twon *= 4.; + denf *= ++denfi; + twon1 += 2.; + if (Es == El) /* jump out if no change */ + break; + El = Es; + } + b.nb = i - 1; + b.es = es; + b.E = Es; + /* generate b_n coefficients--note: collapse with prefix ratios */ + b.b[0] = Es = 1. - Es; + numf = denf = 1.; + numfi = 2.; + denfi = 3.; + for (j = 1; j < i; ++j) + { + Es -= E[j]; + numf *= numfi; + denf *= denfi; + b.b[j] = Es * numf / denf; + numfi += 2.; + denfi += 2.; + } + return true; + } + + template <typename T> + inline T proj_mdist(T const& phi, T const& sphi, T const& cphi, MDIST<T> const& b) + { + T sc, sum, sphi2, D; + int i; + + sc = sphi * cphi; + sphi2 = sphi * sphi; + D = phi * b.E - b.es * sc / sqrt(1. - b.es * sphi2); + sum = b.b[i = b.nb]; + while (i) sum = b.b[--i] + sphi2 * sum; + return(D + sc * sum); + } + + template <typename T> + inline T proj_inv_mdist(T const& dist, MDIST<T> const& b) + { + static const T TOL = 1e-14; + T s, t, phi, k; + int i; + + k = 1./(1.- b.es); + i = MDIST_MAX_ITER; + phi = dist; + while ( i-- ) { + s = sin(phi); + t = 1. - b.es * s * s; + phi -= t = (proj_mdist(phi, s, cos(phi), b) - dist) * + (t * sqrt(t)) * k; + if (geometry::math::abs(t) < TOL) /* that is no change */ + return phi; + } + /* convergence failed */ + BOOST_THROW_EXCEPTION( projection_exception(-17) ); + } +} // namespace detail + +}}} // namespace boost::geometry::projections + +#endif diff --git a/boost/geometry/srs/projections/impl/projects.hpp b/boost/geometry/srs/projections/impl/projects.hpp new file mode 100644 index 0000000000..232ae67ae9 --- /dev/null +++ b/boost/geometry/srs/projections/impl/projects.hpp @@ -0,0 +1,272 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// This file is manually converted from PROJ4 (projects.h) + +// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Geometry Library by Barend Gehrels (Geodan, Amsterdam) + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMPL_PROJECTS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMPL_PROJECTS_HPP + + +#include <cstring> +#include <string> +#include <vector> + +#include <boost/geometry/srs/projections/exception.hpp> +#include <boost/math/constants/constants.hpp> +#include <boost/mpl/if.hpp> +#include <boost/type_traits/is_pod.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + +/* some useful constants */ +template <typename T> +inline T ONEPI() { return boost::math::constants::pi<T>(); } +template <typename T> +inline T HALFPI() { return boost::math::constants::half_pi<T>(); } +template <typename T> +inline T FORTPI() { return boost::math::constants::pi<T>() / T(4); } +template <typename T> +inline T TWOPI() { return boost::math::constants::two_pi<T>(); } +template <typename T> +inline T TWO_D_PI() { return boost::math::constants::two_div_pi<T>(); } +template <typename T> +inline T HALFPI_SQR() { return 2.4674011002723396547086227499689; } +template <typename T> +inline T PI_SQR() { return boost::math::constants::pi_sqr<T>(); } +template <typename T> +inline T THIRD() { return 0.3333333333333333333333333333333; } +template <typename T> +inline T TWOTHIRD() { return 0.6666666666666666666666666666666; } +template <typename T> +inline T PI_HALFPI() { return 4.7123889803846898576939650749193; } +template <typename T> +inline T TWOPI_HALFPI() { return 7.8539816339744830961566084581988; } +template <typename T> +inline T PI_DIV_3() { return 1.0471975511965977461542144610932; } + +/* datum_type values */ +static const int PJD_UNKNOWN = 0; +static const int PJD_3PARAM = 1; +static const int PJD_7PARAM = 2; +static const int PJD_GRIDSHIFT = 3; +static const int PJD_WGS84 = 4; /* WGS84 (or anything considered equivelent) */ + +/* library errors */ +static const int PJD_ERR_GEOCENTRIC = -45; +static const int PJD_ERR_AXIS = -47; +static const int PJD_ERR_GRID_AREA = -48; +static const int PJD_ERR_CATALOG = -49; + +template <typename T> +struct pvalue +{ + std::string param; + int used; + + int i; + T f; + std::string s; +}; + +template <typename T> +struct pj_const_pod +{ + int over; /* over-range flag */ + int geoc; /* geocentric latitude flag */ + int is_latlong; /* proj=latlong ... not really a projection at all */ + int is_geocent; /* proj=geocent ... not really a projection at all */ + T + a, /* major axis or radius if es==0 */ + a_orig, /* major axis before any +proj related adjustment */ + es, /* e ^ 2 */ + es_orig, /* es before any +proj related adjustment */ + e, /* eccentricity */ + ra, /* 1/A */ + one_es, /* 1 - e^2 */ + rone_es, /* 1/one_es */ + lam0, phi0, /* central longitude, latitude */ + x0, y0, /* easting and northing */ + k0, /* general scaling factor */ + to_meter, fr_meter, /* cartesian scaling */ + vto_meter, vfr_meter; /* Vertical scaling. Internal unit [m] */ + + int datum_type; /* PJD_UNKNOWN/3PARAM/7PARAM/GRIDSHIFT/WGS84 */ + T datum_params[7]; + T from_greenwich; /* prime meridian offset (in radians) */ + T long_wrap_center; /* 0.0 for -180 to 180, actually in radians*/ + bool is_long_wrap_set; + + // Initialize all variables to zero + pj_const_pod() + { + std::memset(this, 0, sizeof(pj_const_pod)); + } +}; + +template <typename T> +struct pj_const_non_pod +{ + int over; /* over-range flag */ + int geoc; /* geocentric latitude flag */ + int is_latlong; /* proj=latlong ... not really a projection at all */ + int is_geocent; /* proj=geocent ... not really a projection at all */ + T + a, /* major axis or radius if es==0 */ + a_orig, /* major axis before any +proj related adjustment */ + es, /* e ^ 2 */ + es_orig, /* es before any +proj related adjustment */ + e, /* eccentricity */ + ra, /* 1/A */ + one_es, /* 1 - e^2 */ + rone_es, /* 1/one_es */ + lam0, phi0, /* central longitude, latitude */ + x0, y0, /* easting and northing */ + k0, /* general scaling factor */ + to_meter, fr_meter, /* cartesian scaling */ + vto_meter, vfr_meter; /* Vertical scaling. Internal unit [m] */ + + int datum_type; /* PJD_UNKNOWN/3PARAM/7PARAM/GRIDSHIFT/WGS84 */ + T datum_params[7]; + T from_greenwich; /* prime meridian offset (in radians) */ + T long_wrap_center; /* 0.0 for -180 to 180, actually in radians*/ + bool is_long_wrap_set; + + // Initialize all variables to zero + pj_const_non_pod() + : over(0), geoc(0), is_latlong(0), is_geocent(0) + , a(0), a_orig(0), es(0), es_orig(0), e(0), ra(0) + , one_es(0), rone_es(0), lam0(0), phi0(0), x0(0), y0(0), k0(0) + , to_meter(0), fr_meter(0), vto_meter(0), vfr_meter(0) + , datum_type(PJD_UNKNOWN) + , from_greenwich(0), long_wrap_center(0), is_long_wrap_set(false) + { + datum_params[0] = 0; + datum_params[1] = 0; + datum_params[2] = 0; + datum_params[3] = 0; + datum_params[4] = 0; + datum_params[5] = 0; + datum_params[6] = 0; + } +}; + +template <typename T> +struct pj_const + : boost::mpl::if_c + < + boost::is_pod<T>::value, + pj_const_pod<T>, + pj_const_non_pod<T> + >::type +{}; + +// PROJ4 complex. Might be replaced with std::complex +template <typename T> +struct COMPLEX { T r, i; }; + +struct PJ_ELLPS +{ + std::string id; /* ellipse keyword name */ + std::string major; /* a= value */ + std::string ell; /* elliptical parameter */ + std::string name; /* comments */ +}; + +struct PJ_DATUMS +{ + std::string id; /* datum keyword */ + std::string defn; /* ie. "to_wgs84=..." */ + std::string ellipse_id; /* ie from ellipse table */ + std::string comments; /* EPSG code, etc */ +}; + +struct PJ_PRIME_MERIDIANS +{ + std::string id; /* prime meridian keyword */ + std::string defn; /* offset from greenwich in DMS format. */ +}; + +struct PJ_UNITS +{ + std::string id; /* units keyword */ + std::string to_meter; /* multiply by value to get meters */ + std::string name; /* comments */ +}; + +template <typename T> +struct DERIVS +{ + T x_l, x_p; /* derivatives of x for lambda-phi */ + T y_l, y_p; /* derivatives of y for lambda-phi */ +}; + +template <typename T> +struct FACTORS +{ + DERIVS<T> der; + T h, k; /* meridinal, parallel scales */ + T omega, thetap; /* angular distortion, theta prime */ + T conv; /* convergence */ + T s; /* areal scale factor */ + T a, b; /* max-min scale error */ + int code; /* info as to analytics, see following */ +}; + +} // namespace detail +#endif // DOXYGEN_NO_DETAIL + +/*! + \brief parameters, projection parameters + \details This structure initializes all projections + \ingroup projection +*/ +template <typename T> +struct parameters : public detail::pj_const<T> +{ + typedef T type; + + std::string name; + std::vector<detail::pvalue<T> > params; +}; + +}}} // namespace boost::geometry::projections +#endif // BOOST_GEOMETRY_PROJECTIONS_IMPL_PROJECTS_HPP diff --git a/boost/geometry/srs/projections/invalid_point.hpp b/boost/geometry/srs/projections/invalid_point.hpp new file mode 100644 index 0000000000..41bc8252c5 --- /dev/null +++ b/boost/geometry/srs/projections/invalid_point.hpp @@ -0,0 +1,38 @@ +// Boost.Geometry + +// Copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_INVALID_POINT_HPP +#define BOOST_GEOMETRY_PROJECTIONS_INVALID_POINT_HPP + + +#include <cmath> + +#include <boost/geometry/core/access.hpp> + + +namespace boost { namespace geometry { namespace projections +{ + +// Originally in pj_transform() +template <typename Point> +inline void set_invalid_point(Point & point) +{ + geometry::set<0>(point, HUGE_VAL); + geometry::set<1>(point, HUGE_VAL); +} + +template <typename Point> +inline bool is_invalid_point(Point const& point) +{ + return geometry::get<0>(point) == HUGE_VAL; +} + +}}} // namespace boost::geometry::projections + +#endif // BOOST_GEOMETRY_PROJECTIONS_INVALID_POINT_HPP diff --git a/boost/geometry/srs/projections/par4.hpp b/boost/geometry/srs/projections/par4.hpp new file mode 100644 index 0000000000..2b8656ae3e --- /dev/null +++ b/boost/geometry/srs/projections/par4.hpp @@ -0,0 +1,501 @@ +// Boost.Geometry + +// Copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_SRS_PROJECTIONS_PAR4_HPP +#define BOOST_GEOMETRY_SRS_PROJECTIONS_PAR4_HPP + + +#include <boost/geometry/core/tag.hpp> +#include <boost/geometry/core/tags.hpp> + +#include <boost/geometry/srs/sphere.hpp> +#include <boost/geometry/srs/spheroid.hpp> + +#include <boost/mpl/assert.hpp> +#include <boost/mpl/if.hpp> +#include <boost/tuple/tuple.hpp> +#include <boost/type_traits/integral_constant.hpp> +#include <boost/type_traits/is_same.hpp> +#include <boost/type_traits/is_void.hpp> + + +namespace boost { namespace geometry { namespace srs { namespace par4 +{ + +// proj +// defined in projections' implementation files + +// ellps +struct MERIT {}; +struct SGS85 {}; +struct GRS80 {}; +struct IAU76 {}; +struct airy {}; +struct APL4_9 {}; +struct NWL9D {}; +struct mod_airy {}; +struct andrae {}; +struct aust_SA {}; +struct GRS67 {}; +struct bessel {}; +struct bess_nam {}; +struct clrk66 {}; +struct clrk80 {}; +struct clrk80ign {}; +struct CPM {}; +struct delmbr {}; +struct engelis {}; +struct evrst30 {}; +struct evrst48 {}; +struct evrst56 {}; +struct evrst69 {}; +struct evrstSS {}; +struct fschr60 {}; +struct fschr60m {}; +struct fschr68 {}; +struct helmert {}; +struct hough {}; +struct intl {}; +struct krass {}; +struct kaula {}; +struct lerch {}; +struct mprts {}; +struct new_intl {}; +struct plessis {}; +struct SEasia {}; +struct walbeck {}; +struct WGS60 {}; +struct WGS66 {}; +struct WGS72 {}; +struct WGS84 {}; +struct sphere {}; + +// datum +//struct WGS84 {}; // already defined above +struct GGRS87 {}; +struct NAD83 {}; +struct NAD27 {}; +struct potsdam {}; +struct carthage {}; +struct hermannskogel {}; +struct ire65 {}; +struct nzgd49 {}; +struct OSGB36 {}; + +template <typename P> +struct proj +{ + typedef P type; +}; + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + +template +< + typename E, + typename Tag = typename geometry::tag<E>::type +> +struct ellps_impl + : private E // empty base optimization +{ + typedef E type; + + ellps_impl() : E() {} + explicit ellps_impl(E const& e) : E(e) {} + + E const& model() const { return *this; } +}; + +template <typename E> +struct ellps_impl<E, void> +{ + typedef E type; +}; + +} // namespace detail +#endif // DOXYGEN_NO_DETAIL + +template<typename E> +struct ellps + : par4::detail::ellps_impl<E> +{ + ellps() {} + explicit ellps(E const& e) + : par4::detail::ellps_impl<E>(e) + {} +}; + +template <typename D> +struct datum +{ + typedef D type; +}; + +template <typename P> +struct o_proj +{ + typedef P type; +}; + +struct guam {}; + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + +inline double b_from_a_rf(double a, double rf) +{ + return a * (1.0 - 1.0 / rf); +} + +template +< + typename Ellps, + typename Tag = typename geometry::tag<typename Ellps::type>::type +> +struct ellps_traits +{ + typedef typename Ellps::type model_type; + static model_type model(Ellps const& e) { return e.model(); } +}; + +#define BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_B(NAME, A, B) \ +template <> \ +struct ellps_traits<ellps<par4::NAME>, void> \ +{ \ + typedef srs::spheroid<double> model_type; \ + static model_type model(ellps<par4::NAME> const&) { return model_type(A, B); } \ +}; + +#define BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(NAME, A, RF) \ +template <> \ +struct ellps_traits<ellps<par4::NAME>, void> \ +{ \ + typedef srs::spheroid<double> model_type; \ + static model_type model(ellps<par4::NAME> const&) { return model_type(A, b_from_a_rf(A, RF)); } \ +}; + +#define BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_SPHERE(NAME, R) \ +template <> \ +struct ellps_traits<ellps<par4::NAME>, void> \ +{ \ + typedef srs::sphere<double> model_type; \ + static model_type model(ellps<par4::NAME> const&) { return model_type(R); } \ +}; + +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(MERIT, 6378137.0, 298.257) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(SGS85, 6378136.0, 298.257) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(GRS80, 6378137.0, 298.257222101) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(IAU76, 6378140.0, 298.257) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_B (airy, 6377563.396, 6356256.910) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(APL4_9, 6378137.0, 298.25) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(NWL9D, 6378145.0, 298.25) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_B (mod_airy, 6377340.189, 6356034.446) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(andrae, 6377104.43, 300.0) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(aust_SA, 6378160.0, 298.25) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(GRS67, 6378160.0, 298.2471674270) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(bessel, 6377397.155, 299.1528128) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(bess_nam, 6377483.865, 299.1528128) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_B (clrk66, 6378206.4, 6356583.8) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(clrk80, 6378249.145, 293.4663) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(clrk80ign, 6378249.2, 293.4660212936269) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(CPM, 6375738.7, 334.29) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(delmbr, 6376428.0, 311.5) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(engelis, 6378136.05, 298.2566) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(evrst30, 6377276.345, 300.8017) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(evrst48, 6377304.063, 300.8017) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(evrst56, 6377301.243, 300.8017) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(evrst69, 6377295.664, 300.8017) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(evrstSS, 6377298.556, 300.8017) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(fschr60, 6378166.0, 298.3) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(fschr60m, 6378155.0, 298.3) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(fschr68, 6378150.0, 298.3) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(helmert, 6378200.0, 298.3) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(hough, 6378270.0, 297.0) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(intl, 6378388.0, 297.0) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(krass, 6378245.0, 298.3) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(kaula, 6378163.0, 298.24) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(lerch, 6378139.0, 298.257) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(mprts, 6397300.0, 191.0) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_B (new_intl, 6378157.5, 6356772.2) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_B (plessis, 6376523.0, 6355863.0) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_B (SEasia, 6378155.0, 6356773.3205) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_B (walbeck, 6376896.0, 6355834.8467) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(WGS60, 6378165.0, 298.3) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(WGS66, 6378145.0, 298.25) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(WGS72, 6378135.0, 298.26) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_ELLPS_A_RF(WGS84, 6378137.0, 298.257223563) +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_SPHERE (sphere, 6370997.0) + + +template <typename D> +struct datum_traits +{ + typedef void ellps_type; + static std::string id() { return ""; } + static std::string definition() { return ""; } +}; + +#define BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_DATUM(NAME, ID, ELLPS, DEF) \ +template <> \ +struct datum_traits< datum<par4::NAME> > \ +{ \ + typedef par4::ellps<par4::ELLPS> ellps_type; \ + static std::string id() { return ID; } \ + static std::string definition() { return DEF; } \ +}; + +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_DATUM(WGS84, "WGS84", WGS84, "towgs84=0,0,0") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_DATUM(GGRS87, "GGRS87", GRS80, "towgs84=-199.87,74.79,246.62") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_DATUM(NAD83, "NAD83", GRS80, "towgs84=0,0,0") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_DATUM(NAD27, "NAD27", clrk66, "nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_DATUM(potsdam, "potsdam", bessel, "towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_DATUM(carthage, "carthage", clrk80ign, "towgs84=-263.0,6.0,431.0") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_DATUM(hermannskogel, "hermannskogel", bessel, "towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_DATUM(ire65, "ire65", mod_airy, "towgs84=482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_DATUM(nzgd49, "nzgd49", intl, "towgs84=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993") +BOOST_GEOMETRY_PROJECTIONS_DETAIL_REGISTER_DATUM(OSGB36, "OSGB36", airy, "towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894") + + +template +< + typename Tuple, + template <typename> class IsSamePred, + int I = 0, + int N = boost::tuples::length<Tuple>::value +> +struct tuples_find_index_if + : boost::mpl::if_c + < + IsSamePred<typename boost::tuples::element<I, Tuple>::type>::value, + boost::integral_constant<int, I>, + typename tuples_find_index_if<Tuple, IsSamePred, I+1, N>::type + >::type +{}; + +template +< + typename Tuple, + template <typename> class IsSamePred, + int N +> +struct tuples_find_index_if<Tuple, IsSamePred, N, N> + : boost::integral_constant<int, N> +{}; + +template +< + typename Tuple, + template <typename> class IsSamePred, + int I = tuples_find_index_if<Tuple, IsSamePred>::value, + int N = boost::tuples::length<Tuple>::value +> +struct tuples_find_if + : boost::tuples::element<I, Tuple> +{}; + +template +< + typename Tuple, + template <typename> class IsSamePred, + int N +> +struct tuples_find_if<Tuple, IsSamePred, N, N> +{ + typedef void type; +}; + +/*template <typename Param> +struct is_param +{ + template <typename T, int D = 0> + struct is_same_impl : boost::false_type {}; + template <int D> + struct is_same_impl<Param, D> : boost::true_type {}; + + template <typename T> + struct is_same : is_same_impl<T> {}; +}; + +template <template <typename> class Param> +struct is_param_t +{ + template <typename T> + struct is_same : boost::false_type {}; + template <typename T> + struct is_same<Param<T> > : boost::true_type {}; +};*/ + +// NOTE: The following metafunctions are implemented one for each parameter +// because mingw-gcc-4.1.2 is unable to compile a solution based on template +// template parameter and member struct template partial specialization +// (see above). + +/*template <typename T> +struct is_proj : boost::false_type {}; +template <typename T> +struct is_proj<proj<T> > : boost::true_type {}; + +template <typename T> +struct is_ellps : boost::false_type {}; +template <typename T> +struct is_ellps<ellps<T> > : boost::true_type {}; + +template <typename T> +struct is_datum : boost::false_type {}; +template <typename T> +struct is_datum<datum<T> > : boost::true_type {}; + +template <typename T> +struct is_o_proj : boost::false_type {}; +template <typename T> +struct is_o_proj<o_proj<T> > : boost::true_type {}; + +template <typename T> +struct is_guam : boost::false_type {}; +template <> +struct is_guam<guam> : boost::true_type {};*/ + +// NOTE: The following implementation seems to work as well. + +// TEST + +template <typename T, template <typename> class Param> +struct is_same_t : boost::false_type {}; +template <typename T, template <typename> class Param> +struct is_same_t<Param<T>, Param> : boost::true_type {}; + +template <typename Param> +struct is_param +{ + template <typename T> + struct pred : boost::is_same<T, Param> {}; +}; + +template <template <typename> class Param> +struct is_param_t +{ + template <typename T> + struct pred : is_same_t<T, Param> {}; +}; + +// pick proj static name + +template <typename Tuple> +struct pick_proj_tag +{ + typedef typename tuples_find_if + < + Tuple, + // is_proj + is_param_t<proj>::pred + >::type proj_type; + + static const bool is_non_void = ! boost::is_void<proj_type>::value; + + BOOST_MPL_ASSERT_MSG((is_non_void), PROJECTION_NOT_NAMED, (Tuple)); + + typedef typename proj_type::type type; +}; + + +template <typename Ellps, typename Datum, int EllpsIndex> +struct pick_ellps_impl +{ + typedef Ellps type; + typedef typename ellps_traits<Ellps>::model_type model_type; + template <typename Tuple> + static model_type model(Tuple const& tup) + { + return ellps_traits<Ellps>::model(boost::get<EllpsIndex>(tup)); + } +}; + +template <typename Ellps, int EllpsIndex> +struct pick_ellps_impl<Ellps, void, EllpsIndex> +{ + typedef Ellps type; + typedef typename ellps_traits<Ellps>::model_type model_type; + template <typename Tuple> + static model_type model(Tuple const& tup) + { + return ellps_traits<Ellps>::model(boost::get<EllpsIndex>(tup)); + } +}; + +template <typename Datum, int EllpsIndex> +struct pick_ellps_impl<void, Datum, EllpsIndex> +{ + typedef typename datum_traits<Datum>::ellps_type type; + + static const bool is_datum_known = ! boost::is_void<type>::value; + BOOST_MPL_ASSERT_MSG((is_datum_known), UNKNOWN_DATUM, (types<Datum>)); + + typedef typename ellps_traits<type>::model_type model_type; + template <typename Tuple> + static model_type model(Tuple const& ) + { + return ellps_traits<type>::model(type()); + } +}; + +template <int EllpsIndex> +struct pick_ellps_impl<void, void, EllpsIndex> +{ + // default ellipsoid + typedef ellps<WGS84> type; + typedef typename ellps_traits<type>::model_type model_type; + template <typename Tuple> + static model_type model(Tuple const& ) + { + return ellps_traits<type>::model(type()); + } +}; + +// Pick spheroid/sphere model from ellps or datum +// mimic pj_init() calling pj_datum_set() and pj_ell_set() +template <typename Tuple> +struct pick_ellps + : pick_ellps_impl + < + typename tuples_find_if<Tuple, /*is_ellps*/is_param_t<ellps>::pred>::type, + typename tuples_find_if<Tuple, /*is_datum*/is_param_t<datum>::pred>::type, + tuples_find_index_if<Tuple, /*is_ellps*/is_param_t<ellps>::pred>::value + > +{}; + + +template <typename Tuple> +struct pick_o_proj_tag +{ + typedef typename tuples_find_if + < + Tuple, + //is_o_proj + is_param_t<o_proj>::pred + >::type proj_type; + + static const bool is_non_void = ! boost::is_void<proj_type>::value; + + BOOST_MPL_ASSERT_MSG((is_non_void), PROJECTION_NOT_NAMED, (Tuple)); + + typedef typename proj_type::type type; +}; + + +} // namespace detail +#endif // DOXYGEN_NO_DETAIL + + +}}}} // namespace boost::geometry::srs::par4 + + +#endif // BOOST_GEOMETRY_SRS_PROJECTIONS_PAR4_HPP diff --git a/boost/geometry/srs/projections/proj/aea.hpp b/boost/geometry/srs/projections/proj/aea.hpp new file mode 100644 index 0000000000..1df5896c34 --- /dev/null +++ b/boost/geometry/srs/projections/proj/aea.hpp @@ -0,0 +1,349 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_AEA_HPP +#define BOOST_GEOMETRY_PROJECTIONS_AEA_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Purpose: Implementation of the aea (Albers Equal Area) projection. +// Author: Gerald Evenden +// Copyright (c) 1995, Gerald Evenden + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/core/ignore_unused.hpp> +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_mlfn.hpp> +#include <boost/geometry/srs/projections/impl/pj_msfn.hpp> +#include <boost/geometry/srs/projections/impl/pj_qsfn.hpp> + + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct aea {}; + struct leac {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace aea + { + + static const double EPS10 = 1.e-10; + static const double TOL7 = 1.e-7; + static const double EPSILON = 1.0e-7; + static const double TOL = 1.0e-10; + static const int N_ITER = 15; + + template <typename T> + struct par_aea + { + T ec; + T n; + T c; + T dd; + T n2; + T rho0; + T phi1; + T phi2; + T en[EN_SIZE]; + int ellips; + }; + + /* determine latitude angle phi-1 */ + template <typename T> + inline T phi1_(T const& qs, T const& Te, T const& Tone_es) + { + int i; + T Phi, sinpi, cospi, con, com, dphi; + + Phi = asin (.5 * qs); + if (Te < EPSILON) + return( Phi ); + i = N_ITER; + do { + sinpi = sin (Phi); + cospi = cos (Phi); + con = Te * sinpi; + com = 1. - con * con; + dphi = .5 * com * com / cospi * (qs / Tone_es - + sinpi / com + .5 / Te * log ((1. - con) / + (1. + con))); + Phi += dphi; + } while (fabs(dphi) > TOL && --i); + return( i ? Phi : HUGE_VAL ); + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_aea_ellipsoid : public base_t_fi<base_aea_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_aea<CalculationType> m_proj_parm; + + inline base_aea_ellipsoid(const Parameters& par) + : base_t_fi<base_aea_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid & spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType rho = 0.0; + if ((rho = this->m_proj_parm.c - (this->m_proj_parm.ellips ? this->m_proj_parm.n * pj_qsfn(sin(lp_lat), + this->m_par.e, this->m_par.one_es) : this->m_proj_parm.n2 * sin(lp_lat))) < 0.) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + rho = this->m_proj_parm.dd * sqrt(rho); + xy_x = rho * sin( lp_lon *= this->m_proj_parm.n ); + xy_y = this->m_proj_parm.rho0 - rho * cos(lp_lon); + } + + // INVERSE(e_inverse) ellipsoid & spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType rho = 0.0; + if( (rho = boost::math::hypot(xy_x, xy_y = this->m_proj_parm.rho0 - xy_y)) != 0.0 ) { + if (this->m_proj_parm.n < 0.) { + rho = -rho; + xy_x = -xy_x; + xy_y = -xy_y; + } + lp_lat = rho / this->m_proj_parm.dd; + if (this->m_proj_parm.ellips) { + lp_lat = (this->m_proj_parm.c - lp_lat * lp_lat) / this->m_proj_parm.n; + if (fabs(this->m_proj_parm.ec - fabs(lp_lat)) > TOL7) { + if ((lp_lat = phi1_(lp_lat, this->m_par.e, this->m_par.one_es)) == HUGE_VAL) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + } else + lp_lat = lp_lat < 0. ? -HALFPI : HALFPI; + } else if (fabs(lp_lat = (this->m_proj_parm.c - lp_lat * lp_lat) / this->m_proj_parm.n2) <= 1.) + lp_lat = asin(lp_lat); + else + lp_lat = lp_lat < 0. ? -HALFPI : HALFPI; + lp_lon = atan2(xy_x, xy_y) / this->m_proj_parm.n; + } else { + lp_lon = 0.; + lp_lat = this->m_proj_parm.n > 0. ? HALFPI : - HALFPI; + } + } + + static inline std::string get_name() + { + return "aea_ellipsoid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_aea<T>& proj_parm) + { + T cosphi, sinphi; + int secant; + + if (fabs(proj_parm.phi1 + proj_parm.phi2) < EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-21) ); + proj_parm.n = sinphi = sin(proj_parm.phi1); + cosphi = cos(proj_parm.phi1); + secant = fabs(proj_parm.phi1 - proj_parm.phi2) >= EPS10; + if( (proj_parm.ellips = (par.es > 0.))) { + T ml1, m1; + + if (!pj_enfn(par.es, proj_parm.en)) + BOOST_THROW_EXCEPTION( projection_exception(0) ); + m1 = pj_msfn(sinphi, cosphi, par.es); + ml1 = pj_qsfn(sinphi, par.e, par.one_es); + if (secant) { /* secant cone */ + T ml2, m2; + + sinphi = sin(proj_parm.phi2); + cosphi = cos(proj_parm.phi2); + m2 = pj_msfn(sinphi, cosphi, par.es); + ml2 = pj_qsfn(sinphi, par.e, par.one_es); + proj_parm.n = (m1 * m1 - m2 * m2) / (ml2 - ml1); + } + proj_parm.ec = 1. - .5 * par.one_es * log((1. - par.e) / + (1. + par.e)) / par.e; + proj_parm.c = m1 * m1 + proj_parm.n * ml1; + proj_parm.dd = 1. / proj_parm.n; + proj_parm.rho0 = proj_parm.dd * sqrt(proj_parm.c - proj_parm.n * pj_qsfn(sin(par.phi0), + par.e, par.one_es)); + } else { + if (secant) proj_parm.n = .5 * (proj_parm.n + sin(proj_parm.phi2)); + proj_parm.n2 = proj_parm.n + proj_parm.n; + proj_parm.c = cosphi * cosphi + proj_parm.n2 * sinphi; + proj_parm.dd = 1. / proj_parm.n; + proj_parm.rho0 = proj_parm.dd * sqrt(proj_parm.c - proj_parm.n2 * sin(par.phi0)); + } + } + + + // Albers Equal Area + template <typename Parameters, typename T> + inline void setup_aea(Parameters& par, par_aea<T>& proj_parm) + { + proj_parm.phi1 = pj_param(par.params, "rlat_1").f; + proj_parm.phi2 = pj_param(par.params, "rlat_2").f; + setup(par, proj_parm); + } + + // Lambert Equal Area Conic + template <typename Parameters, typename T> + inline void setup_leac(Parameters& par, par_aea<T>& proj_parm) + { + static const T HALFPI = detail::HALFPI<T>(); + + proj_parm.phi2 = pj_param(par.params, "rlat_1").f; + proj_parm.phi1 = pj_param(par.params, "bsouth").i ? -HALFPI : HALFPI; + setup(par, proj_parm); + } + + }} // namespace detail::aea + #endif // doxygen + + /*! + \brief Albers Equal Area projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_1: Latitude of first standard parallel (degrees) + - lat_2: Latitude of second standard parallel (degrees) + \par Example + \image html ex_aea.gif + */ + template <typename CalculationType, typename Parameters> + struct aea_ellipsoid : public detail::aea::base_aea_ellipsoid<CalculationType, Parameters> + { + inline aea_ellipsoid(const Parameters& par) : detail::aea::base_aea_ellipsoid<CalculationType, Parameters>(par) + { + detail::aea::setup_aea(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Lambert Equal Area Conic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_1: Latitude of first standard parallel (degrees) + - south: Denotes southern hemisphere UTM zone (boolean) + \par Example + \image html ex_leac.gif + */ + template <typename CalculationType, typename Parameters> + struct leac_ellipsoid : public detail::aea::base_aea_ellipsoid<CalculationType, Parameters> + { + inline leac_ellipsoid(const Parameters& par) : detail::aea::base_aea_ellipsoid<CalculationType, Parameters>(par) + { + detail::aea::setup_leac(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::aea, aea_ellipsoid, aea_ellipsoid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::leac, leac_ellipsoid, leac_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class aea_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<aea_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class leac_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<leac_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void aea_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("aea", new aea_entry<CalculationType, Parameters>); + factory.add_to_factory("leac", new leac_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_AEA_HPP + diff --git a/boost/geometry/srs/projections/proj/aeqd.hpp b/boost/geometry/srs/projections/proj/aeqd.hpp new file mode 100644 index 0000000000..de499213db --- /dev/null +++ b/boost/geometry/srs/projections/proj/aeqd.hpp @@ -0,0 +1,654 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_AEQD_HPP +#define BOOST_GEOMETRY_PROJECTIONS_AEQD_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Purpose: Implementation of the aeqd (Azimuthal Equidistant) projection. +// Author: Gerald Evenden +// Copyright (c) 1995, Gerald Evenden + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/config.hpp> +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> +#include <boost/geometry/srs/projections/impl/pj_mlfn.hpp> + +#include <boost/geometry/srs/projections/par4.hpp> + +#include <boost/type_traits/is_same.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct aeqd {}; + //struct aeqd_guam {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace aeqd + { + + static const double EPS10 = 1.e-10; + static const double TOL = 1.e-14; + static const int N_POLE = 0; + static const int S_POLE = 1; + static const int EQUIT = 2; + static const int OBLIQ = 3; + + template <typename T> + struct par_aeqd + { + T sinph0; + T cosph0; + T en[EN_SIZE]; + T M1; + T N1; + T Mp; + T He; + T G; + int mode; + }; + + template <typename T, typename Par, typename ProjParm> + inline void e_forward(T& lp_lon, T& lp_lat, T& xy_x, T& xy_y, Par const& par, ProjParm const& proj_parm) + { + T coslam, cosphi, sinphi, rho, s, H, H2, c, Az, t, ct, st, cA, sA; + + coslam = cos(lp_lon); + cosphi = cos(lp_lat); + sinphi = sin(lp_lat); + switch (proj_parm.mode) { + case N_POLE: + coslam = - coslam; + BOOST_FALLTHROUGH; + case S_POLE: + xy_x = (rho = fabs(proj_parm.Mp - pj_mlfn(lp_lat, sinphi, cosphi, proj_parm.en))) * + sin(lp_lon); + xy_y = rho * coslam; + break; + case EQUIT: + case OBLIQ: + if (fabs(lp_lon) < EPS10 && fabs(lp_lat - par.phi0) < EPS10) { + xy_x = xy_y = 0.; + break; + } + t = atan2(par.one_es * sinphi + par.es * proj_parm.N1 * proj_parm.sinph0 * + sqrt(1. - par.es * sinphi * sinphi), cosphi); + ct = cos(t); st = sin(t); + Az = atan2(sin(lp_lon) * ct, proj_parm.cosph0 * st - proj_parm.sinph0 * coslam * ct); + cA = cos(Az); sA = sin(Az); + s = aasin(fabs(sA) < TOL ? + (proj_parm.cosph0 * st - proj_parm.sinph0 * coslam * ct) / cA : + sin(lp_lon) * ct / sA ); + H = proj_parm.He * cA; + H2 = H * H; + c = proj_parm.N1 * s * (1. + s * s * (- H2 * (1. - H2)/6. + + s * ( proj_parm.G * H * (1. - 2. * H2 * H2) / 8. + + s * ((H2 * (4. - 7. * H2) - 3. * proj_parm.G * proj_parm.G * (1. - 7. * H2)) / + 120. - s * proj_parm.G * H / 48.)))); + xy_x = c * sA; + xy_y = c * cA; + break; + } + } + + template <typename T, typename Par, typename ProjParm> + inline void e_inverse(T& xy_x, T& xy_y, T& lp_lon, T& lp_lat, Par const& par, ProjParm const& proj_parm) + { + static const T HALFPI = detail::HALFPI<T>(); + + T c, Az, cosAz, A, B, D, E, F, psi, t; + + if ((c = boost::math::hypot(xy_x, xy_y)) < EPS10) { + lp_lat = par.phi0; + lp_lon = 0.; + return; + } + if (proj_parm.mode == OBLIQ || proj_parm.mode == EQUIT) { + cosAz = cos(Az = atan2(xy_x, xy_y)); + t = proj_parm.cosph0 * cosAz; + B = par.es * t / par.one_es; + A = - B * t; + B *= 3. * (1. - A) * proj_parm.sinph0; + D = c / proj_parm.N1; + E = D * (1. - D * D * (A * (1. + A) / 6. + B * (1. + 3.*A) * D / 24.)); + F = 1. - E * E * (A / 2. + B * E / 6.); + psi = aasin(proj_parm.sinph0 * cos(E) + t * sin(E)); + lp_lon = aasin(sin(Az) * sin(E) / cos(psi)); + if ((t = fabs(psi)) < EPS10) + lp_lat = 0.; + else if (fabs(t - HALFPI) < 0.) + lp_lat = HALFPI; + else + lp_lat = atan((1. - par.es * F * proj_parm.sinph0 / sin(psi)) * tan(psi) / + par.one_es); + } else { /* Polar */ + lp_lat = pj_inv_mlfn(proj_parm.mode == N_POLE ? proj_parm.Mp - c : proj_parm.Mp + c, + par.es, proj_parm.en); + lp_lon = atan2(xy_x, proj_parm.mode == N_POLE ? -xy_y : xy_y); + } + } + + template <typename T, typename Par, typename ProjParm> + inline void e_guam_fwd(T& lp_lon, T& lp_lat, T& xy_x, T& xy_y, Par const& par, ProjParm const& proj_parm) + { + T cosphi, sinphi, t; + + cosphi = cos(lp_lat); + sinphi = sin(lp_lat); + t = 1. / sqrt(1. - par.es * sinphi * sinphi); + xy_x = lp_lon * cosphi * t; + xy_y = pj_mlfn(lp_lat, sinphi, cosphi, proj_parm.en) - proj_parm.M1 + + .5 * lp_lon * lp_lon * cosphi * sinphi * t; + } + + template <typename T, typename Par, typename ProjParm> + inline void e_guam_inv(T& xy_x, T& xy_y, T& lp_lon, T& lp_lat, Par const& par, ProjParm const& proj_parm) + { + T x2, t; + int i; + + x2 = 0.5 * xy_x * xy_x; + lp_lat = par.phi0; + for (i = 0; i < 3; ++i) { + t = par.e * sin(lp_lat); + lp_lat = pj_inv_mlfn(proj_parm.M1 + xy_y - + x2 * tan(lp_lat) * (t = sqrt(1. - t * t)), par.es, proj_parm.en); + } + lp_lon = xy_x * t / cos(lp_lat); + } + + template <typename T, typename Par, typename ProjParm> + inline void s_forward(T& lp_lon, T& lp_lat, T& xy_x, T& xy_y, Par const& /*par*/, ProjParm const& proj_parm) + { + static const T HALFPI = detail::HALFPI<T>(); + + T coslam, cosphi, sinphi; + + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + coslam = cos(lp_lon); + switch (proj_parm.mode) { + case EQUIT: + xy_y = cosphi * coslam; + goto oblcon; + case OBLIQ: + xy_y = proj_parm.sinph0 * sinphi + proj_parm.cosph0 * cosphi * coslam; + oblcon: + if (fabs(fabs(xy_y) - 1.) < TOL) + if (xy_y < 0.) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else + xy_x = xy_y = 0.; + else { + xy_y = acos(xy_y); + xy_y /= sin(xy_y); + xy_x = xy_y * cosphi * sin(lp_lon); + xy_y *= (proj_parm.mode == EQUIT) ? sinphi : + proj_parm.cosph0 * sinphi - proj_parm.sinph0 * cosphi * coslam; + } + break; + case N_POLE: + lp_lat = -lp_lat; + coslam = -coslam; + BOOST_FALLTHROUGH; + case S_POLE: + if (fabs(lp_lat - HALFPI) < EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_x = (xy_y = (HALFPI + lp_lat)) * sin(lp_lon); + xy_y *= coslam; + break; + } + } + + template <typename T, typename Par, typename ProjParm> + inline void s_inverse(T& xy_x, T& xy_y, T& lp_lon, T& lp_lat, Par const& par, ProjParm const& proj_parm) + { + static const T ONEPI = detail::ONEPI<T>(); + static const T HALFPI = detail::HALFPI<T>(); + + T cosc, c_rh, sinc; + + if ((c_rh = boost::math::hypot(xy_x, xy_y)) > ONEPI) { + if (c_rh - EPS10 > ONEPI) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + c_rh = ONEPI; + } else if (c_rh < EPS10) { + lp_lat = par.phi0; + lp_lon = 0.; + return; + } + if (proj_parm.mode == OBLIQ || proj_parm.mode == EQUIT) { + sinc = sin(c_rh); + cosc = cos(c_rh); + if (proj_parm.mode == EQUIT) { + lp_lat = aasin(xy_y * sinc / c_rh); + xy_x *= sinc; + xy_y = cosc * c_rh; + } else { + lp_lat = aasin(cosc * proj_parm.sinph0 + xy_y * sinc * proj_parm.cosph0 / + c_rh); + xy_y = (cosc - proj_parm.sinph0 * sin(lp_lat)) * c_rh; + xy_x *= sinc * proj_parm.cosph0; + } + lp_lon = atan2(xy_x, xy_y); + } else if (proj_parm.mode == N_POLE) { + lp_lat = HALFPI - c_rh; + lp_lon = atan2(xy_x, -xy_y); + } else { + lp_lat = c_rh - HALFPI; + lp_lon = atan2(xy_x, xy_y); + } + } + + // Azimuthal Equidistant + template <typename Parameters, typename T> + inline void setup_aeqd(Parameters& par, par_aeqd<T>& proj_parm, bool is_sphere, bool is_guam) + { + static const T HALFPI = detail::HALFPI<T>(); + + par.phi0 = pj_param(par.params, "rlat_0").f; + if (fabs(fabs(par.phi0) - HALFPI) < EPS10) { + proj_parm.mode = par.phi0 < 0. ? S_POLE : N_POLE; + proj_parm.sinph0 = par.phi0 < 0. ? -1. : 1.; + proj_parm.cosph0 = 0.; + } else if (fabs(par.phi0) < EPS10) { + proj_parm.mode = EQUIT; + proj_parm.sinph0 = 0.; + proj_parm.cosph0 = 1.; + } else { + proj_parm.mode = OBLIQ; + proj_parm.sinph0 = sin(par.phi0); + proj_parm.cosph0 = cos(par.phi0); + } + if (is_sphere) { + } else { + if (!pj_enfn(par.es, proj_parm.en)) + BOOST_THROW_EXCEPTION( projection_exception(0) ); + if (is_guam) { + proj_parm.M1 = pj_mlfn(par.phi0, proj_parm.sinph0, proj_parm.cosph0, proj_parm.en); + } else { + switch (proj_parm.mode) { + case N_POLE: + proj_parm.Mp = pj_mlfn<T>(HALFPI, 1., 0., proj_parm.en); + break; + case S_POLE: + proj_parm.Mp = pj_mlfn<T>(-HALFPI, -1., 0., proj_parm.en); + break; + case EQUIT: + case OBLIQ: + proj_parm.N1 = 1. / sqrt(1. - par.es * proj_parm.sinph0 * proj_parm.sinph0); + proj_parm.G = proj_parm.sinph0 * (proj_parm.He = par.e / sqrt(par.one_es)); + proj_parm.He *= proj_parm.cosph0; + break; + } + } + } + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_aeqd_e : public base_t_fi<base_aeqd_e<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_aeqd<CalculationType> m_proj_parm; + + inline base_aeqd_e(const Parameters& par) + : base_t_fi<base_aeqd_e<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) elliptical + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + e_forward(lp_lon, lp_lat, xy_x, xy_y, this->m_par, this->m_proj_parm); + } + + // INVERSE(e_inverse) elliptical + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + e_inverse(xy_x, xy_y, lp_lon, lp_lat, this->m_par, this->m_proj_parm); + } + + static inline std::string get_name() + { + return "aeqd_e"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_aeqd_e_guam : public base_t_fi<base_aeqd_e_guam<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_aeqd<CalculationType> m_proj_parm; + + inline base_aeqd_e_guam(const Parameters& par) + : base_t_fi<base_aeqd_e_guam<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_guam_fwd) Guam elliptical + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + e_guam_fwd(lp_lon, lp_lat, xy_x, xy_y, this->m_par, this->m_proj_parm); + } + + // INVERSE(e_guam_inv) Guam elliptical + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + e_guam_inv(xy_x, xy_y, lp_lon, lp_lat, this->m_par, this->m_proj_parm); + } + + static inline std::string get_name() + { + return "aeqd_e_guam"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename BGParameters, typename CalculationType, typename Parameters> + struct base_aeqd_e_static : public base_t_fi<base_aeqd_e_static<BGParameters, CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_aeqd<CalculationType> m_proj_parm; + + static const bool is_guam = ! boost::is_same + < + typename srs::par4::detail::tuples_find_if + < + BGParameters, + //srs::par4::detail::is_guam + srs::par4::detail::is_param<srs::par4::guam>::pred + >::type, + void + >::value; + + inline base_aeqd_e_static(const Parameters& par) + : base_t_fi<base_aeqd_e_static<BGParameters, CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) + {} + + // FORWARD(e_forward or e_guam_fwd) elliptical + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + if (is_guam) + e_guam_fwd(lp_lon, lp_lat, xy_x, xy_y, this->m_par, this->m_proj_parm); + else + e_forward(lp_lon, lp_lat, xy_x, xy_y, this->m_par, this->m_proj_parm); + } + + // INVERSE(e_inverse or e_guam_inv) elliptical + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + if (is_guam) + e_guam_inv(xy_x, xy_y, lp_lon, lp_lat, this->m_par, this->m_proj_parm); + else + e_inverse(xy_x, xy_y, lp_lon, lp_lat, this->m_par, this->m_proj_parm); + } + + static inline std::string get_name() + { + return "aeqd_e_static"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_aeqd_s : public base_t_fi<base_aeqd_s<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_aeqd<CalculationType> m_proj_parm; + + inline base_aeqd_s(const Parameters& par) + : base_t_fi<base_aeqd_s<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spherical + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + s_forward(lp_lon, lp_lat, xy_x, xy_y, this->m_par, this->m_proj_parm); + } + + // INVERSE(s_inverse) spherical + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + s_inverse(xy_x, xy_y, lp_lon, lp_lat, this->m_par, this->m_proj_parm); + } + + static inline std::string get_name() + { + return "aeqd_s"; + } + + }; + + }} // namespace detail::aeqd + #endif // doxygen + + /*! + \brief Azimuthal Equidistant projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_0: Latitude of origin (degrees) + - guam (boolean) + \par Example + \image html ex_aeqd.gif + */ + template <typename CalculationType, typename Parameters> + struct aeqd_e : public detail::aeqd::base_aeqd_e<CalculationType, Parameters> + { + inline aeqd_e(const Parameters& par) : detail::aeqd::base_aeqd_e<CalculationType, Parameters>(par) + { + detail::aeqd::setup_aeqd(this->m_par, this->m_proj_parm, false, false); + } + }; + + /*! + \brief Azimuthal Equidistant projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_0: Latitude of origin (degrees) + - guam (boolean) + \par Example + \image html ex_aeqd.gif + */ + template <typename CalculationType, typename Parameters> + struct aeqd_e_guam : public detail::aeqd::base_aeqd_e_guam<CalculationType, Parameters> + { + inline aeqd_e_guam(const Parameters& par) : detail::aeqd::base_aeqd_e_guam<CalculationType, Parameters>(par) + { + detail::aeqd::setup_aeqd(this->m_par, this->m_proj_parm, false, true); + } + }; + + /*! + \brief Azimuthal Equidistant projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_0: Latitude of origin (degrees) + - guam (boolean) + \par Example + \image html ex_aeqd.gif + */ + template <typename BGParameters, typename CalculationType, typename Parameters> + struct aeqd_e_static : public detail::aeqd::base_aeqd_e_static<BGParameters, CalculationType, Parameters> + { + inline aeqd_e_static(const Parameters& par) : detail::aeqd::base_aeqd_e_static<BGParameters, CalculationType, Parameters>(par) + { + detail::aeqd::setup_aeqd(this->m_par, this->m_proj_parm, + false, + detail::aeqd::base_aeqd_e_static<BGParameters, CalculationType, Parameters>::is_guam); + } + }; + + /*! + \brief Azimuthal Equidistant projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_0: Latitude of origin (degrees) + - guam (boolean) + \par Example + \image html ex_aeqd.gif + */ + template <typename CalculationType, typename Parameters> + struct aeqd_s : public detail::aeqd::base_aeqd_s<CalculationType, Parameters> + { + inline aeqd_s(const Parameters& par) : detail::aeqd::base_aeqd_s<CalculationType, Parameters>(par) + { + detail::aeqd::setup_aeqd(this->m_par, this->m_proj_parm, true, false); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + template <typename BGP, typename CT, typename P> + struct static_projection_type<srs::par4::aeqd, srs_sphere_tag, BGP, CT, P> + { + typedef aeqd_s<CT, P> type; + }; + template <typename BGP, typename CT, typename P> + struct static_projection_type<srs::par4::aeqd, srs_spheroid_tag, BGP, CT, P> + { + typedef aeqd_e_static<BGP, CT, P> type; + }; + //BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::aeqd, aeqd_s, aeqd_e_static) + //BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::aeqd_guam, aeqd_guam, aeqd_guam) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class aeqd_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + bool const guam = pj_param(par.params, "bguam").i != 0; + + if (par.es && ! guam) + return new base_v_fi<aeqd_e<CalculationType, Parameters>, CalculationType, Parameters>(par); + else if (par.es && guam) + return new base_v_fi<aeqd_e_guam<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<aeqd_s<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void aeqd_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("aeqd", new aeqd_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_AEQD_HPP + diff --git a/boost/geometry/srs/projections/proj/airy.hpp b/boost/geometry/srs/projections/proj/airy.hpp new file mode 100644 index 0000000000..557d95f3e4 --- /dev/null +++ b/boost/geometry/srs/projections/proj/airy.hpp @@ -0,0 +1,257 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_AIRY_HPP +#define BOOST_GEOMETRY_PROJECTIONS_AIRY_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Purpose: Implementation of the airy (Airy) projection. +// Author: Gerald Evenden +// Copyright (c) 1995, Gerald Evenden + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +#include <boost/geometry/srs/projections/par4.hpp> // airy tag + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + // already defined in par4.hpp as ellps name + //struct airy {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace airy + { + + static const double EPS = 1.e-10; + static const int N_POLE = 0; + static const int S_POLE = 1; + static const int EQUIT = 2; + static const int OBLIQ = 3; + + template <typename T> + struct par_airy + { + T p_halfpi; + T sinph0; + T cosph0; + T Cb; + int mode; + int no_cut; /* do not cut at hemisphere limit */ + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_airy_spheroid : public base_t_f<base_airy_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_airy<CalculationType> m_proj_parm; + + inline base_airy_spheroid(const Parameters& par) + : base_t_f<base_airy_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType sinlam, coslam, cosphi, sinphi, t, s, Krho, cosz; + + sinlam = sin(lp_lon); + coslam = cos(lp_lon); + switch (this->m_proj_parm.mode) { + case EQUIT: + case OBLIQ: + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + cosz = cosphi * coslam; + if (this->m_proj_parm.mode == OBLIQ) + cosz = this->m_proj_parm.sinph0 * sinphi + this->m_proj_parm.cosph0 * cosz; + if (!this->m_proj_parm.no_cut && cosz < -EPS) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + if (fabs(s = 1. - cosz) > EPS) { + t = 0.5 * (1. + cosz); + Krho = -log(t)/s - this->m_proj_parm.Cb / t; + } else + Krho = 0.5 - this->m_proj_parm.Cb; + xy_x = Krho * cosphi * sinlam; + if (this->m_proj_parm.mode == OBLIQ) + xy_y = Krho * (this->m_proj_parm.cosph0 * sinphi - + this->m_proj_parm.sinph0 * cosphi * coslam); + else + xy_y = Krho * sinphi; + break; + case S_POLE: + case N_POLE: + lp_lat = fabs(this->m_proj_parm.p_halfpi - lp_lat); + if (!this->m_proj_parm.no_cut && (lp_lat - EPS) > HALFPI) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + if ((lp_lat *= 0.5) > EPS) { + t = tan(lp_lat); + Krho = -2.*(log(cos(lp_lat)) / t + t * this->m_proj_parm.Cb); + xy_x = Krho * sinlam; + xy_y = Krho * coslam; + if (this->m_proj_parm.mode == N_POLE) + xy_y = -xy_y; + } else + xy_x = xy_y = 0.; + } + } + + static inline std::string get_name() + { + return "airy_spheroid"; + } + + }; + + // Airy + template <typename Parameters, typename T> + inline void setup_airy(Parameters& par, par_airy<T>& proj_parm) + { + static const T HALFPI = detail::HALFPI<T>(); + + T beta; + + proj_parm.no_cut = pj_param(par.params, "bno_cut").i; + beta = 0.5 * (HALFPI - pj_param(par.params, "rlat_b").f); + if (fabs(beta) < EPS) + proj_parm.Cb = -0.5; + else { + proj_parm.Cb = 1./tan(beta); + proj_parm.Cb *= proj_parm.Cb * log(cos(beta)); + } + if (fabs(fabs(par.phi0) - HALFPI) < EPS) + if (par.phi0 < 0.) { + proj_parm.p_halfpi = -HALFPI; + proj_parm.mode = S_POLE; + } else { + proj_parm.p_halfpi = HALFPI; + proj_parm.mode = N_POLE; + } + else { + if (fabs(par.phi0) < EPS) + proj_parm.mode = EQUIT; + else { + proj_parm.mode = OBLIQ; + proj_parm.sinph0 = sin(par.phi0); + proj_parm.cosph0 = cos(par.phi0); + } + } + par.es = 0.; + } + + }} // namespace detail::airy + #endif // doxygen + + /*! + \brief Airy projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Projection parameters + - no_cut: Do not cut at hemisphere limit (boolean) + - lat_b (degrees) + \par Example + \image html ex_airy.gif + */ + template <typename CalculationType, typename Parameters> + struct airy_spheroid : public detail::airy::base_airy_spheroid<CalculationType, Parameters> + { + inline airy_spheroid(const Parameters& par) : detail::airy::base_airy_spheroid<CalculationType, Parameters>(par) + { + detail::airy::setup_airy(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::airy, airy_spheroid, airy_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class airy_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<airy_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void airy_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("airy", new airy_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_AIRY_HPP + diff --git a/boost/geometry/srs/projections/proj/aitoff.hpp b/boost/geometry/srs/projections/proj/aitoff.hpp new file mode 100644 index 0000000000..7d34a23287 --- /dev/null +++ b/boost/geometry/srs/projections/proj/aitoff.hpp @@ -0,0 +1,324 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_AITOFF_HPP +#define BOOST_GEOMETRY_PROJECTIONS_AITOFF_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Purpose: Implementation of the aitoff (Aitoff) and wintri (Winkel Tripel) +// projections. +// Author: Gerald Evenden +// Copyright (c) 1995, Gerald Evenden + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/core/ignore_unused.hpp> +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct aitoff {}; + struct wintri {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace aitoff + { + template <typename T> + struct par_aitoff + { + T cosphi1; + int mode; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_aitoff_spheroid : public base_t_fi<base_aitoff_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_aitoff<CalculationType> m_proj_parm; + + inline base_aitoff_spheroid(const Parameters& par) + : base_t_fi<base_aitoff_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType c, d; + + if((d = acos(cos(lp_lat) * cos(c = 0.5 * lp_lon)))) {/* basic Aitoff */ + xy_x = 2. * d * cos(lp_lat) * sin(c) * (xy_y = 1. / sin(d)); + xy_y *= d * sin(lp_lat); + } else + xy_x = xy_y = 0.; + if (this->m_proj_parm.mode) { /* Winkel Tripel */ + xy_x = (xy_x + lp_lon * this->m_proj_parm.cosphi1) * 0.5; + xy_y = (xy_y + lp_lat) * 0.5; + } + } + /*********************************************************************************** + * + * Inverse functions added by Drazen Tutic and Lovro Gradiser based on paper: + * + * I.Özbug Biklirici and Cengizhan Ipbüker. A General Algorithm for the Inverse + * Transformation of Map Projections Using Jacobian Matrices. In Proceedings of the + * Third International Symposium Mathematical & Computational Applications, + * pages 175{182, Turkey, September 2002. + * + * Expected accuracy is defined by EPSILON = 1e-12. Should be appropriate for + * most applications of Aitoff and Winkel Tripel projections. + * + * Longitudes of 180W and 180E can be mixed in solution obtained. + * + * Inverse for Aitoff projection in poles is undefined, longitude value of 0 is assumed. + * + * Contact : dtutic@geof.hr + * Date: 2015-02-16 + * + ************************************************************************************/ + + // INVERSE(s_inverse) sphere + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType ONEPI = detail::ONEPI<CalculationType>(); + static const CalculationType TWOPI = detail::TWOPI<CalculationType>(); + static const CalculationType EPSILON = 1e-12; + + int iter, MAXITER = 10, round = 0, MAXROUND = 20; + CalculationType D, C, f1, f2, f1p, f1l, f2p, f2l, dp, dl, sl, sp, cp, cl, x, y; + + if ((fabs(xy_x) < EPSILON) && (fabs(xy_y) < EPSILON )) { lp_lat = 0.; lp_lon = 0.; return; } + + /* intial values for Newton-Raphson method */ + lp_lat = xy_y; lp_lon = xy_x; + do { + iter = 0; + do { + sl = sin(lp_lon * 0.5); cl = cos(lp_lon * 0.5); + sp = sin(lp_lat); cp = cos(lp_lat); + D = cp * cl; + C = 1. - D * D; + D = acos(D) / pow(C, 1.5); + f1 = 2. * D * C * cp * sl; + f2 = D * C * sp; + f1p = 2.* (sl * cl * sp * cp / C - D * sp * sl); + f1l = cp * cp * sl * sl / C + D * cp * cl * sp * sp; + f2p = sp * sp * cl / C + D * sl * sl * cp; + f2l = 0.5 * (sp * cp * sl / C - D * sp * cp * cp * sl * cl); + if (this->m_proj_parm.mode) { /* Winkel Tripel */ + f1 = 0.5 * (f1 + lp_lon * this->m_proj_parm.cosphi1); + f2 = 0.5 * (f2 + lp_lat); + f1p *= 0.5; + f1l = 0.5 * (f1l + this->m_proj_parm.cosphi1); + f2p = 0.5 * (f2p + 1.); + f2l *= 0.5; + } + f1 -= xy_x; f2 -= xy_y; + dl = (f2 * f1p - f1 * f2p) / (dp = f1p * f2l - f2p * f1l); + dp = (f1 * f2l - f2 * f1l) / dp; + while (dl > ONEPI) dl -= ONEPI; /* set to interval [-ONEPI, ONEPI] */ + while (dl < -ONEPI) dl += ONEPI; /* set to interval [-ONEPI, ONEPI] */ + lp_lat -= dp; lp_lon -= dl; + } while ((fabs(dp) > EPSILON || fabs(dl) > EPSILON) && (iter++ < MAXITER)); + if (lp_lat > TWOPI) lp_lat -= 2.*(lp_lat-TWOPI); /* correct if symmetrical solution for Aitoff */ + if (lp_lat < -TWOPI) lp_lat -= 2.*(lp_lat+TWOPI); /* correct if symmetrical solution for Aitoff */ + if ((fabs(fabs(lp_lat) - TWOPI) < EPSILON) && (!this->m_proj_parm.mode)) lp_lon = 0.; /* if pole in Aitoff, return longitude of 0 */ + + /* calculate x,y coordinates with solution obtained */ + if((D = acos(cos(lp_lat) * cos(C = 0.5 * lp_lon)))) {/* Aitoff */ + x = 2. * D * cos(lp_lat) * sin(C) * (y = 1. / sin(D)); + y *= D * sin(lp_lat); + } else + x = y = 0.; + if (this->m_proj_parm.mode) { /* Winkel Tripel */ + x = (x + lp_lon * this->m_proj_parm.cosphi1) * 0.5; + y = (y + lp_lat) * 0.5; + } + /* if too far from given values of x,y, repeat with better approximation of phi,lam */ + } while (((fabs(xy_x-x) > EPSILON) || (fabs(xy_y-y) > EPSILON)) && (round++ < MAXROUND)); + + //if (iter == MAXITER && round == MAXROUND) fprintf(stderr, "Warning: Accuracy of 1e-12 not reached. Last increments: dlat=%e and dlon=%e\n", dp, dl); + } + + static inline std::string get_name() + { + return "aitoff_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_aitoff<T>& proj_parm) + { + boost::ignore_unused(proj_parm); + par.es = 0.; + } + + + // Aitoff + template <typename Parameters, typename T> + inline void setup_aitoff(Parameters& par, par_aitoff<T>& proj_parm) + { + proj_parm.mode = 0; + setup(par, proj_parm); + } + + // Winkel Tripel + template <typename Parameters, typename T> + inline void setup_wintri(Parameters& par, par_aitoff<T>& proj_parm) + { + static const T TWO_D_PI = detail::TWO_D_PI<T>(); + + proj_parm.mode = 1; + if (pj_param(par.params, "tlat_1").i) { + if ((proj_parm.cosphi1 = cos(pj_param(par.params, "rlat_1").f)) == 0.) + BOOST_THROW_EXCEPTION( projection_exception(-22) ); + } else /* 50d28' or phi1=acos(2/pi) */ + proj_parm.cosphi1 = TWO_D_PI; + setup(par, proj_parm); + } + + }} // namespace detail::aitoff + #endif // doxygen + + /*! + \brief Aitoff projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + \par Example + \image html ex_aitoff.gif + */ + template <typename CalculationType, typename Parameters> + struct aitoff_spheroid : public detail::aitoff::base_aitoff_spheroid<CalculationType, Parameters> + { + inline aitoff_spheroid(const Parameters& par) : detail::aitoff::base_aitoff_spheroid<CalculationType, Parameters>(par) + { + detail::aitoff::setup_aitoff(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Winkel Tripel projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + \par Projection parameters + - lat_1: Latitude of first standard parallel (degrees) + \par Example + \image html ex_wintri.gif + */ + template <typename CalculationType, typename Parameters> + struct wintri_spheroid : public detail::aitoff::base_aitoff_spheroid<CalculationType, Parameters> + { + inline wintri_spheroid(const Parameters& par) : detail::aitoff::base_aitoff_spheroid<CalculationType, Parameters>(par) + { + detail::aitoff::setup_wintri(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::aitoff, aitoff_spheroid, aitoff_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::wintri, wintri_spheroid, wintri_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class aitoff_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<aitoff_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class wintri_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<wintri_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void aitoff_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("aitoff", new aitoff_entry<CalculationType, Parameters>); + factory.add_to_factory("wintri", new wintri_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_AITOFF_HPP + diff --git a/boost/geometry/srs/projections/proj/august.hpp b/boost/geometry/srs/projections/proj/august.hpp new file mode 100644 index 0000000000..7358cfb12f --- /dev/null +++ b/boost/geometry/srs/projections/proj/august.hpp @@ -0,0 +1,168 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_AUGUST_HPP +#define BOOST_GEOMETRY_PROJECTIONS_AUGUST_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct august {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace august + { + + //static const double M = 1.333333333333333; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_august_spheroid : public base_t_f<base_august_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_august_spheroid(const Parameters& par) + : base_t_f<base_august_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType M = 1.333333333333333333333333333333333333; + + CalculationType t, c1, c, x1, x12, y1, y12; + + t = tan(.5 * lp_lat); + c1 = sqrt(1. - t * t); + c = 1. + c1 * cos(lp_lon *= .5); + x1 = sin(lp_lon) * c1 / c; + y1 = t / c; + xy_x = M * x1 * (3. + (x12 = x1 * x1) - 3. * (y12 = y1 * y1)); + xy_y = M * y1 * (3. + 3. * x12 - y12); + } + + static inline std::string get_name() + { + return "august_spheroid"; + } + + }; + + // August Epicycloidal + template <typename Parameters> + inline void setup_august(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::august + #endif // doxygen + + /*! + \brief August Epicycloidal projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Example + \image html ex_august.gif + */ + template <typename CalculationType, typename Parameters> + struct august_spheroid : public detail::august::base_august_spheroid<CalculationType, Parameters> + { + inline august_spheroid(const Parameters& par) : detail::august::base_august_spheroid<CalculationType, Parameters>(par) + { + detail::august::setup_august(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::august, august_spheroid, august_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class august_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<august_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void august_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("august", new august_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_AUGUST_HPP + diff --git a/boost/geometry/srs/projections/proj/bacon.hpp b/boost/geometry/srs/projections/proj/bacon.hpp new file mode 100644 index 0000000000..5e8d37980f --- /dev/null +++ b/boost/geometry/srs/projections/proj/bacon.hpp @@ -0,0 +1,272 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_BACON_HPP +#define BOOST_GEOMETRY_PROJECTIONS_BACON_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct apian {}; + struct ortel {}; + struct bacon {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace bacon + { + + //static const double HLFPI2 = 2.46740110027233965467; + static const double EPS = 1e-10; + + struct par_bacon + { + int bacn; + int ortl; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_bacon_spheroid : public base_t_f<base_bacon_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_bacon m_proj_parm; + + inline base_bacon_spheroid(const Parameters& par) + : base_t_f<base_bacon_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType HLFPI2 = detail::HALFPI_SQR<CalculationType>(); + + CalculationType ax, f; + + xy_y = this->m_proj_parm.bacn ? HALFPI * sin(lp_lat) : lp_lat; + if ((ax = fabs(lp_lon)) >= EPS) { + if (this->m_proj_parm.ortl && ax >= HALFPI) + xy_x = sqrt(HLFPI2 - lp_lat * lp_lat + EPS) + ax - HALFPI; + else { + f = 0.5 * (HLFPI2 / ax + ax); + xy_x = ax - f + sqrt(f * f - xy_y * xy_y); + } + if (lp_lon < 0.) xy_x = - xy_x; + } else + xy_x = 0.; + } + + static inline std::string get_name() + { + return "bacon_spheroid"; + } + + }; + + // Apian Globular I + template <typename Parameters> + inline void setup_apian(Parameters& par, par_bacon& proj_parm) + { + proj_parm.bacn = proj_parm.ortl = 0; + par.es = 0.; + } + + // Ortelius Oval + template <typename Parameters> + inline void setup_ortel(Parameters& par, par_bacon& proj_parm) + { + proj_parm.bacn = 0; + proj_parm.ortl = 1; + par.es = 0.; + } + + // Bacon Globular + template <typename Parameters> + inline void setup_bacon(Parameters& par, par_bacon& proj_parm) + { + proj_parm.bacn = 1; + proj_parm.ortl = 0; + par.es = 0.; + } + + }} // namespace detail::bacon + #endif // doxygen + + /*! + \brief Apian Globular I projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Example + \image html ex_apian.gif + */ + template <typename CalculationType, typename Parameters> + struct apian_spheroid : public detail::bacon::base_bacon_spheroid<CalculationType, Parameters> + { + inline apian_spheroid(const Parameters& par) : detail::bacon::base_bacon_spheroid<CalculationType, Parameters>(par) + { + detail::bacon::setup_apian(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Ortelius Oval projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Example + \image html ex_ortel.gif + */ + template <typename CalculationType, typename Parameters> + struct ortel_spheroid : public detail::bacon::base_bacon_spheroid<CalculationType, Parameters> + { + inline ortel_spheroid(const Parameters& par) : detail::bacon::base_bacon_spheroid<CalculationType, Parameters>(par) + { + detail::bacon::setup_ortel(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Bacon Globular projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Example + \image html ex_bacon.gif + */ + template <typename CalculationType, typename Parameters> + struct bacon_spheroid : public detail::bacon::base_bacon_spheroid<CalculationType, Parameters> + { + inline bacon_spheroid(const Parameters& par) : detail::bacon::base_bacon_spheroid<CalculationType, Parameters>(par) + { + detail::bacon::setup_bacon(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::apian, apian_spheroid, apian_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::bacon, bacon_spheroid, bacon_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::ortel, ortel_spheroid, ortel_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class apian_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<apian_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class ortel_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<ortel_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class bacon_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<bacon_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void bacon_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("apian", new apian_entry<CalculationType, Parameters>); + factory.add_to_factory("ortel", new ortel_entry<CalculationType, Parameters>); + factory.add_to_factory("bacon", new bacon_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_BACON_HPP + diff --git a/boost/geometry/srs/projections/proj/bipc.hpp b/boost/geometry/srs/projections/proj/bipc.hpp new file mode 100644 index 0000000000..6f014d0e66 --- /dev/null +++ b/boost/geometry/srs/projections/proj/bipc.hpp @@ -0,0 +1,297 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_BIPC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_BIPC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct bipc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace bipc + { + + static const double EPS = 1e-10; + static const double EPS10 = 1e-10; + static const double ONEEPS = 1.000000001; + static const int NITER = 10; + static const double lamB = -.34894976726250681539; + static const double n = .63055844881274687180; + static const double F = 1.89724742567461030582; + static const double Azab = .81650043674686363166; + static const double Azba = 1.82261843856185925133; + static const double T = 1.27246578267089012270; + static const double rhoc = 1.20709121521568721927; + static const double cAzc = .69691523038678375519; + static const double sAzc = .71715351331143607555; + static const double C45 = .70710678118654752469; + static const double S45 = .70710678118654752410; + static const double C20 = .93969262078590838411; + static const double S20 = -.34202014332566873287; + static const double R110 = 1.91986217719376253360; + static const double R104 = 1.81514242207410275904; + + struct par_bipc + { + int noskew; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_bipc_spheroid : public base_t_fi<base_bipc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_bipc m_proj_parm; + + inline base_bipc_spheroid(const Parameters& par) + : base_t_fi<base_bipc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType ONEPI = detail::ONEPI<CalculationType>(); + + CalculationType cphi, sphi, tphi, t, al, Az, z, Av, cdlam, sdlam, r; + int tag; + + cphi = cos(lp_lat); + sphi = sin(lp_lat); + cdlam = cos(sdlam = lamB - lp_lon); + sdlam = sin(sdlam); + if (fabs(fabs(lp_lat) - HALFPI) < EPS10) { + Az = lp_lat < 0. ? ONEPI : 0.; + tphi = HUGE_VAL; + } else { + tphi = sphi / cphi; + Az = atan2(sdlam , C45 * (tphi - cdlam)); + } + if( (tag = (Az > Azba)) ) { + cdlam = cos(sdlam = lp_lon + R110); + sdlam = sin(sdlam); + z = S20 * sphi + C20 * cphi * cdlam; + if (fabs(z) > 1.) { + if (fabs(z) > ONEEPS) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else + z = z < 0. ? -1. : 1.; + } else + z = acos(z); + if (tphi != HUGE_VAL) + Az = atan2(sdlam, (C20 * tphi - S20 * cdlam)); + Av = Azab; + xy_y = rhoc; + } else { + z = S45 * (sphi + cphi * cdlam); + if (fabs(z) > 1.) { + if (fabs(z) > ONEEPS) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else + z = z < 0. ? -1. : 1.; + } else + z = acos(z); + Av = Azba; + xy_y = -rhoc; + } + if (z < 0.) BOOST_THROW_EXCEPTION( projection_exception(-20) ); + r = F * (t = pow(tan(.5 * z), n)); + if ((al = .5 * (R104 - z)) < 0.) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + al = (t + pow(al, n)) / T; + if (fabs(al) > 1.) { + if (fabs(al) > ONEEPS) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else + al = al < 0. ? -1. : 1.; + } else + al = acos(al); + if (fabs(t = n * (Av - Az)) < al) + r /= cos(al + (tag ? t : -t)); + xy_x = r * sin(t); + xy_y += (tag ? -r : r) * cos(t); + if (this->m_proj_parm.noskew) { + t = xy_x; + xy_x = -xy_x * cAzc - xy_y * sAzc; + xy_y = -xy_y * cAzc + t * sAzc; + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType t, r, rp, rl, al, z, fAz, Az, s, c, Av; + int neg, i; + + if (this->m_proj_parm.noskew) { + t = xy_x; + xy_x = -xy_x * cAzc + xy_y * sAzc; + xy_y = -xy_y * cAzc - t * sAzc; + } + if( (neg = (xy_x < 0.)) ) { + xy_y = rhoc - xy_y; + s = S20; + c = C20; + Av = Azab; + } else { + xy_y += rhoc; + s = S45; + c = C45; + Av = Azba; + } + rl = rp = r = boost::math::hypot(xy_x, xy_y); + fAz = fabs(Az = atan2(xy_x, xy_y)); + for (i = NITER; i ; --i) { + z = 2. * atan(pow(r / F,1 / n)); + al = acos((pow(tan(.5 * z), n) + + pow(tan(.5 * (R104 - z)), n)) / T); + if (fAz < al) + r = rp * cos(al + (neg ? Az : -Az)); + if (fabs(rl - r) < EPS) + break; + rl = r; + } + if (! i) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + Az = Av - Az / n; + lp_lat = asin(s * cos(z) + c * sin(z) * cos(Az)); + lp_lon = atan2(sin(Az), c / tan(z) - s * cos(Az)); + if (neg) + lp_lon -= R110; + else + lp_lon = lamB - lp_lon; + } + + static inline std::string get_name() + { + return "bipc_spheroid"; + } + + }; + + // Bipolar conic of western hemisphere + template <typename Parameters> + inline void setup_bipc(Parameters& par, par_bipc& proj_parm) + { + proj_parm.noskew = pj_param(par.params, "bns").i; + par.es = 0.; + } + + }} // namespace detail::bipc + #endif // doxygen + + /*! + \brief Bipolar conic of western hemisphere projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + \par Projection parameters + - ns (boolean) + \par Example + \image html ex_bipc.gif + */ + template <typename CalculationType, typename Parameters> + struct bipc_spheroid : public detail::bipc::base_bipc_spheroid<CalculationType, Parameters> + { + inline bipc_spheroid(const Parameters& par) : detail::bipc::base_bipc_spheroid<CalculationType, Parameters>(par) + { + detail::bipc::setup_bipc(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::bipc, bipc_spheroid, bipc_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class bipc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<bipc_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void bipc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("bipc", new bipc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_BIPC_HPP + diff --git a/boost/geometry/srs/projections/proj/boggs.hpp b/boost/geometry/srs/projections/proj/boggs.hpp new file mode 100644 index 0000000000..6c371e430f --- /dev/null +++ b/boost/geometry/srs/projections/proj/boggs.hpp @@ -0,0 +1,185 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_BOGGS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_BOGGS_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct boggs {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace boggs + { + + static const int NITER = 20; + static const double EPS = 1e-7; + static const double ONETOL = 1.000001; + static const double FXC = 2.00276; + static const double FXC2 = 1.11072; + static const double FYC = 0.49931; + static const double FYC2 = 1.41421356237309504880; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_boggs_spheroid : public base_t_f<base_boggs_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_boggs_spheroid(const Parameters& par) + : base_t_f<base_boggs_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType ONEPI = detail::ONEPI<CalculationType>(); + + CalculationType theta, th1, c; + int i; + + theta = lp_lat; + if (fabs(fabs(lp_lat) - HALFPI) < EPS) + xy_x = 0.; + else { + c = sin(theta) * ONEPI; + for (i = NITER; i; --i) { + theta -= th1 = (theta + sin(theta) - c) / + (1. + cos(theta)); + if (fabs(th1) < EPS) break; + } + theta *= 0.5; + xy_x = FXC * lp_lon / (1. / cos(lp_lat) + FXC2 / cos(theta)); + } + xy_y = FYC * (lp_lat + FYC2 * sin(theta)); + } + + static inline std::string get_name() + { + return "boggs_spheroid"; + } + + }; + + // Boggs Eumorphic + template <typename Parameters> + inline void setup_boggs(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::boggs + #endif // doxygen + + /*! + \brief Boggs Eumorphic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - no inverse + - Spheroid + \par Example + \image html ex_boggs.gif + */ + template <typename CalculationType, typename Parameters> + struct boggs_spheroid : public detail::boggs::base_boggs_spheroid<CalculationType, Parameters> + { + inline boggs_spheroid(const Parameters& par) : detail::boggs::base_boggs_spheroid<CalculationType, Parameters>(par) + { + detail::boggs::setup_boggs(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::boggs, boggs_spheroid, boggs_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class boggs_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<boggs_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void boggs_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("boggs", new boggs_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_BOGGS_HPP + diff --git a/boost/geometry/srs/projections/proj/bonne.hpp b/boost/geometry/srs/projections/proj/bonne.hpp new file mode 100644 index 0000000000..52120a905f --- /dev/null +++ b/boost/geometry/srs/projections/proj/bonne.hpp @@ -0,0 +1,298 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_BONNE_HPP +#define BOOST_GEOMETRY_PROJECTIONS_BONNE_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_mlfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct bonne {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace bonne + { + + static const double EPS10 = 1e-10; + + template <typename T> + struct par_bonne + { + T phi1; + T cphi1; + T am1; + T m1; + T en[EN_SIZE]; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_bonne_ellipsoid : public base_t_fi<base_bonne_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_bonne<CalculationType> m_proj_parm; + + inline base_bonne_ellipsoid(const Parameters& par) + : base_t_fi<base_bonne_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType rh, E, c; + + rh = this->m_proj_parm.am1 + this->m_proj_parm.m1 - pj_mlfn(lp_lat, E = sin(lp_lat), c = cos(lp_lat), this->m_proj_parm.en); + E = c * lp_lon / (rh * sqrt(1. - this->m_par.es * E * E)); + xy_x = rh * sin(E); + xy_y = this->m_proj_parm.am1 - rh * cos(E); + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType s, rh; + + rh = boost::math::hypot(xy_x, xy_y = this->m_proj_parm.am1 - xy_y); + lp_lat = pj_inv_mlfn(this->m_proj_parm.am1 + this->m_proj_parm.m1 - rh, this->m_par.es, this->m_proj_parm.en); + if ((s = fabs(lp_lat)) < HALFPI) { + s = sin(lp_lat); + lp_lon = rh * atan2(xy_x, xy_y) * + sqrt(1. - this->m_par.es * s * s) / cos(lp_lat); + } else if (fabs(s - HALFPI) <= EPS10) + lp_lon = 0.; + else + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + } + + static inline std::string get_name() + { + return "bonne_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_bonne_spheroid : public base_t_fi<base_bonne_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_bonne<CalculationType> m_proj_parm; + + inline base_bonne_spheroid(const Parameters& par) + : base_t_fi<base_bonne_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType E, rh; + + rh = this->m_proj_parm.cphi1 + this->m_proj_parm.phi1 - lp_lat; + if (fabs(rh) > EPS10) { + xy_x = rh * sin(E = lp_lon * cos(lp_lat) / rh); + xy_y = this->m_proj_parm.cphi1 - rh * cos(E); + } else + xy_x = xy_y = 0.; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType rh; + + rh = boost::math::hypot(xy_x, xy_y = this->m_proj_parm.cphi1 - xy_y); + lp_lat = this->m_proj_parm.cphi1 + this->m_proj_parm.phi1 - rh; + if (fabs(lp_lat) > HALFPI) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + if (fabs(fabs(lp_lat) - HALFPI) <= EPS10) + lp_lon = 0.; + else + lp_lon = rh * atan2(xy_x, xy_y) / cos(lp_lat); + } + + static inline std::string get_name() + { + return "bonne_spheroid"; + } + + }; + + // Bonne (Werner lat_1=90) + template <typename Parameters, typename T> + inline void setup_bonne(Parameters& par, par_bonne<T>& proj_parm) + { + static const T HALFPI = detail::HALFPI<T>(); + + T c; + + proj_parm.phi1 = pj_param(par.params, "rlat_1").f; + if (fabs(proj_parm.phi1) < EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-23) ); + if (par.es) { + pj_enfn(par.es, proj_parm.en); + proj_parm.m1 = pj_mlfn(proj_parm.phi1, proj_parm.am1 = sin(proj_parm.phi1), + c = cos(proj_parm.phi1), proj_parm.en); + proj_parm.am1 = c / (sqrt(1. - par.es * proj_parm.am1 * proj_parm.am1) * proj_parm.am1); + } else { + if (fabs(proj_parm.phi1) + EPS10 >= HALFPI) + proj_parm.cphi1 = 0.; + else + proj_parm.cphi1 = 1. / tan(proj_parm.phi1); + } + } + + }} // namespace detail::bonne + #endif // doxygen + + /*! + \brief Bonne (Werner lat_1=90) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_1: Latitude of first standard parallel (degrees) + \par Example + \image html ex_bonne.gif + */ + template <typename CalculationType, typename Parameters> + struct bonne_ellipsoid : public detail::bonne::base_bonne_ellipsoid<CalculationType, Parameters> + { + inline bonne_ellipsoid(const Parameters& par) : detail::bonne::base_bonne_ellipsoid<CalculationType, Parameters>(par) + { + detail::bonne::setup_bonne(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Bonne (Werner lat_1=90) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_1: Latitude of first standard parallel (degrees) + \par Example + \image html ex_bonne.gif + */ + template <typename CalculationType, typename Parameters> + struct bonne_spheroid : public detail::bonne::base_bonne_spheroid<CalculationType, Parameters> + { + inline bonne_spheroid(const Parameters& par) : detail::bonne::base_bonne_spheroid<CalculationType, Parameters>(par) + { + detail::bonne::setup_bonne(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::bonne, bonne_spheroid, bonne_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class bonne_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<bonne_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<bonne_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void bonne_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("bonne", new bonne_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_BONNE_HPP + diff --git a/boost/geometry/srs/projections/proj/cass.hpp b/boost/geometry/srs/projections/proj/cass.hpp new file mode 100644 index 0000000000..b5f32b5aab --- /dev/null +++ b/boost/geometry/srs/projections/proj/cass.hpp @@ -0,0 +1,292 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_CASS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_CASS_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_mlfn.hpp> + + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct cass {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace cass + { + + //static const double EPS10 = 1e-10; + //static const double C1 = .16666666666666666666; + //static const double C2 = .00833333333333333333; + //static const double C3 = .04166666666666666666; + //static const double C4 = .33333333333333333333; + //static const double C5 = .06666666666666666666; + + template <typename T> + inline T C1() { return .16666666666666666666666666666666666666; } + template <typename T> + inline T C2() { return .00833333333333333333333333333333333333; } + template <typename T> + inline T C3() { return .04166666666666666666666666666666666666; } + template <typename T> + inline T C4() { return .33333333333333333333333333333333333333; } + template <typename T> + inline T C5() { return .06666666666666666666666666666666666666; } + + template <typename T> + struct par_cass + { + T m0; + T en[EN_SIZE]; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_cass_ellipsoid : public base_t_fi<base_cass_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_cass<CalculationType> m_proj_parm; + + inline base_cass_ellipsoid(const Parameters& par) + : base_t_fi<base_cass_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType C1 = cass::C1<CalculationType>(); + static const CalculationType C2 = cass::C2<CalculationType>(); + static const CalculationType C3 = cass::C3<CalculationType>(); + + CalculationType n = sin(lp_lat); + CalculationType c = cos(lp_lat); + xy_y = pj_mlfn(lp_lat, n, c, this->m_proj_parm.en); + n = 1./sqrt(1. - this->m_par.es * n * n); + CalculationType tn = tan(lp_lat); CalculationType t = tn * tn; + CalculationType a1 = lp_lon * c; + c *= this->m_par.es * c / (1 - this->m_par.es); + CalculationType a2 = a1 * a1; + xy_x = n * a1 * (1. - a2 * t * + (C1 - (8. - t + 8. * c) * a2 * C2)); + xy_y -= this->m_proj_parm.m0 - n * tn * a2 * + (.5 + (5. - t + 6. * c) * a2 * C3); + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType C3 = cass::C3<CalculationType>(); + static const CalculationType C4 = cass::C4<CalculationType>(); + static const CalculationType C5 = cass::C5<CalculationType>(); + + CalculationType ph1; + + ph1 = pj_inv_mlfn(this->m_proj_parm.m0 + xy_y, this->m_par.es, this->m_proj_parm.en); + CalculationType tn = tan(ph1); CalculationType t = tn * tn; + CalculationType n = sin(ph1); + CalculationType r = 1. / (1. - this->m_par.es * n * n); + n = sqrt(r); + r *= (1. - this->m_par.es) * n; + CalculationType dd = xy_x / n; + CalculationType d2 = dd * dd; + lp_lat = ph1 - (n * tn / r) * d2 * + (.5 - (1. + 3. * t) * d2 * C3); + lp_lon = dd * (1. + t * d2 * + (-C4 + (1. + 3. * t) * d2 * C5)) / cos(ph1); + } + + static inline std::string get_name() + { + return "cass_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_cass_spheroid : public base_t_fi<base_cass_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_cass<CalculationType> m_proj_parm; + + inline base_cass_spheroid(const Parameters& par) + : base_t_fi<base_cass_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = asin(cos(lp_lat) * sin(lp_lon)); + xy_y = atan2(tan(lp_lat) , cos(lp_lon)) - this->m_par.phi0; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType dd = xy_y + this->m_par.phi0; + lp_lat = asin(sin(dd) * cos(xy_x)); + lp_lon = atan2(tan(xy_x), cos(dd)); + } + + static inline std::string get_name() + { + return "cass_spheroid"; + } + + }; + + // Cassini + template <typename Parameters, typename T> + inline void setup_cass(Parameters& par, par_cass<T>& proj_parm) + { + if (par.es) { + if (!pj_enfn(par.es, proj_parm.en)) + BOOST_THROW_EXCEPTION( projection_exception(0) ); + proj_parm.m0 = pj_mlfn(par.phi0, sin(par.phi0), cos(par.phi0), proj_parm.en); + } else { + } + } + + }} // namespace detail::cass + #endif // doxygen + + /*! + \brief Cassini projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Ellipsoid + \par Example + \image html ex_cass.gif + */ + template <typename CalculationType, typename Parameters> + struct cass_ellipsoid : public detail::cass::base_cass_ellipsoid<CalculationType, Parameters> + { + inline cass_ellipsoid(const Parameters& par) : detail::cass::base_cass_ellipsoid<CalculationType, Parameters>(par) + { + detail::cass::setup_cass(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Cassini projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Ellipsoid + \par Example + \image html ex_cass.gif + */ + template <typename CalculationType, typename Parameters> + struct cass_spheroid : public detail::cass::base_cass_spheroid<CalculationType, Parameters> + { + inline cass_spheroid(const Parameters& par) : detail::cass::base_cass_spheroid<CalculationType, Parameters>(par) + { + detail::cass::setup_cass(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::cass, cass_spheroid, cass_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class cass_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<cass_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<cass_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void cass_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("cass", new cass_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_CASS_HPP + diff --git a/boost/geometry/srs/projections/proj/cc.hpp b/boost/geometry/srs/projections/proj/cc.hpp new file mode 100644 index 0000000000..c7fc1f20ab --- /dev/null +++ b/boost/geometry/srs/projections/proj/cc.hpp @@ -0,0 +1,171 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_CC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_CC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct cc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace cc + { + + static const double EPS10 = 1.e-10; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_cc_spheroid : public base_t_fi<base_cc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + inline base_cc_spheroid(const Parameters& par) + : base_t_fi<base_cc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + if (fabs(fabs(lp_lat) - HALFPI) <= EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_x = lp_lon; + xy_y = tan(lp_lat); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = atan(xy_y); + lp_lon = xy_x; + } + + static inline std::string get_name() + { + return "cc_spheroid"; + } + + }; + + // Central Cylindrical + template <typename Parameters> + inline void setup_cc(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::cc + #endif // doxygen + + /*! + \brief Central Cylindrical projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Example + \image html ex_cc.gif + */ + template <typename CalculationType, typename Parameters> + struct cc_spheroid : public detail::cc::base_cc_spheroid<CalculationType, Parameters> + { + inline cc_spheroid(const Parameters& par) : detail::cc::base_cc_spheroid<CalculationType, Parameters>(par) + { + detail::cc::setup_cc(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::cc, cc_spheroid, cc_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class cc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<cc_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void cc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("cc", new cc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_CC_HPP + diff --git a/boost/geometry/srs/projections/proj/cea.hpp b/boost/geometry/srs/projections/proj/cea.hpp new file mode 100644 index 0000000000..b6d8707e08 --- /dev/null +++ b/boost/geometry/srs/projections/proj/cea.hpp @@ -0,0 +1,269 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_CEA_HPP +#define BOOST_GEOMETRY_PROJECTIONS_CEA_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_auth.hpp> +#include <boost/geometry/srs/projections/impl/pj_qsfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct cea {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace cea + { + + static const double EPS = 1e-10; + + template <typename T> + struct par_cea + { + T qp; + T apa[APA_SIZE]; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_cea_ellipsoid : public base_t_fi<base_cea_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_cea<CalculationType> m_proj_parm; + + inline base_cea_ellipsoid(const Parameters& par) + : base_t_fi<base_cea_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = this->m_par.k0 * lp_lon; + xy_y = .5 * pj_qsfn(sin(lp_lat), this->m_par.e, this->m_par.one_es) / this->m_par.k0; + } + + // INVERSE(e_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = pj_authlat(asin( 2. * xy_y * this->m_par.k0 / this->m_proj_parm.qp), this->m_proj_parm.apa); + lp_lon = xy_x / this->m_par.k0; + } + + static inline std::string get_name() + { + return "cea_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_cea_spheroid : public base_t_fi<base_cea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_cea<CalculationType> m_proj_parm; + + inline base_cea_spheroid(const Parameters& par) + : base_t_fi<base_cea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = this->m_par.k0 * lp_lon; + xy_y = sin(lp_lat) / this->m_par.k0; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType t; + + if ((t = fabs(xy_y *= this->m_par.k0)) - EPS <= 1.) { + if (t >= 1.) + lp_lat = xy_y < 0. ? -HALFPI : HALFPI; + else + lp_lat = asin(xy_y); + lp_lon = xy_x / this->m_par.k0; + } else + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + } + + static inline std::string get_name() + { + return "cea_spheroid"; + } + + }; + + // Equal Area Cylindrical + template <typename Parameters, typename T> + inline void setup_cea(Parameters& par, par_cea<T>& proj_parm) + { + T t = 0; + + if (pj_param(par.params, "tlat_ts").i && + (par.k0 = cos(t = pj_param(par.params, "rlat_ts").f)) < 0.) + BOOST_THROW_EXCEPTION( projection_exception(-24) ); + if (par.es) { + t = sin(t); + par.k0 /= sqrt(1. - par.es * t * t); + par.e = sqrt(par.es); + if (!pj_authset(par.es, proj_parm.apa)) + BOOST_THROW_EXCEPTION( projection_exception(0) ); + proj_parm.qp = pj_qsfn(1., par.e, par.one_es); + } else { + } + } + + }} // namespace detail::cea + #endif // doxygen + + /*! + \brief Equal Area Cylindrical projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_ts: Latitude of true scale (degrees) + \par Example + \image html ex_cea.gif + */ + template <typename CalculationType, typename Parameters> + struct cea_ellipsoid : public detail::cea::base_cea_ellipsoid<CalculationType, Parameters> + { + inline cea_ellipsoid(const Parameters& par) : detail::cea::base_cea_ellipsoid<CalculationType, Parameters>(par) + { + detail::cea::setup_cea(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Equal Area Cylindrical projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_ts: Latitude of true scale (degrees) + \par Example + \image html ex_cea.gif + */ + template <typename CalculationType, typename Parameters> + struct cea_spheroid : public detail::cea::base_cea_spheroid<CalculationType, Parameters> + { + inline cea_spheroid(const Parameters& par) : detail::cea::base_cea_spheroid<CalculationType, Parameters>(par) + { + detail::cea::setup_cea(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::cea, cea_spheroid, cea_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class cea_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<cea_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<cea_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void cea_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("cea", new cea_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_CEA_HPP + diff --git a/boost/geometry/srs/projections/proj/chamb.hpp b/boost/geometry/srs/projections/proj/chamb.hpp new file mode 100644 index 0000000000..9fd123bb2e --- /dev/null +++ b/boost/geometry/srs/projections/proj/chamb.hpp @@ -0,0 +1,288 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_CHAMB_HPP +#define BOOST_GEOMETRY_PROJECTIONS_CHAMB_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> +#include <cstdio> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct chamb {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace chamb + { + + //static const double THIRD = 0.333333333333333333; + static const double TOL = 1e-9; + + // specific for 'chamb' + template <typename T> + struct VECT { T r, Az; }; + template <typename T> + struct XY { T x, y; }; + + template <typename T> + struct par_chamb + { + struct { /* control point data */ + T phi, lam; + T cosphi, sinphi; + VECT<T> v; + XY<T> p; + T Az; + } c[3]; + XY<T> p; + T beta_0, beta_1, beta_2; + }; + + template <typename T> + inline VECT<T> /* distance and azimuth from point 1 to point 2 */ + vect(T const& dphi, T const& c1, T const& s1, T const& c2, T const& s2, T const& dlam) + { + VECT<T> v; + T cdl, dp, dl; + + cdl = cos(dlam); + if (fabs(dphi) > 1. || fabs(dlam) > 1.) + v.r = aacos(s1 * s2 + c1 * c2 * cdl); + else { /* more accurate for smaller distances */ + dp = sin(.5 * dphi); + dl = sin(.5 * dlam); + v.r = 2. * aasin(sqrt(dp * dp + c1 * c2 * dl * dl)); + } + if (fabs(v.r) > TOL) + v.Az = atan2(c2 * sin(dlam), c1 * s2 - s1 * c2 * cdl); + else + v.r = v.Az = 0.; + return v; + } + + template <typename T> + inline T /* law of cosines */ + lc(T const& b, T const& c, T const& a) + { + return aacos(.5 * (b * b + c * c - a * a) / (b * c)); + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_chamb_spheroid : public base_t_f<base_chamb_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_chamb<CalculationType> m_proj_parm; + + inline base_chamb_spheroid(const Parameters& par) + : base_t_f<base_chamb_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType THIRD = detail::THIRD<CalculationType>(); + + CalculationType sinphi, cosphi, a; + VECT<CalculationType> v[3]; + int i, j; + + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + for (i = 0; i < 3; ++i) { /* dist/azimiths from control */ + v[i] = vect(lp_lat - this->m_proj_parm.c[i].phi, this->m_proj_parm.c[i].cosphi, this->m_proj_parm.c[i].sinphi, + cosphi, sinphi, lp_lon - this->m_proj_parm.c[i].lam); + if ( ! v[i].r) + break; + v[i].Az = adjlon(v[i].Az - this->m_proj_parm.c[i].v.Az); + } + if (i < 3) /* current point at control point */ + { xy_x = this->m_proj_parm.c[i].p.x; xy_y = this->m_proj_parm.c[i].p.y; } + else { /* point mean of intersepts */ + { xy_x = this->m_proj_parm.p.x; xy_y = this->m_proj_parm.p.y; } + for (i = 0; i < 3; ++i) { + j = i == 2 ? 0 : i + 1; + a = lc(this->m_proj_parm.c[i].v.r, v[i].r, v[j].r); + if (v[i].Az < 0.) + a = -a; + if (! i) { /* coord comp unique to each arc */ + xy_x += v[i].r * cos(a); + xy_y -= v[i].r * sin(a); + } else if (i == 1) { + a = this->m_proj_parm.beta_1 - a; + xy_x -= v[i].r * cos(a); + xy_y -= v[i].r * sin(a); + } else { + a = this->m_proj_parm.beta_2 - a; + xy_x += v[i].r * cos(a); + xy_y += v[i].r * sin(a); + } + } + xy_x *= THIRD; /* mean of arc intercepts */ + xy_y *= THIRD; + } + } + + static inline std::string get_name() + { + return "chamb_spheroid"; + } + + }; + + // Chamberlin Trimetric + template <typename Parameters, typename T> + inline void setup_chamb(Parameters& par, par_chamb<T>& proj_parm) + { + static const T ONEPI = detail::ONEPI<T>(); + + int i, j; + char line[10]; + + for (i = 0; i < 3; ++i) { /* get control point locations */ + (void)sprintf(line, "rlat_%d", i+1); + proj_parm.c[i].phi = pj_param(par.params, line).f; + (void)sprintf(line, "rlon_%d", i+1); + proj_parm.c[i].lam = pj_param(par.params, line).f; + proj_parm.c[i].lam = adjlon(proj_parm.c[i].lam - par.lam0); + proj_parm.c[i].cosphi = cos(proj_parm.c[i].phi); + proj_parm.c[i].sinphi = sin(proj_parm.c[i].phi); + } + for (i = 0; i < 3; ++i) { /* inter ctl pt. distances and azimuths */ + j = i == 2 ? 0 : i + 1; + proj_parm.c[i].v = vect(proj_parm.c[j].phi - proj_parm.c[i].phi, proj_parm.c[i].cosphi, proj_parm.c[i].sinphi, + proj_parm.c[j].cosphi, proj_parm.c[j].sinphi, proj_parm.c[j].lam - proj_parm.c[i].lam); + if (! proj_parm.c[i].v.r) + BOOST_THROW_EXCEPTION( projection_exception(-25) ); + /* co-linearity problem ignored for now */ + } + proj_parm.beta_0 = lc(proj_parm.c[0].v.r, proj_parm.c[2].v.r, proj_parm.c[1].v.r); + proj_parm.beta_1 = lc(proj_parm.c[0].v.r, proj_parm.c[1].v.r, proj_parm.c[2].v.r); + proj_parm.beta_2 = ONEPI - proj_parm.beta_0; + proj_parm.p.y = 2. * (proj_parm.c[0].p.y = proj_parm.c[1].p.y = proj_parm.c[2].v.r * sin(proj_parm.beta_0)); + proj_parm.c[2].p.y = 0.; + proj_parm.c[0].p.x = - (proj_parm.c[1].p.x = 0.5 * proj_parm.c[0].v.r); + proj_parm.p.x = proj_parm.c[2].p.x = proj_parm.c[0].p.x + proj_parm.c[2].v.r * cos(proj_parm.beta_0); + par.es = 0.; + } + + }} // namespace detail::chamb + #endif // doxygen + + /*! + \brief Chamberlin Trimetric projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Projection parameters + - lat_1: Latitude of control point 1 (degrees) + - lon_1: Longitude of control point 1 (degrees) + - lat_2: Latitude of control point 2 (degrees) + - lon_2: Longitude of control point 2 (degrees) + - lat_3: Latitude of control point 3 (degrees) + - lon_3: Longitude of control point 3 (degrees) + \par Example + \image html ex_chamb.gif + */ + template <typename CalculationType, typename Parameters> + struct chamb_spheroid : public detail::chamb::base_chamb_spheroid<CalculationType, Parameters> + { + inline chamb_spheroid(const Parameters& par) : detail::chamb::base_chamb_spheroid<CalculationType, Parameters>(par) + { + detail::chamb::setup_chamb(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::chamb, chamb_spheroid, chamb_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class chamb_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<chamb_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void chamb_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("chamb", new chamb_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_CHAMB_HPP + diff --git a/boost/geometry/srs/projections/proj/collg.hpp b/boost/geometry/srs/projections/proj/collg.hpp new file mode 100644 index 0000000000..0bc347a305 --- /dev/null +++ b/boost/geometry/srs/projections/proj/collg.hpp @@ -0,0 +1,183 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_COLLG_HPP +#define BOOST_GEOMETRY_PROJECTIONS_COLLG_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct collg {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace collg + { + + static const double FXC = 1.12837916709551257390; + static const double FYC = 1.77245385090551602729; + static const double ONEEPS = 1.0000001; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_collg_spheroid : public base_t_fi<base_collg_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_collg_spheroid(const Parameters& par) + : base_t_fi<base_collg_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + if ((xy_y = 1. - sin(lp_lat)) <= 0.) + xy_y = 0.; + else + xy_y = sqrt(xy_y); + xy_x = FXC * lp_lon * xy_y; + xy_y = FYC * (1. - xy_y); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = xy_y / FYC - 1.; + if (fabs(lp_lat = 1. - lp_lat * lp_lat) < 1.) + lp_lat = asin(lp_lat); + else if (fabs(lp_lat) > ONEEPS) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else + lp_lat = lp_lat < 0. ? -geometry::math::half_pi<double>() : geometry::math::half_pi<double>(); + if ((lp_lon = 1. - sin(lp_lat)) <= 0.) + lp_lon = 0.; + else + lp_lon = xy_x / (FXC * sqrt(lp_lon)); + } + + static inline std::string get_name() + { + return "collg_spheroid"; + } + + }; + + // Collignon + template <typename Parameters> + inline void setup_collg(Parameters& par) + { + par.es = 0.; + } + + }} // namespace collg + #endif // doxygen + + /*! + \brief Collignon projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_collg.gif + */ + template <typename CalculationType, typename Parameters> + struct collg_spheroid : public detail::collg::base_collg_spheroid<CalculationType, Parameters> + { + inline collg_spheroid(const Parameters& par) : detail::collg::base_collg_spheroid<CalculationType, Parameters>(par) + { + detail::collg::setup_collg(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::collg, collg_spheroid, collg_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class collg_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<collg_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void collg_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("collg", new collg_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_COLLG_HPP + diff --git a/boost/geometry/srs/projections/proj/crast.hpp b/boost/geometry/srs/projections/proj/crast.hpp new file mode 100644 index 0000000000..4aea886071 --- /dev/null +++ b/boost/geometry/srs/projections/proj/crast.hpp @@ -0,0 +1,175 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_CRAST_HPP +#define BOOST_GEOMETRY_PROJECTIONS_CRAST_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct crast {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace crast + { + + static const double XM = 0.97720502380583984317; + static const double RXM = 1.02332670794648848847; + static const double YM = 3.06998012383946546542; + static const double RYM = 0.32573500793527994772; + //static const double THIRD = 0.333333333333333333; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_crast_spheroid : public base_t_fi<base_crast_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_crast_spheroid(const Parameters& par) + : base_t_fi<base_crast_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType THIRD = detail::THIRD<CalculationType>(); + + lp_lat *= THIRD; + xy_x = XM * lp_lon * (2. * cos(lp_lat + lp_lat) - 1.); + xy_y = YM * sin(lp_lat); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType THIRD = detail::THIRD<CalculationType>(); + + lp_lat = 3. * asin(xy_y * RYM); + lp_lon = xy_x * RXM / (2. * cos((lp_lat + lp_lat) * THIRD) - 1); + } + + static inline std::string get_name() + { + return "crast_spheroid"; + } + + }; + + // Craster Parabolic (Putnins P4) + template <typename Parameters> + inline void setup_crast(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::crast + #endif // doxygen + + /*! + \brief Craster Parabolic (Putnins P4) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_crast.gif + */ + template <typename CalculationType, typename Parameters> + struct crast_spheroid : public detail::crast::base_crast_spheroid<CalculationType, Parameters> + { + inline crast_spheroid(const Parameters& par) : detail::crast::base_crast_spheroid<CalculationType, Parameters>(par) + { + detail::crast::setup_crast(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::crast, crast_spheroid, crast_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class crast_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<crast_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void crast_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("crast", new crast_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_CRAST_HPP + diff --git a/boost/geometry/srs/projections/proj/denoy.hpp b/boost/geometry/srs/projections/proj/denoy.hpp new file mode 100644 index 0000000000..afedae8734 --- /dev/null +++ b/boost/geometry/srs/projections/proj/denoy.hpp @@ -0,0 +1,174 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_DENOY_HPP +#define BOOST_GEOMETRY_PROJECTIONS_DENOY_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct denoy {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace denoy + { + + static const double C0 = 0.95; + //static const double C1 = -.08333333333333333333; + //static const double C3 = .00166666666666666666; + static const double D1 = 0.9; + static const double D5 = 0.03; + + template <typename T> + inline T C1() { return -.0833333333333333333333333333333; } + template <typename T> + inline T C3() { return .0016666666666666666666666666666; } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_denoy_spheroid : public base_t_f<base_denoy_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_denoy_spheroid(const Parameters& par) + : base_t_f<base_denoy_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType C1 = denoy::C1<CalculationType>(); + static const CalculationType C3 = denoy::C3<CalculationType>(); + + xy_y = lp_lat; + xy_x = lp_lon; + lp_lon = fabs(lp_lon); + xy_x *= cos((C0 + lp_lon * (C1 + lp_lon * lp_lon * C3)) * + (lp_lat * (D1 + D5 * lp_lat * lp_lat * lp_lat * lp_lat))); + } + + static inline std::string get_name() + { + return "denoy_spheroid"; + } + + }; + + // Denoyer Semi-Elliptical + template <typename Parameters> + inline void setup_denoy(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::denoy + #endif // doxygen + + /*! + \brief Denoyer Semi-Elliptical projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - no inverse + - Spheroid + \par Example + \image html ex_denoy.gif + */ + template <typename CalculationType, typename Parameters> + struct denoy_spheroid : public detail::denoy::base_denoy_spheroid<CalculationType, Parameters> + { + inline denoy_spheroid(const Parameters& par) : detail::denoy::base_denoy_spheroid<CalculationType, Parameters>(par) + { + detail::denoy::setup_denoy(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::denoy, denoy_spheroid, denoy_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class denoy_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<denoy_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void denoy_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("denoy", new denoy_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_DENOY_HPP + diff --git a/boost/geometry/srs/projections/proj/eck1.hpp b/boost/geometry/srs/projections/proj/eck1.hpp new file mode 100644 index 0000000000..41f0f6424f --- /dev/null +++ b/boost/geometry/srs/projections/proj/eck1.hpp @@ -0,0 +1,167 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_ECK1_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ECK1_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct eck1 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace eck1 + { + + static const double FC = .92131773192356127802; + static const double RP = .31830988618379067154; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_eck1_spheroid : public base_t_fi<base_eck1_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_eck1_spheroid(const Parameters& par) + : base_t_fi<base_eck1_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = FC * lp_lon * (1. - RP * fabs(lp_lat)); + xy_y = FC * lp_lat; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = xy_y / FC; + lp_lon = xy_x / (FC * (1. - RP * fabs(lp_lat))); + } + + static inline std::string get_name() + { + return "eck1_spheroid"; + } + + }; + + // Eckert I + template <typename Parameters> + inline void setup_eck1(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::eck1 + #endif // doxygen + + /*! + \brief Eckert I projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_eck1.gif + */ + template <typename CalculationType, typename Parameters> + struct eck1_spheroid : public detail::eck1::base_eck1_spheroid<CalculationType, Parameters> + { + inline eck1_spheroid(const Parameters& par) : detail::eck1::base_eck1_spheroid<CalculationType, Parameters>(par) + { + detail::eck1::setup_eck1(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::eck1, eck1_spheroid, eck1_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class eck1_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<eck1_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void eck1_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("eck1", new eck1_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_ECK1_HPP + diff --git a/boost/geometry/srs/projections/proj/eck2.hpp b/boost/geometry/srs/projections/proj/eck2.hpp new file mode 100644 index 0000000000..737057bfcd --- /dev/null +++ b/boost/geometry/srs/projections/proj/eck2.hpp @@ -0,0 +1,184 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_ECK2_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ECK2_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct eck2 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace eck2 + { + + static const double FXC = 0.46065886596178063902; + static const double FYC = 1.44720250911653531871; + //static const double C13 = 0.33333333333333333333; + static const double ONEEPS = 1.0000001; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_eck2_spheroid : public base_t_fi<base_eck2_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_eck2_spheroid(const Parameters& par) + : base_t_fi<base_eck2_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = FXC * lp_lon * (xy_y = sqrt(4. - 3. * sin(fabs(lp_lat)))); + xy_y = FYC * (2. - xy_y); + if ( lp_lat < 0.) xy_y = -xy_y; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType C13 = detail::THIRD<CalculationType>(); + + lp_lon = xy_x / (FXC * ( lp_lat = 2. - fabs(xy_y) / FYC) ); + lp_lat = (4. - lp_lat * lp_lat) * C13; + if (fabs(lp_lat) >= 1.) { + if (fabs(lp_lat) > ONEEPS) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else + lp_lat = lp_lat < 0. ? -HALFPI : HALFPI; + } else + lp_lat = asin(lp_lat); + if (xy_y < 0) + lp_lat = -lp_lat; + } + + static inline std::string get_name() + { + return "eck2_spheroid"; + } + + }; + + // Eckert II + template <typename Parameters> + inline void setup_eck2(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::eck2 + #endif // doxygen + + /*! + \brief Eckert II projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_eck2.gif + */ + template <typename CalculationType, typename Parameters> + struct eck2_spheroid : public detail::eck2::base_eck2_spheroid<CalculationType, Parameters> + { + inline eck2_spheroid(const Parameters& par) : detail::eck2::base_eck2_spheroid<CalculationType, Parameters>(par) + { + detail::eck2::setup_eck2(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::eck2, eck2_spheroid, eck2_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class eck2_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<eck2_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void eck2_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("eck2", new eck2_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_ECK2_HPP + diff --git a/boost/geometry/srs/projections/proj/eck3.hpp b/boost/geometry/srs/projections/proj/eck3.hpp new file mode 100644 index 0000000000..dbc1beb625 --- /dev/null +++ b/boost/geometry/srs/projections/proj/eck3.hpp @@ -0,0 +1,321 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_ECK3_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ECK3_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/core/ignore_unused.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct eck3 {}; + struct putp1 {}; + struct wag6 {}; + struct kav7 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace eck3 + { + + template <typename T> + struct par_eck3 + { + T C_x, C_y, A, B; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_eck3_spheroid : public base_t_fi<base_eck3_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_eck3<CalculationType> m_proj_parm; + + inline base_eck3_spheroid(const Parameters& par) + : base_t_fi<base_eck3_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_y = this->m_proj_parm.C_y * lp_lat; + xy_x = this->m_proj_parm.C_x * lp_lon * (this->m_proj_parm.A + asqrt(1. - this->m_proj_parm.B * lp_lat * lp_lat)); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = xy_y / this->m_proj_parm.C_y; + lp_lon = xy_x / (this->m_proj_parm.C_x * (this->m_proj_parm.A + asqrt(1. - this->m_proj_parm.B * lp_lat * lp_lat))); + } + + static inline std::string get_name() + { + return "eck3_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_eck3<T>& proj_parm) + { + boost::ignore_unused(proj_parm); + par.es = 0.; + } + + + // Eckert III + template <typename Parameters, typename T> + inline void setup_eck3(Parameters& par, par_eck3<T>& proj_parm) + { + proj_parm.C_x = .42223820031577120149; + proj_parm.C_y = .84447640063154240298; + proj_parm.A = 1.; + proj_parm.B = 0.4052847345693510857755; + setup(par, proj_parm); + } + + // Putnins P1 + template <typename Parameters, typename T> + inline void setup_putp1(Parameters& par, par_eck3<T>& proj_parm) + { + proj_parm.C_x = 1.89490; + proj_parm.C_y = 0.94745; + proj_parm.A = -0.5; + proj_parm.B = 0.30396355092701331433; + setup(par, proj_parm); + } + + // Wagner VI + template <typename Parameters, typename T> + inline void setup_wag6(Parameters& par, par_eck3<T>& proj_parm) + { + proj_parm.C_x = proj_parm.C_y = 0.94745; + proj_parm.A = 0.; + proj_parm.B = 0.30396355092701331433; + setup(par, proj_parm); + } + + // Kavraisky VII + template <typename Parameters, typename T> + inline void setup_kav7(Parameters& par, par_eck3<T>& proj_parm) + { + proj_parm.C_x = 0.2632401569273184856851; + proj_parm.C_x = 0.8660254037844; + proj_parm.C_y = 1.; + proj_parm.A = 0.; + proj_parm.B = 0.30396355092701331433; + setup(par, proj_parm); + } + + }} // namespace detail::eck3 + #endif // doxygen + + /*! + \brief Eckert III projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_eck3.gif + */ + template <typename CalculationType, typename Parameters> + struct eck3_spheroid : public detail::eck3::base_eck3_spheroid<CalculationType, Parameters> + { + inline eck3_spheroid(const Parameters& par) : detail::eck3::base_eck3_spheroid<CalculationType, Parameters>(par) + { + detail::eck3::setup_eck3(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Putnins P1 projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_putp1.gif + */ + template <typename CalculationType, typename Parameters> + struct putp1_spheroid : public detail::eck3::base_eck3_spheroid<CalculationType, Parameters> + { + inline putp1_spheroid(const Parameters& par) : detail::eck3::base_eck3_spheroid<CalculationType, Parameters>(par) + { + detail::eck3::setup_putp1(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Wagner VI projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_wag6.gif + */ + template <typename CalculationType, typename Parameters> + struct wag6_spheroid : public detail::eck3::base_eck3_spheroid<CalculationType, Parameters> + { + inline wag6_spheroid(const Parameters& par) : detail::eck3::base_eck3_spheroid<CalculationType, Parameters>(par) + { + detail::eck3::setup_wag6(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Kavraisky VII projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_kav7.gif + */ + template <typename CalculationType, typename Parameters> + struct kav7_spheroid : public detail::eck3::base_eck3_spheroid<CalculationType, Parameters> + { + inline kav7_spheroid(const Parameters& par) : detail::eck3::base_eck3_spheroid<CalculationType, Parameters>(par) + { + detail::eck3::setup_kav7(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::eck3, eck3_spheroid, eck3_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::putp1, putp1_spheroid, putp1_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::wag6, wag6_spheroid, wag6_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::kav7, kav7_spheroid, kav7_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class eck3_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<eck3_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class putp1_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<putp1_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class wag6_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<wag6_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class kav7_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<kav7_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void eck3_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("eck3", new eck3_entry<CalculationType, Parameters>); + factory.add_to_factory("putp1", new putp1_entry<CalculationType, Parameters>); + factory.add_to_factory("wag6", new wag6_entry<CalculationType, Parameters>); + factory.add_to_factory("kav7", new kav7_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_ECK3_HPP + diff --git a/boost/geometry/srs/projections/proj/eck4.hpp b/boost/geometry/srs/projections/proj/eck4.hpp new file mode 100644 index 0000000000..4307b59439 --- /dev/null +++ b/boost/geometry/srs/projections/proj/eck4.hpp @@ -0,0 +1,195 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_ECK4_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ECK4_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct eck4 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace eck4 + { + + static const double C_x = .42223820031577120149; + static const double C_y = 1.32650042817700232218; + static const double RC_y = .75386330736002178205; + static const double C_p = 3.57079632679489661922; + static const double RC_p = .28004957675577868795; + static const double EPS = 1e-7; + static const int NITER = 6; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_eck4_spheroid : public base_t_fi<base_eck4_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_eck4_spheroid(const Parameters& par) + : base_t_fi<base_eck4_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType p, V, s, c; + int i; + + p = C_p * sin(lp_lat); + V = lp_lat * lp_lat; + lp_lat *= 0.895168 + V * ( 0.0218849 + V * 0.00826809 ); + for (i = NITER; i ; --i) { + c = cos(lp_lat); + s = sin(lp_lat); + lp_lat -= V = (lp_lat + s * (c + 2.) - p) / + (1. + c * (c + 2.) - s * s); + if (fabs(V) < EPS) + break; + } + if (!i) { + xy_x = C_x * lp_lon; + xy_y = lp_lat < 0. ? -C_y : C_y; + } else { + xy_x = C_x * lp_lon * (1. + cos(lp_lat)); + xy_y = C_y * sin(lp_lat); + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType c; + + lp_lat = aasin(xy_y / C_y); + lp_lon = xy_x / (C_x * (1. + (c = cos(lp_lat)))); + lp_lat = aasin((lp_lat + sin(lp_lat) * (c + 2.)) / C_p); + } + + static inline std::string get_name() + { + return "eck4_spheroid"; + } + + }; + + // Eckert IV + template <typename Parameters> + inline void setup_eck4(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::eck4 + #endif // doxygen + + /*! + \brief Eckert IV projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_eck4.gif + */ + template <typename CalculationType, typename Parameters> + struct eck4_spheroid : public detail::eck4::base_eck4_spheroid<CalculationType, Parameters> + { + inline eck4_spheroid(const Parameters& par) : detail::eck4::base_eck4_spheroid<CalculationType, Parameters>(par) + { + detail::eck4::setup_eck4(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::eck4, eck4_spheroid, eck4_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class eck4_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<eck4_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void eck4_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("eck4", new eck4_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_ECK4_HPP + diff --git a/boost/geometry/srs/projections/proj/eck5.hpp b/boost/geometry/srs/projections/proj/eck5.hpp new file mode 100644 index 0000000000..bc075702e8 --- /dev/null +++ b/boost/geometry/srs/projections/proj/eck5.hpp @@ -0,0 +1,168 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_ECK5_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ECK5_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct eck5 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace eck5 + { + + static const double XF = 0.44101277172455148219; + static const double RXF = 2.26750802723822639137; + static const double YF = 0.88202554344910296438; + static const double RYF = 1.13375401361911319568; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_eck5_spheroid : public base_t_fi<base_eck5_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_eck5_spheroid(const Parameters& par) + : base_t_fi<base_eck5_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = XF * (1. + cos(lp_lat)) * lp_lon; + xy_y = YF * lp_lat; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lon = RXF * xy_x / (1. + cos( lp_lat = RYF * xy_y)); + } + + static inline std::string get_name() + { + return "eck5_spheroid"; + } + + }; + + // Eckert V + template <typename Parameters> + inline void setup_eck5(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::eck5 + #endif // doxygen + + /*! + \brief Eckert V projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_eck5.gif + */ + template <typename CalculationType, typename Parameters> + struct eck5_spheroid : public detail::eck5::base_eck5_spheroid<CalculationType, Parameters> + { + inline eck5_spheroid(const Parameters& par) : detail::eck5::base_eck5_spheroid<CalculationType, Parameters>(par) + { + detail::eck5::setup_eck5(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::eck5, eck5_spheroid, eck5_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class eck5_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<eck5_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void eck5_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("eck5", new eck5_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_ECK5_HPP + diff --git a/boost/geometry/srs/projections/proj/eqc.hpp b/boost/geometry/srs/projections/proj/eqc.hpp new file mode 100644 index 0000000000..5234ce9b8d --- /dev/null +++ b/boost/geometry/srs/projections/proj/eqc.hpp @@ -0,0 +1,175 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_EQC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_EQC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct eqc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace eqc + { + template <typename T> + struct par_eqc + { + T rc; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_eqc_spheroid : public base_t_fi<base_eqc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_eqc<CalculationType> m_proj_parm; + + inline base_eqc_spheroid(const Parameters& par) + : base_t_fi<base_eqc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = this->m_proj_parm.rc * lp_lon; + xy_y = lp_lat - this->m_par.phi0; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lon = xy_x / this->m_proj_parm.rc; + lp_lat = xy_y + this->m_par.phi0; + } + + static inline std::string get_name() + { + return "eqc_spheroid"; + } + + }; + + // Equidistant Cylindrical (Plate Caree) + template <typename Parameters, typename T> + inline void setup_eqc(Parameters& par, par_eqc<T>& proj_parm) + { + if ((proj_parm.rc = cos(pj_param(par.params, "rlat_ts").f)) <= 0.) + BOOST_THROW_EXCEPTION( projection_exception(-24) ); + par.es = 0.; + } + + }} // namespace detail::eqc + #endif // doxygen + + /*! + \brief Equidistant Cylindrical (Plate Caree) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Projection parameters + - lat_ts: Latitude of true scale (degrees) + - lat_0: Latitude of origin + \par Example + \image html ex_eqc.gif + */ + template <typename CalculationType, typename Parameters> + struct eqc_spheroid : public detail::eqc::base_eqc_spheroid<CalculationType, Parameters> + { + inline eqc_spheroid(const Parameters& par) : detail::eqc::base_eqc_spheroid<CalculationType, Parameters>(par) + { + detail::eqc::setup_eqc(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::eqc, eqc_spheroid, eqc_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class eqc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<eqc_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void eqc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("eqc", new eqc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_EQC_HPP + diff --git a/boost/geometry/srs/projections/proj/eqdc.hpp b/boost/geometry/srs/projections/proj/eqdc.hpp new file mode 100644 index 0000000000..1af11338a4 --- /dev/null +++ b/boost/geometry/srs/projections/proj/eqdc.hpp @@ -0,0 +1,250 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_EQDC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_EQDC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_mlfn.hpp> +#include <boost/geometry/srs/projections/impl/pj_msfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct eqdc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace eqdc + { + + static const double EPS10 = 1.e-10; + + template <typename T> + struct par_eqdc + { + T phi1; + T phi2; + T n; + T rho0; + T c; + T en[EN_SIZE]; + int ellips; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_eqdc_ellipsoid : public base_t_fi<base_eqdc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_eqdc<CalculationType> m_proj_parm; + + inline base_eqdc_ellipsoid(const Parameters& par) + : base_t_fi<base_eqdc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) sphere & ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType rho = 0.0; + rho = this->m_proj_parm.c - (this->m_proj_parm.ellips ? pj_mlfn(lp_lat, sin(lp_lat), + cos(lp_lat), this->m_proj_parm.en) : lp_lat); + xy_x = rho * sin( lp_lon *= this->m_proj_parm.n ); + xy_y = this->m_proj_parm.rho0 - rho * cos(lp_lon); + } + + // INVERSE(e_inverse) sphere & ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType rho = 0.0; + if ((rho = boost::math::hypot(xy_x, xy_y = this->m_proj_parm.rho0 - xy_y)) != 0.0 ) { + if (this->m_proj_parm.n < 0.) { + rho = -rho; + xy_x = -xy_x; + xy_y = -xy_y; + } + lp_lat = this->m_proj_parm.c - rho; + if (this->m_proj_parm.ellips) + lp_lat = pj_inv_mlfn(lp_lat, this->m_par.es, this->m_proj_parm.en); + lp_lon = atan2(xy_x, xy_y) / this->m_proj_parm.n; + } else { + lp_lon = 0.; + lp_lat = this->m_proj_parm.n > 0. ? geometry::math::half_pi<double>() : - geometry::math::half_pi<double>(); + } + } + + // SPECIAL(fac) + #ifdef SPECIAL_FACTORS_NOT_CONVERTED + inline void fac(Geographic lp, Factors &fac) const + { + CalculationType sinphi, cosphi; + + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + this->m_fac.code |= IS_ANAL_HK; + this->m_fac.h = 1.; + this->m_fac.k = this->m_proj_parm.n * (this->m_proj_parm.c - (this->m_proj_parm.ellips ? pj_mlfn(lp_lat, sinphi, + cosphi, this->m_proj_parm.en) : lp_lat)) / pj_msfn(sinphi, cosphi, this->m_par.es); + } + #endif + + static inline std::string get_name() + { + return "eqdc_ellipsoid"; + } + + }; + + // Equidistant Conic + template <typename Parameters, typename T> + inline void setup_eqdc(Parameters& par, par_eqdc<T>& proj_parm) + { + T cosphi, sinphi; + int secant; + + proj_parm.phi1 = pj_param(par.params, "rlat_1").f; + proj_parm.phi2 = pj_param(par.params, "rlat_2").f; + if (fabs(proj_parm.phi1 + proj_parm.phi2) < EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-21) ); + if (!pj_enfn(par.es, proj_parm.en)) + BOOST_THROW_EXCEPTION( projection_exception(0) ); + proj_parm.n = sinphi = sin(proj_parm.phi1); + cosphi = cos(proj_parm.phi1); + secant = fabs(proj_parm.phi1 - proj_parm.phi2) >= EPS10; + if( (proj_parm.ellips = (par.es > 0.)) ) { + double ml1, m1; + + m1 = pj_msfn(sinphi, cosphi, par.es); + ml1 = pj_mlfn(proj_parm.phi1, sinphi, cosphi, proj_parm.en); + if (secant) { /* secant cone */ + sinphi = sin(proj_parm.phi2); + cosphi = cos(proj_parm.phi2); + proj_parm.n = (m1 - pj_msfn(sinphi, cosphi, par.es)) / + (pj_mlfn(proj_parm.phi2, sinphi, cosphi, proj_parm.en) - ml1); + } + proj_parm.c = ml1 + m1 / proj_parm.n; + proj_parm.rho0 = proj_parm.c - pj_mlfn(par.phi0, sin(par.phi0), + cos(par.phi0), proj_parm.en); + } else { + if (secant) + proj_parm.n = (cosphi - cos(proj_parm.phi2)) / (proj_parm.phi2 - proj_parm.phi1); + proj_parm.c = proj_parm.phi1 + cos(proj_parm.phi1) / proj_parm.n; + proj_parm.rho0 = proj_parm.c - par.phi0; + } + } + + }} // namespace detail::eqdc + #endif // doxygen + + /*! + \brief Equidistant Conic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_1: Latitude of first standard parallel (degrees) + - lat_2: Latitude of second standard parallel (degrees) + \par Example + \image html ex_eqdc.gif + */ + template <typename CalculationType, typename Parameters> + struct eqdc_ellipsoid : public detail::eqdc::base_eqdc_ellipsoid<CalculationType, Parameters> + { + inline eqdc_ellipsoid(const Parameters& par) : detail::eqdc::base_eqdc_ellipsoid<CalculationType, Parameters>(par) + { + detail::eqdc::setup_eqdc(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::eqdc, eqdc_ellipsoid, eqdc_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class eqdc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<eqdc_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void eqdc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("eqdc", new eqdc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_EQDC_HPP + diff --git a/boost/geometry/srs/projections/proj/etmerc.hpp b/boost/geometry/srs/projections/proj/etmerc.hpp new file mode 100644 index 0000000000..479c128f11 --- /dev/null +++ b/boost/geometry/srs/projections/proj/etmerc.hpp @@ -0,0 +1,395 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_ETMERC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ETMERC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Copyright (c) 2008 Gerald I. Evenden + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct etmerc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace etmerc + { + + static const int PROJ_ETMERC_ORDER = 6; + + template <typename T> + struct par_etmerc + { + T Qn; /* Merid. quad., scaled to the projection */ + T Zb; /* Radius vector in polar coord. systems */ + T cgb[6]; /* Constants for Gauss -> Geo lat */ + T cbg[6]; /* Constants for Geo lat -> Gauss */ + T utg[6]; /* Constants for transv. merc. -> geo */ + T gtu[6]; /* Constants for geo -> transv. merc. */ + }; + + /* The code in this file is largly based upon procedures: + * + * Written by: Knud Poder and Karsten Engsager + * + * Based on math from: R.Koenig and K.H. Weise, "Mathematische + * Grundlagen der hoeheren Geodaesie und Kartographie, + * Springer-Verlag, Berlin/Goettingen" Heidelberg, 1951. + * + * Modified and used here by permission of Reference Networks + * Division, Kort og Matrikelstyrelsen (KMS), Copenhagen, Denmark + */ + + + + + + template <typename T> + inline T + log1py(T const& x) { /* Compute log(1+x) accurately */ + volatile T + y = 1 + x, + z = y - 1; + /* Here's the explanation for this magic: y = 1 + z, exactly, and z + * approx x, thus log(y)/z (which is nearly constant near z = 0) returns + * a good approximation to the true log(1 + x)/x. The multiplication x * + * (log(y)/z) introduces little additional error. */ + return z == 0 ? x : x * log(y) / z; + } + + template <typename T> + inline T + asinhy(T const& x) { /* Compute asinh(x) accurately */ + T y = fabs(x); /* Enforce odd parity */ + y = log1py(y * (1 + y/(boost::math::hypot(1.0, y) + 1))); + return x < 0 ? -y : y; + } + + template <typename T> + inline T + gatg(const T *p1, int len_p1, T const& B) { + const T *p; + T h = 0, h1, h2 = 0, cos_2B; + + cos_2B = 2*cos(2*B); + for (p = p1 + len_p1, h1 = *--p; p - p1; h2 = h1, h1 = h) + h = -h2 + cos_2B*h1 + *--p; + return (B + h*sin(2*B)); + } + + template <typename T> + inline T + clenS(const T *a, int size, T const& arg_r, T const& arg_i, T *R, T *I) { + T r, i, hr, hr1, hr2, hi, hi1, hi2; + T sin_arg_r, cos_arg_r, sinh_arg_i, cosh_arg_i; + + /* arguments */ + const T* p = a + size; + sin_arg_r = sin(arg_r); + cos_arg_r = cos(arg_r); + sinh_arg_i = sinh(arg_i); + cosh_arg_i = cosh(arg_i); + r = 2*cos_arg_r*cosh_arg_i; + i = -2*sin_arg_r*sinh_arg_i; + /* summation loop */ + for (hi1 = hr1 = hi = 0, hr = *--p; a - p;) { + hr2 = hr1; + hi2 = hi1; + hr1 = hr; + hi1 = hi; + hr = -hr2 + r*hr1 - i*hi1 + *--p; + hi = -hi2 + i*hr1 + r*hi1; + } + r = sin_arg_r*cosh_arg_i; + i = cos_arg_r*sinh_arg_i; + *R = r*hr - i*hi; + *I = r*hi + i*hr; + return(*R); + } + + template <typename T> + inline T + clens(const T *a, int size, T const& arg_r) { + T r, hr, hr1, hr2, cos_arg_r; + + const T* p = a + size; + cos_arg_r = cos(arg_r); + r = 2*cos_arg_r; + /* summation loop */ + for (hr1 = 0, hr = *--p; a - p;) { + hr2 = hr1; + hr1 = hr; + hr = -hr2 + r*hr1 + *--p; + } + return(sin(arg_r)*hr); + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_etmerc_ellipsoid : public base_t_fi<base_etmerc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_etmerc<CalculationType> m_proj_parm; + + inline base_etmerc_ellipsoid(const Parameters& par) + : base_t_fi<base_etmerc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType sin_Cn, cos_Cn, cos_Ce, sin_Ce, dCn, dCe; + CalculationType Cn = lp_lat, Ce = lp_lon; + + /* ell. LAT, LNG -> Gaussian LAT, LNG */ + Cn = gatg(this->m_proj_parm.cbg, PROJ_ETMERC_ORDER, Cn); + /* Gaussian LAT, LNG -> compl. sph. LAT */ + sin_Cn = sin(Cn); + cos_Cn = cos(Cn); + sin_Ce = sin(Ce); + cos_Ce = cos(Ce); + + Cn = atan2(sin_Cn, cos_Ce*cos_Cn); + Ce = atan2(sin_Ce*cos_Cn, boost::math::hypot(sin_Cn, cos_Cn*cos_Ce)); + /* compl. sph. N, E -> ell. norm. N, E */ + Ce = asinhy(tan(Ce)); /* Replaces: Ce = log(tan(FORTPI + Ce*0.5)); */ + Cn += clenS(this->m_proj_parm.gtu, PROJ_ETMERC_ORDER, 2*Cn, 2*Ce, &dCn, &dCe); + Ce += dCe; + if (fabs(Ce) <= 2.623395162778) { + xy_y = this->m_proj_parm.Qn * Cn + this->m_proj_parm.Zb; /* Northing */ + xy_x = this->m_proj_parm.Qn * Ce; /* Easting */ + } else + xy_x = xy_y = HUGE_VAL; + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType sin_Cn, cos_Cn, cos_Ce, sin_Ce, dCn, dCe; + CalculationType Cn = xy_y, Ce = xy_x; + + /* normalize N, E */ + Cn = (Cn - this->m_proj_parm.Zb)/this->m_proj_parm.Qn; + Ce = Ce/this->m_proj_parm.Qn; + if (fabs(Ce) <= 2.623395162778) { /* 150 degrees */ + /* norm. N, E -> compl. sph. LAT, LNG */ + Cn += clenS(this->m_proj_parm.utg, PROJ_ETMERC_ORDER, 2*Cn, 2*Ce, &dCn, &dCe); + Ce += dCe; + Ce = atan(sinh(Ce)); /* Replaces: Ce = 2*(atan(exp(Ce)) - FORTPI); */ + /* compl. sph. LAT -> Gaussian LAT, LNG */ + sin_Cn = sin(Cn); + cos_Cn = cos(Cn); + sin_Ce = sin(Ce); + cos_Ce = cos(Ce); + Ce = atan2(sin_Ce, cos_Ce*cos_Cn); + Cn = atan2(sin_Cn*cos_Ce, boost::math::hypot(sin_Ce, cos_Ce*cos_Cn)); + /* Gaussian LAT, LNG -> ell. LAT, LNG */ + lp_lat = gatg(this->m_proj_parm.cgb, PROJ_ETMERC_ORDER, Cn); + lp_lon = Ce; + } + else + lp_lat = lp_lon = HUGE_VAL; + } + + static inline std::string get_name() + { + return "etmerc_ellipsoid"; + } + + }; + + // Extended Transverse Mercator + template <typename Parameters, typename T> + inline void setup_etmerc(Parameters& par, par_etmerc<T>& proj_parm) + { + T f, n, np, Z; + + if (par.es <= 0) + BOOST_THROW_EXCEPTION( projection_exception(-34) ); + f = par.es / (1 + sqrt(1 - par.es)); /* Replaces: f = 1 - sqrt(1-par.es); */ + /* third flattening */ + np = n = f/(2 - f); + + /* COEF. OF TRIG SERIES GEO <-> GAUSS */ + /* cgb := Gaussian -> Geodetic, KW p190 - 191 (61) - (62) */ + /* cbg := Geodetic -> Gaussian, KW p186 - 187 (51) - (52) */ + /* PROJ_ETMERC_ORDER = 6th degree : Engsager and Poder: ICC2007 */ + proj_parm.cgb[0] = n*( 2 + n*(-2/3.0 + n*(-2 + n*(116/45.0 + n*(26/45.0 + + n*(-2854/675.0 )))))); + proj_parm.cbg[0] = n*(-2 + n*( 2/3.0 + n*( 4/3.0 + n*(-82/45.0 + n*(32/45.0 + + n*( 4642/4725.0)))))); + np *= n; + proj_parm.cgb[1] = np*(7/3.0 + n*( -8/5.0 + n*(-227/45.0 + n*(2704/315.0 + + n*( 2323/945.0))))); + proj_parm.cbg[1] = np*(5/3.0 + n*(-16/15.0 + n*( -13/9.0 + n*( 904/315.0 + + n*(-1522/945.0))))); + np *= n; + /* n^5 coeff corrected from 1262/105 -> -1262/105 */ + proj_parm.cgb[2] = np*( 56/15.0 + n*(-136/35.0 + n*(-1262/105.0 + + n*( 73814/2835.0)))); + proj_parm.cbg[2] = np*(-26/15.0 + n*( 34/21.0 + n*( 8/5.0 + + n*(-12686/2835.0)))); + np *= n; + /* n^5 coeff corrected from 322/35 -> 332/35 */ + proj_parm.cgb[3] = np*(4279/630.0 + n*(-332/35.0 + n*(-399572/14175.0))); + proj_parm.cbg[3] = np*(1237/630.0 + n*( -12/5.0 + n*( -24832/14175.0))); + np *= n; + proj_parm.cgb[4] = np*(4174/315.0 + n*(-144838/6237.0 )); + proj_parm.cbg[4] = np*(-734/315.0 + n*( 109598/31185.0)); + np *= n; + proj_parm.cgb[5] = np*(601676/22275.0 ); + proj_parm.cbg[5] = np*(444337/155925.0); + + /* Constants of the projections */ + /* Transverse Mercator (UTM, ITM, etc) */ + np = n*n; + /* Norm. mer. quad, K&W p.50 (96), p.19 (38b), p.5 (2) */ + proj_parm.Qn = par.k0/(1 + n) * (1 + np*(1/4.0 + np*(1/64.0 + np/256.0))); + /* coef of trig series */ + /* utg := ell. N, E -> sph. N, E, KW p194 (65) */ + /* gtu := sph. N, E -> ell. N, E, KW p196 (69) */ + proj_parm.utg[0] = n*(-0.5 + n*( 2/3.0 + n*(-37/96.0 + n*( 1/360.0 + + n*( 81/512.0 + n*(-96199/604800.0)))))); + proj_parm.gtu[0] = n*( 0.5 + n*(-2/3.0 + n*( 5/16.0 + n*(41/180.0 + + n*(-127/288.0 + n*( 7891/37800.0 )))))); + proj_parm.utg[1] = np*(-1/48.0 + n*(-1/15.0 + n*(437/1440.0 + n*(-46/105.0 + + n*( 1118711/3870720.0))))); + proj_parm.gtu[1] = np*(13/48.0 + n*(-3/5.0 + n*(557/1440.0 + n*(281/630.0 + + n*(-1983433/1935360.0))))); + np *= n; + proj_parm.utg[2] = np*(-17/480.0 + n*( 37/840.0 + n*( 209/4480.0 + + n*( -5569/90720.0 )))); + proj_parm.gtu[2] = np*( 61/240.0 + n*(-103/140.0 + n*(15061/26880.0 + + n*(167603/181440.0)))); + np *= n; + proj_parm.utg[3] = np*(-4397/161280.0 + n*( 11/504.0 + n*( 830251/7257600.0))); + proj_parm.gtu[3] = np*(49561/161280.0 + n*(-179/168.0 + n*(6601661/7257600.0))); + np *= n; + proj_parm.utg[4] = np*(-4583/161280.0 + n*( 108847/3991680.0)); + proj_parm.gtu[4] = np*(34729/80640.0 + n*(-3418889/1995840.0)); + np *= n; + proj_parm.utg[5] = np*(-20648693/638668800.0); + proj_parm.gtu[5] = np*(212378941/319334400.0); + /* Gaussian latitude value of the origin latitude */ + Z = gatg(proj_parm.cbg, PROJ_ETMERC_ORDER, par.phi0); + /* Origin northing minus true northing at the origin latitude */ + /* i.e. true northing = N - proj_parm.Zb */ + proj_parm.Zb = - proj_parm.Qn*(Z + clens(proj_parm.gtu, PROJ_ETMERC_ORDER, 2*Z)); + } + + }} // namespace detail::etmerc + #endif // doxygen + + /*! + \brief Extended Transverse Mercator projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Projection parameters + - lat_ts: Latitude of true scale + - lat_0: Latitude of origin + \par Example + \image html ex_etmerc.gif + */ + template <typename CalculationType, typename Parameters> + struct etmerc_ellipsoid : public detail::etmerc::base_etmerc_ellipsoid<CalculationType, Parameters> + { + inline etmerc_ellipsoid(const Parameters& par) : detail::etmerc::base_etmerc_ellipsoid<CalculationType, Parameters>(par) + { + detail::etmerc::setup_etmerc(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::etmerc, etmerc_ellipsoid, etmerc_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class etmerc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<etmerc_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void etmerc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("etmerc", new etmerc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_ETMERC_HPP + diff --git a/boost/geometry/srs/projections/proj/fahey.hpp b/boost/geometry/srs/projections/proj/fahey.hpp new file mode 100644 index 0000000000..8ea43ee94b --- /dev/null +++ b/boost/geometry/srs/projections/proj/fahey.hpp @@ -0,0 +1,168 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_FAHEY_HPP +#define BOOST_GEOMETRY_PROJECTIONS_FAHEY_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct fahey {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace fahey + { + + static const double TOL = 1e-6; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_fahey_spheroid : public base_t_fi<base_fahey_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_fahey_spheroid(const Parameters& par) + : base_t_fi<base_fahey_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_y = 1.819152 * ( xy_x = tan(0.5 * lp_lat) ); + xy_x = 0.819152 * lp_lon * asqrt(1 - xy_x * xy_x); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = 2. * atan(xy_y /= 1.819152); + lp_lon = fabs(xy_y = 1. - xy_y * xy_y) < TOL ? 0. : + xy_x / (0.819152 * sqrt(xy_y)); + } + + static inline std::string get_name() + { + return "fahey_spheroid"; + } + + }; + + // Fahey + template <typename Parameters> + inline void setup_fahey(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::fahey + #endif // doxygen + + /*! + \brief Fahey projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_fahey.gif + */ + template <typename CalculationType, typename Parameters> + struct fahey_spheroid : public detail::fahey::base_fahey_spheroid<CalculationType, Parameters> + { + inline fahey_spheroid(const Parameters& par) : detail::fahey::base_fahey_spheroid<CalculationType, Parameters>(par) + { + detail::fahey::setup_fahey(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::fahey, fahey_spheroid, fahey_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class fahey_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<fahey_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void fahey_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("fahey", new fahey_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_FAHEY_HPP + diff --git a/boost/geometry/srs/projections/proj/fouc_s.hpp b/boost/geometry/srs/projections/proj/fouc_s.hpp new file mode 100644 index 0000000000..0f34593161 --- /dev/null +++ b/boost/geometry/srs/projections/proj/fouc_s.hpp @@ -0,0 +1,201 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_FOUC_S_HPP +#define BOOST_GEOMETRY_PROJECTIONS_FOUC_S_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct fouc_s {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace fouc_s + { + + static const int MAX_ITER = 10; + static const double LOOP_TOL = 1e-7; + + template <typename T> + struct par_fouc_s + { + T n, n1; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_fouc_s_spheroid : public base_t_fi<base_fouc_s_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_fouc_s<CalculationType> m_proj_parm; + + inline base_fouc_s_spheroid(const Parameters& par) + : base_t_fi<base_fouc_s_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType t; + + t = cos(lp_lat); + xy_x = lp_lon * t / (this->m_proj_parm.n + this->m_proj_parm.n1 * t); + xy_y = this->m_proj_parm.n * lp_lat + this->m_proj_parm.n1 * sin(lp_lat); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType V; + int i; + + if (this->m_proj_parm.n) { + lp_lat = xy_y; + for (i = MAX_ITER; i ; --i) { + lp_lat -= V = (this->m_proj_parm.n * lp_lat + this->m_proj_parm.n1 * sin(lp_lat) - xy_y ) / + (this->m_proj_parm.n + this->m_proj_parm.n1 * cos(lp_lat)); + if (fabs(V) < LOOP_TOL) + break; + } + if (!i) + lp_lat = xy_y < 0. ? -geometry::math::half_pi<double>() : geometry::math::half_pi<double>(); + } else + lp_lat = aasin(xy_y); + V = cos(lp_lat); + lp_lon = xy_x * (this->m_proj_parm.n + this->m_proj_parm.n1 * V) / V; + } + + static inline std::string get_name() + { + return "fouc_s_spheroid"; + } + + }; + + // Foucaut Sinusoidal + template <typename Parameters, typename T> + inline void setup_fouc_s(Parameters& par, par_fouc_s<T>& proj_parm) + { + proj_parm.n = pj_param(par.params, "dn").f; + if (proj_parm.n < 0. || proj_parm.n > 1.) + BOOST_THROW_EXCEPTION( projection_exception(-99) ); + proj_parm.n1 = 1. - proj_parm.n; + par.es = 0; + } + + }} // namespace detail::fouc_s + #endif // doxygen + + /*! + \brief Foucaut Sinusoidal projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Projection parameters + - n (real) + \par Example + \image html ex_fouc_s.gif + */ + template <typename CalculationType, typename Parameters> + struct fouc_s_spheroid : public detail::fouc_s::base_fouc_s_spheroid<CalculationType, Parameters> + { + inline fouc_s_spheroid(const Parameters& par) : detail::fouc_s::base_fouc_s_spheroid<CalculationType, Parameters>(par) + { + detail::fouc_s::setup_fouc_s(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::fouc_s, fouc_s_spheroid, fouc_s_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class fouc_s_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<fouc_s_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void fouc_s_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("fouc_s", new fouc_s_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_FOUC_S_HPP + diff --git a/boost/geometry/srs/projections/proj/gall.hpp b/boost/geometry/srs/projections/proj/gall.hpp new file mode 100644 index 0000000000..fc1ad144d7 --- /dev/null +++ b/boost/geometry/srs/projections/proj/gall.hpp @@ -0,0 +1,169 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_GALL_HPP +#define BOOST_GEOMETRY_PROJECTIONS_GALL_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct gall {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace gall + { + + static const double YF = 1.70710678118654752440; + static const double XF = 0.70710678118654752440; + static const double RYF = 0.58578643762690495119; + static const double RXF = 1.41421356237309504880; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_gall_spheroid : public base_t_fi<base_gall_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_gall_spheroid(const Parameters& par) + : base_t_fi<base_gall_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = XF * lp_lon; + xy_y = YF * tan(.5 * lp_lat); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lon = RXF * xy_x; + lp_lat = 2. * atan(xy_y * RYF); + } + + static inline std::string get_name() + { + return "gall_spheroid"; + } + + }; + + // Gall (Gall Stereographic) + template <typename Parameters> + inline void setup_gall(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::gall + #endif // doxygen + + /*! + \brief Gall (Gall Stereographic) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Example + \image html ex_gall.gif + */ + template <typename CalculationType, typename Parameters> + struct gall_spheroid : public detail::gall::base_gall_spheroid<CalculationType, Parameters> + { + inline gall_spheroid(const Parameters& par) : detail::gall::base_gall_spheroid<CalculationType, Parameters>(par) + { + detail::gall::setup_gall(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::gall, gall_spheroid, gall_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class gall_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<gall_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void gall_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("gall", new gall_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_GALL_HPP + diff --git a/boost/geometry/srs/projections/proj/geocent.hpp b/boost/geometry/srs/projections/proj/geocent.hpp new file mode 100644 index 0000000000..bfcbb145fa --- /dev/null +++ b/boost/geometry/srs/projections/proj/geocent.hpp @@ -0,0 +1,169 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_GEOCENT_HPP +#define BOOST_GEOMETRY_PROJECTIONS_GEOCENT_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Purpose: Stub projection for geocentric. The transformation isn't +// really done here since this code is 2D. The real transformation +// is handled by pj_transform.c. +// Author: Frank Warmerdam, warmerdam@pobox.com +// Copyright (c) 2002, Frank Warmerdam + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct geocent {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace geocent + { + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_geocent_other : public base_t_fi<base_geocent_other<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_geocent_other(const Parameters& par) + : base_t_fi<base_geocent_other<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(forward) + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = lp_lon; + xy_y = lp_lat; + } + + // INVERSE(inverse) + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = xy_y; + lp_lon = xy_x; + } + + static inline std::string get_name() + { + return "geocent_other"; + } + + }; + + // Geocentric + template <typename Parameters> + inline void setup_geocent(Parameters& par) + { + par.is_geocent = 1; + par.x0 = 0.0; + par.y0 = 0.0; + } + + }} // namespace detail::geocent + #endif // doxygen + + /*! + \brief Geocentric projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Example + \image html ex_geocent.gif + */ + template <typename CalculationType, typename Parameters> + struct geocent_other : public detail::geocent::base_geocent_other<CalculationType, Parameters> + { + inline geocent_other(const Parameters& par) : detail::geocent::base_geocent_other<CalculationType, Parameters>(par) + { + detail::geocent::setup_geocent(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::geocent, geocent_other, geocent_other) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class geocent_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<geocent_other<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void geocent_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("geocent", new geocent_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_GEOCENT_HPP + diff --git a/boost/geometry/srs/projections/proj/geos.hpp b/boost/geometry/srs/projections/proj/geos.hpp new file mode 100644 index 0000000000..798f7f6247 --- /dev/null +++ b/boost/geometry/srs/projections/proj/geos.hpp @@ -0,0 +1,377 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_GEOS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_GEOS_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Copyright (c) 2004 Gerald I. Evenden +// Copyright (c) 2012 Martin Raspaud +// See also (section 4.4.3.2): +// http://www.eumetsat.int/en/area4/msg/news/us_doc/cgms_03_26.pdf + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct geos {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace geos + { + template <typename T> + struct par_geos + { + T h; + T radius_p; + T radius_p2; + T radius_p_inv2; + T radius_g; + T radius_g_1; + T C; + std::string sweep_axis; + int flip_axis; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_geos_ellipsoid : public base_t_fi<base_geos_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_geos<CalculationType> m_proj_parm; + + inline base_geos_ellipsoid(const Parameters& par) + : base_t_fi<base_geos_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType r, Vx, Vy, Vz, tmp; + + /* Calculation of geocentric latitude. */ + lp_lat = atan (this->m_proj_parm.radius_p2 * tan (lp_lat)); + /* Calculation of the three components of the vector from satellite to + ** position on earth surface (lon,lat).*/ + r = (this->m_proj_parm.radius_p) / boost::math::hypot(this->m_proj_parm.radius_p * cos (lp_lat), sin (lp_lat)); + Vx = r * cos (lp_lon) * cos (lp_lat); + Vy = r * sin (lp_lon) * cos (lp_lat); + Vz = r * sin (lp_lat); + /* Check visibility. */ + if (((this->m_proj_parm.radius_g - Vx) * Vx - Vy * Vy - Vz * Vz * this->m_proj_parm.radius_p_inv2) < 0.) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + /* Calculation based on view angles from satellite. */ + tmp = this->m_proj_parm.radius_g - Vx; + if(this->m_proj_parm.flip_axis) + { + xy_x = this->m_proj_parm.radius_g_1 * atan (Vy / boost::math::hypot (Vz, tmp)); + xy_y = this->m_proj_parm.radius_g_1 * atan (Vz / tmp); + } + else + { + xy_x = this->m_proj_parm.radius_g_1 * atan (Vy / tmp); + xy_y = this->m_proj_parm.radius_g_1 * atan (Vz / boost::math::hypot (Vy, tmp)); + } + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType Vx, Vy, Vz, a, b, det, k; + + /* Setting three components of vector from satellite to position.*/ + Vx = -1.0; + if(this->m_proj_parm.flip_axis) + { + Vz = tan (xy_y / this->m_proj_parm.radius_g_1); + Vy = tan (xy_x / this->m_proj_parm.radius_g_1) * boost::math::hypot(1.0, Vz); + } + else + { + Vy = tan (xy_x / this->m_proj_parm.radius_g_1); + Vz = tan (xy_y / this->m_proj_parm.radius_g_1) * boost::math::hypot(1.0, Vy); + } + /* Calculation of terms in cubic equation and determinant.*/ + a = Vz / this->m_proj_parm.radius_p; + a = Vy * Vy + a * a + Vx * Vx; + b = 2 * this->m_proj_parm.radius_g * Vx; + if ((det = (b * b) - 4 * a * this->m_proj_parm.C) < 0.) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + /* Calculation of three components of vector from satellite to position.*/ + k = (-b - sqrt(det)) / (2. * a); + Vx = this->m_proj_parm.radius_g + k * Vx; + Vy *= k; + Vz *= k; + /* Calculation of longitude and latitude.*/ + lp_lon = atan2 (Vy, Vx); + lp_lat = atan (Vz * cos (lp_lon) / Vx); + lp_lat = atan (this->m_proj_parm.radius_p_inv2 * tan (lp_lat)); + } + + static inline std::string get_name() + { + return "geos_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_geos_spheroid : public base_t_fi<base_geos_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_geos<CalculationType> m_proj_parm; + + inline base_geos_spheroid(const Parameters& par) + : base_t_fi<base_geos_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType Vx, Vy, Vz, tmp; + + /* Calculation of the three components of the vector from satellite to + ** position on earth surface (lon,lat).*/ + tmp = cos(lp_lat); + Vx = cos (lp_lon) * tmp; + Vy = sin (lp_lon) * tmp; + Vz = sin (lp_lat); + /* Check visibility.*/ + if (((this->m_proj_parm.radius_g - Vx) * Vx - Vy * Vy - Vz * Vz) < 0.) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + /* Calculation based on view angles from satellite.*/ + tmp = this->m_proj_parm.radius_g - Vx; + if(this->m_proj_parm.flip_axis) + { + xy_x = this->m_proj_parm.radius_g_1 * atan(Vy / boost::math::hypot(Vz, tmp)); + xy_y = this->m_proj_parm.radius_g_1 * atan(Vz / tmp); + } + else + { + xy_x = this->m_proj_parm.radius_g_1 * atan(Vy / tmp); + xy_y = this->m_proj_parm.radius_g_1 * atan(Vz / boost::math::hypot(Vy, tmp)); + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType Vx, Vy, Vz, a, b, det, k; + + /* Setting three components of vector from satellite to position.*/ + Vx = -1.0; + if(this->m_proj_parm.flip_axis) + { + Vz = tan (xy_y / (this->m_proj_parm.radius_g - 1.0)); + Vy = tan (xy_x / (this->m_proj_parm.radius_g - 1.0)) * sqrt (1.0 + Vz * Vz); + } + else + { + Vy = tan (xy_x / (this->m_proj_parm.radius_g - 1.0)); + Vz = tan (xy_y / (this->m_proj_parm.radius_g - 1.0)) * sqrt (1.0 + Vy * Vy); + } + /* Calculation of terms in cubic equation and determinant.*/ + a = Vy * Vy + Vz * Vz + Vx * Vx; + b = 2 * this->m_proj_parm.radius_g * Vx; + if ((det = (b * b) - 4 * a * this->m_proj_parm.C) < 0.) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + /* Calculation of three components of vector from satellite to position.*/ + k = (-b - sqrt(det)) / (2 * a); + Vx = this->m_proj_parm.radius_g + k * Vx; + Vy *= k; + Vz *= k; + /* Calculation of longitude and latitude.*/ + lp_lon = atan2 (Vy, Vx); + lp_lat = atan (Vz * cos (lp_lon) / Vx); + } + + static inline std::string get_name() + { + return "geos_spheroid"; + } + + }; + + // Geostationary Satellite View + template <typename Parameters, typename T> + inline void setup_geos(Parameters& par, par_geos<T>& proj_parm) + { + if ((proj_parm.h = pj_param(par.params, "dh").f) <= 0.) + BOOST_THROW_EXCEPTION( projection_exception(-30) ); + if (par.phi0) + BOOST_THROW_EXCEPTION( projection_exception(-46) ); + proj_parm.sweep_axis = pj_param(par.params, "ssweep").s; + if (proj_parm.sweep_axis.empty()) + proj_parm.flip_axis = 0; + else { + if (proj_parm.sweep_axis[1] != '\0' || + (proj_parm.sweep_axis[0] != 'x' && + proj_parm.sweep_axis[0] != 'y')) + BOOST_THROW_EXCEPTION( projection_exception(-49) ); + if (proj_parm.sweep_axis[0] == 'x') + proj_parm.flip_axis = 1; + else + proj_parm.flip_axis = 0; + } + proj_parm.radius_g_1 = proj_parm.h / par.a; + proj_parm.radius_g = 1. + proj_parm.radius_g_1; + proj_parm.C = proj_parm.radius_g * proj_parm.radius_g - 1.0; + if (par.es) { + proj_parm.radius_p = sqrt (par.one_es); + proj_parm.radius_p2 = par.one_es; + proj_parm.radius_p_inv2 = par.rone_es; + } else { + proj_parm.radius_p = proj_parm.radius_p2 = proj_parm.radius_p_inv2 = 1.0; + } + } + + }} // namespace detail::geos + #endif // doxygen + + /*! + \brief Geostationary Satellite View projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Projection parameters + - h: Height (real) + - sweep: Sweep axis ('x' or 'y') (string) + \par Example + \image html ex_geos.gif + */ + template <typename CalculationType, typename Parameters> + struct geos_ellipsoid : public detail::geos::base_geos_ellipsoid<CalculationType, Parameters> + { + inline geos_ellipsoid(const Parameters& par) : detail::geos::base_geos_ellipsoid<CalculationType, Parameters>(par) + { + detail::geos::setup_geos(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Geostationary Satellite View projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Projection parameters + - h: Height (real) + - sweep: Sweep axis ('x' or 'y') (string) + \par Example + \image html ex_geos.gif + */ + template <typename CalculationType, typename Parameters> + struct geos_spheroid : public detail::geos::base_geos_spheroid<CalculationType, Parameters> + { + inline geos_spheroid(const Parameters& par) : detail::geos::base_geos_spheroid<CalculationType, Parameters>(par) + { + detail::geos::setup_geos(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::geos, geos_spheroid, geos_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class geos_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<geos_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<geos_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void geos_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("geos", new geos_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_GEOS_HPP + diff --git a/boost/geometry/srs/projections/proj/gins8.hpp b/boost/geometry/srs/projections/proj/gins8.hpp new file mode 100644 index 0000000000..f6c0059b07 --- /dev/null +++ b/boost/geometry/srs/projections/proj/gins8.hpp @@ -0,0 +1,170 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_GINS8_HPP +#define BOOST_GEOMETRY_PROJECTIONS_GINS8_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct gins8 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace gins8 + { + + static const double Cl = 0.000952426; + static const double Cp = 0.162388; + //static const double C12 = 0.08333333333333333; + + template <typename T> + inline T C12() { return 0.083333333333333333333333333333333333; } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_gins8_spheroid : public base_t_f<base_gins8_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_gins8_spheroid(const Parameters& par) + : base_t_f<base_gins8_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType C12 = gins8::C12<CalculationType>(); + + CalculationType t = lp_lat * lp_lat; + + xy_y = lp_lat * (1. + t * C12); + xy_x = lp_lon * (1. - Cp * t); + t = lp_lon * lp_lon; + xy_x *= (0.87 - Cl * t * t); + } + + static inline std::string get_name() + { + return "gins8_spheroid"; + } + + }; + + // Ginsburg VIII (TsNIIGAiK) + template <typename Parameters> + inline void setup_gins8(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::gins8 + #endif // doxygen + + /*! + \brief Ginsburg VIII (TsNIIGAiK) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + - no inverse + \par Example + \image html ex_gins8.gif + */ + template <typename CalculationType, typename Parameters> + struct gins8_spheroid : public detail::gins8::base_gins8_spheroid<CalculationType, Parameters> + { + inline gins8_spheroid(const Parameters& par) : detail::gins8::base_gins8_spheroid<CalculationType, Parameters>(par) + { + detail::gins8::setup_gins8(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::gins8, gins8_spheroid, gins8_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class gins8_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<gins8_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void gins8_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("gins8", new gins8_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_GINS8_HPP + diff --git a/boost/geometry/srs/projections/proj/gn_sinu.hpp b/boost/geometry/srs/projections/proj/gn_sinu.hpp new file mode 100644 index 0000000000..c41b278255 --- /dev/null +++ b/boost/geometry/srs/projections/proj/gn_sinu.hpp @@ -0,0 +1,426 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_GN_SINU_HPP +#define BOOST_GEOMETRY_PROJECTIONS_GN_SINU_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> +#include <boost/geometry/srs/projections/impl/pj_mlfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct gn_sinu {}; + struct sinu {}; + struct eck6 {}; + struct mbtfps {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace gn_sinu + { + + static const double EPS10 = 1e-10; + static const int MAX_ITER = 8; + static const double LOOP_TOL = 1e-7; + + template <typename T> + struct par_gn_sinu + { + T en[EN_SIZE]; + T m, n, C_x, C_y; + }; + + /* Ellipsoidal Sinusoidal only */ + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_gn_sinu_ellipsoid : public base_t_fi<base_gn_sinu_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_gn_sinu<CalculationType> m_proj_parm; + + inline base_gn_sinu_ellipsoid(const Parameters& par) + : base_t_fi<base_gn_sinu_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType s, c; + + xy_y = pj_mlfn(lp_lat, s = sin(lp_lat), c = cos(lp_lat), this->m_proj_parm.en); + xy_x = lp_lon * c / sqrt(1. - this->m_par.es * s * s); + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType s; + + if ((s = fabs(lp_lat = pj_inv_mlfn(xy_y, this->m_par.es, this->m_proj_parm.en))) < HALFPI) { + s = sin(lp_lat); + lp_lon = xy_x * sqrt(1. - this->m_par.es * s * s) / cos(lp_lat); + } else if ((s - EPS10) < HALFPI) + lp_lon = 0.; + else + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + } + /* General spherical sinusoidals */ + + static inline std::string get_name() + { + return "gn_sinu_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_gn_sinu_spheroid : public base_t_fi<base_gn_sinu_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_gn_sinu<CalculationType> m_proj_parm; + + inline base_gn_sinu_spheroid(const Parameters& par) + : base_t_fi<base_gn_sinu_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) sphere + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + if (!this->m_proj_parm.m) + lp_lat = this->m_proj_parm.n != 1. ? aasin(this->m_proj_parm.n * sin(lp_lat)): lp_lat; + else { + CalculationType k, V; + int i; + + k = this->m_proj_parm.n * sin(lp_lat); + for (i = MAX_ITER; i ; --i) { + lp_lat -= V = (this->m_proj_parm.m * lp_lat + sin(lp_lat) - k) / + (this->m_proj_parm.m + cos(lp_lat)); + if (fabs(V) < LOOP_TOL) + break; + } + if (!i) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + } + xy_x = this->m_proj_parm.C_x * lp_lon * (this->m_proj_parm.m + cos(lp_lat)); + xy_y = this->m_proj_parm.C_y * lp_lat; + } + + // INVERSE(s_inverse) sphere + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + xy_y /= this->m_proj_parm.C_y; + lp_lat = this->m_proj_parm.m ? aasin((this->m_proj_parm.m * xy_y + sin(xy_y)) / this->m_proj_parm.n) : + ( this->m_proj_parm.n != 1. ? aasin(sin(xy_y) / this->m_proj_parm.n) : xy_y ); + lp_lon = xy_x / (this->m_proj_parm.C_x * (this->m_proj_parm.m + cos(xy_y))); + } + + static inline std::string get_name() + { + return "gn_sinu_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_gn_sinu<T>& proj_parm) + { + par.es = 0; + proj_parm.C_x = (proj_parm.C_y = sqrt((proj_parm.m + 1.) / proj_parm.n))/(proj_parm.m + 1.); + } + + + // General Sinusoidal Series + template <typename Parameters, typename T> + inline void setup_gn_sinu(Parameters& par, par_gn_sinu<T>& proj_parm) + { + if (pj_param(par.params, "tn").i && pj_param(par.params, "tm").i) { + proj_parm.n = pj_param(par.params, "dn").f; + proj_parm.m = pj_param(par.params, "dm").f; + } else + BOOST_THROW_EXCEPTION( projection_exception(-99) ); + setup(par, proj_parm); + } + + // Sinusoidal (Sanson-Flamsteed) + template <typename Parameters, typename T> + inline void setup_sinu(Parameters& par, par_gn_sinu<T>& proj_parm) + { + if (!pj_enfn(par.es, proj_parm.en)) + BOOST_THROW_EXCEPTION( projection_exception(0) ); + if (par.es) { + } else { + proj_parm.n = 1.; + proj_parm.m = 0.; + setup(par, proj_parm); + } + } + + // Eckert VI + template <typename Parameters, typename T> + inline void setup_eck6(Parameters& par, par_gn_sinu<T>& proj_parm) + { + proj_parm.m = 1.; + proj_parm.n = 2.570796326794896619231321691; + setup(par, proj_parm); + } + + // McBryde-Thomas Flat-Polar Sinusoidal + template <typename Parameters, typename T> + inline void setup_mbtfps(Parameters& par, par_gn_sinu<T>& proj_parm) + { + proj_parm.m = 0.5; + proj_parm.n = 1.785398163397448309615660845; + setup(par, proj_parm); + } + + }} // namespace detail::gn_sinu + #endif // doxygen + + /*! + \brief General Sinusoidal Series projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Projection parameters + - m (real) + - n (real) + \par Example + \image html ex_gn_sinu.gif + */ + template <typename CalculationType, typename Parameters> + struct gn_sinu_spheroid : public detail::gn_sinu::base_gn_sinu_spheroid<CalculationType, Parameters> + { + inline gn_sinu_spheroid(const Parameters& par) : detail::gn_sinu::base_gn_sinu_spheroid<CalculationType, Parameters>(par) + { + detail::gn_sinu::setup_gn_sinu(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Sinusoidal (Sanson-Flamsteed) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + - Ellipsoid + \par Example + \image html ex_sinu.gif + */ + template <typename CalculationType, typename Parameters> + struct sinu_ellipsoid : public detail::gn_sinu::base_gn_sinu_ellipsoid<CalculationType, Parameters> + { + inline sinu_ellipsoid(const Parameters& par) : detail::gn_sinu::base_gn_sinu_ellipsoid<CalculationType, Parameters>(par) + { + detail::gn_sinu::setup_sinu(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Sinusoidal (Sanson-Flamsteed) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + - Ellipsoid + \par Example + \image html ex_sinu.gif + */ + template <typename CalculationType, typename Parameters> + struct sinu_spheroid : public detail::gn_sinu::base_gn_sinu_spheroid<CalculationType, Parameters> + { + inline sinu_spheroid(const Parameters& par) : detail::gn_sinu::base_gn_sinu_spheroid<CalculationType, Parameters>(par) + { + detail::gn_sinu::setup_sinu(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Eckert VI projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_eck6.gif + */ + template <typename CalculationType, typename Parameters> + struct eck6_spheroid : public detail::gn_sinu::base_gn_sinu_spheroid<CalculationType, Parameters> + { + inline eck6_spheroid(const Parameters& par) : detail::gn_sinu::base_gn_sinu_spheroid<CalculationType, Parameters>(par) + { + detail::gn_sinu::setup_eck6(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief McBryde-Thomas Flat-Polar Sinusoidal projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_mbtfps.gif + */ + template <typename CalculationType, typename Parameters> + struct mbtfps_spheroid : public detail::gn_sinu::base_gn_sinu_spheroid<CalculationType, Parameters> + { + inline mbtfps_spheroid(const Parameters& par) : detail::gn_sinu::base_gn_sinu_spheroid<CalculationType, Parameters>(par) + { + detail::gn_sinu::setup_mbtfps(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::gn_sinu, gn_sinu_spheroid, gn_sinu_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::sinu, sinu_spheroid, sinu_ellipsoid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::eck6, eck6_spheroid, eck6_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::mbtfps, mbtfps_spheroid, mbtfps_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class gn_sinu_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<gn_sinu_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class sinu_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<sinu_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<sinu_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class eck6_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<eck6_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class mbtfps_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<mbtfps_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void gn_sinu_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("gn_sinu", new gn_sinu_entry<CalculationType, Parameters>); + factory.add_to_factory("sinu", new sinu_entry<CalculationType, Parameters>); + factory.add_to_factory("eck6", new eck6_entry<CalculationType, Parameters>); + factory.add_to_factory("mbtfps", new mbtfps_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_GN_SINU_HPP + diff --git a/boost/geometry/srs/projections/proj/gnom.hpp b/boost/geometry/srs/projections/proj/gnom.hpp new file mode 100644 index 0000000000..d691c136b6 --- /dev/null +++ b/boost/geometry/srs/projections/proj/gnom.hpp @@ -0,0 +1,266 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_GNOM_HPP +#define BOOST_GEOMETRY_PROJECTIONS_GNOM_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/config.hpp> +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct gnom {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace gnom + { + + static const double EPS10 = 1.e-10; + static const int N_POLE = 0; + static const int S_POLE = 1; + static const int EQUIT = 2; + static const int OBLIQ = 3; + + template <typename T> + struct par_gnom + { + T sinph0; + T cosph0; + int mode; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_gnom_spheroid : public base_t_fi<base_gnom_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_gnom<CalculationType> m_proj_parm; + + inline base_gnom_spheroid(const Parameters& par) + : base_t_fi<base_gnom_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType coslam, cosphi, sinphi; + + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + coslam = cos(lp_lon); + switch (this->m_proj_parm.mode) { + case EQUIT: + xy_y = cosphi * coslam; + break; + case OBLIQ: + xy_y = this->m_proj_parm.sinph0 * sinphi + this->m_proj_parm.cosph0 * cosphi * coslam; + break; + case S_POLE: + xy_y = - sinphi; + break; + case N_POLE: + xy_y = sinphi; + break; + } + if (xy_y <= EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_x = (xy_y = 1. / xy_y) * cosphi * sin(lp_lon); + switch (this->m_proj_parm.mode) { + case EQUIT: + xy_y *= sinphi; + break; + case OBLIQ: + xy_y *= this->m_proj_parm.cosph0 * sinphi - this->m_proj_parm.sinph0 * cosphi * coslam; + break; + case N_POLE: + coslam = - coslam; + BOOST_FALLTHROUGH; + case S_POLE: + xy_y *= cosphi * coslam; + break; + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType rh, cosz, sinz; + + rh = boost::math::hypot(xy_x, xy_y); + sinz = sin(lp_lat = atan(rh)); + cosz = sqrt(1. - sinz * sinz); + if (fabs(rh) <= EPS10) { + lp_lat = this->m_par.phi0; + lp_lon = 0.; + } else { + switch (this->m_proj_parm.mode) { + case OBLIQ: + lp_lat = cosz * this->m_proj_parm.sinph0 + xy_y * sinz * this->m_proj_parm.cosph0 / rh; + if (fabs(lp_lat) >= 1.) + lp_lat = lp_lat > 0. ? HALFPI : -HALFPI; + else + lp_lat = asin(lp_lat); + xy_y = (cosz - this->m_proj_parm.sinph0 * sin(lp_lat)) * rh; + xy_x *= sinz * this->m_proj_parm.cosph0; + break; + case EQUIT: + lp_lat = xy_y * sinz / rh; + if (fabs(lp_lat) >= 1.) + lp_lat = lp_lat > 0. ? HALFPI : -HALFPI; + else + lp_lat = asin(lp_lat); + xy_y = cosz * rh; + xy_x *= sinz; + break; + case S_POLE: + lp_lat -= HALFPI; + break; + case N_POLE: + lp_lat = HALFPI - lp_lat; + xy_y = -xy_y; + break; + } + lp_lon = atan2(xy_x, xy_y); + } + } + + static inline std::string get_name() + { + return "gnom_spheroid"; + } + + }; + + // Gnomonic + template <typename Parameters, typename T> + inline void setup_gnom(Parameters& par, par_gnom<T>& proj_parm) + { + static const T HALFPI = detail::HALFPI<T>(); + + if (fabs(fabs(par.phi0) - HALFPI) < EPS10) + proj_parm.mode = par.phi0 < 0. ? S_POLE : N_POLE; + else if (fabs(par.phi0) < EPS10) + proj_parm.mode = EQUIT; + else { + proj_parm.mode = OBLIQ; + proj_parm.sinph0 = sin(par.phi0); + proj_parm.cosph0 = cos(par.phi0); + } + par.es = 0.; + } + + }} // namespace detail::gnom + #endif // doxygen + + /*! + \brief Gnomonic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + \par Example + \image html ex_gnom.gif + */ + template <typename CalculationType, typename Parameters> + struct gnom_spheroid : public detail::gnom::base_gnom_spheroid<CalculationType, Parameters> + { + inline gnom_spheroid(const Parameters& par) : detail::gnom::base_gnom_spheroid<CalculationType, Parameters>(par) + { + detail::gnom::setup_gnom(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::gnom, gnom_spheroid, gnom_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class gnom_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<gnom_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void gnom_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("gnom", new gnom_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_GNOM_HPP + diff --git a/boost/geometry/srs/projections/proj/goode.hpp b/boost/geometry/srs/projections/proj/goode.hpp new file mode 100644 index 0000000000..ef4e5ebeee --- /dev/null +++ b/boost/geometry/srs/projections/proj/goode.hpp @@ -0,0 +1,187 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_GOODE_HPP +#define BOOST_GEOMETRY_PROJECTIONS_GOODE_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/proj/gn_sinu.hpp> +#include <boost/geometry/srs/projections/proj/moll.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct goode {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace goode + { + + static const double Y_COR = 0.05280; + static const double PHI_LIM = .71093078197902358062; + + template <typename CalculationType, typename Parameters> + struct par_goode + { + sinu_ellipsoid<CalculationType, Parameters> sinu; + moll_spheroid<CalculationType, Parameters> moll; + + par_goode(const Parameters& par) : sinu(par), moll(par) {} + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_goode_spheroid : public base_t_fi<base_goode_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_goode<CalculationType, Parameters> m_proj_parm; + + inline base_goode_spheroid(const Parameters& par) + : base_t_fi<base_goode_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par), m_proj_parm(par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + if (fabs(lp_lat) <= PHI_LIM) + this->m_proj_parm.sinu.fwd(lp_lon, lp_lat, xy_x, xy_y); + else { + this->m_proj_parm.moll.fwd(lp_lon, lp_lat, xy_x, xy_y); + xy_y -= lp_lat >= 0.0 ? Y_COR : -Y_COR; + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + if (fabs(xy_y) <= PHI_LIM) + this->m_proj_parm.sinu.inv(xy_x, xy_y, lp_lon, lp_lat); + else { + xy_y += xy_y >= 0.0 ? Y_COR : -Y_COR; + this->m_proj_parm.moll.inv(xy_x, xy_y, lp_lon, lp_lat); + } + } + + static inline std::string get_name() + { + return "goode_spheroid"; + } + + }; + + // Goode Homolosine + template <typename CalculationType, typename Parameters> + inline void setup_goode(Parameters& par, par_goode<CalculationType, Parameters>& /*proj_parm*/) + { + par.es = 0.; + } + + }} // namespace detail::goode + #endif // doxygen + + /*! + \brief Goode Homolosine projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_goode.gif + */ + template <typename CalculationType, typename Parameters> + struct goode_spheroid : public detail::goode::base_goode_spheroid<CalculationType, Parameters> + { + inline goode_spheroid(const Parameters& par) : detail::goode::base_goode_spheroid<CalculationType, Parameters>(par) + { + detail::goode::setup_goode(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::goode, goode_spheroid, goode_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class goode_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<goode_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void goode_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("goode", new goode_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_GOODE_HPP + diff --git a/boost/geometry/srs/projections/proj/gstmerc.hpp b/boost/geometry/srs/projections/proj/gstmerc.hpp new file mode 100644 index 0000000000..5e3581328e --- /dev/null +++ b/boost/geometry/srs/projections/proj/gstmerc.hpp @@ -0,0 +1,202 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_GSTMERC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_GSTMERC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_phi2.hpp> +#include <boost/geometry/srs/projections/impl/pj_tsfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct gstmerc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace gstmerc + { + template <typename T> + struct par_gstmerc + { + T lamc; + T phic; + T c; + T n1; + T n2; + T XS; + T YS; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_gstmerc_spheroid : public base_t_fi<base_gstmerc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_gstmerc<CalculationType> m_proj_parm; + + inline base_gstmerc_spheroid(const Parameters& par) + : base_t_fi<base_gstmerc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType L, Ls, sinLs1, Ls1; + L= this->m_proj_parm.n1*lp_lon; + Ls= this->m_proj_parm.c+this->m_proj_parm.n1*log(pj_tsfn(-1.0*lp_lat,-1.0*sin(lp_lat),this->m_par.e)); + sinLs1= sin(L)/cosh(Ls); + Ls1= log(pj_tsfn(-1.0*asin(sinLs1),0.0,0.0)); + xy_x= (this->m_proj_parm.XS + this->m_proj_parm.n2*Ls1)*this->m_par.ra; + xy_y= (this->m_proj_parm.YS + this->m_proj_parm.n2*atan(sinh(Ls)/cos(L)))*this->m_par.ra; + /*fprintf(stderr,"fwd:\nL =%16.13f\nLs =%16.13f\nLs1 =%16.13f\nLP(%16.13f,%16.13f)=XY(%16.4f,%16.4f)\n",L,Ls,Ls1,lp_lon+this->m_par.lam0,lp_lat,(xy_x*this->m_par.a + this->m_par.x0)*this->m_par.to_meter,(xy_y*this->m_par.a + this->m_par.y0)*this->m_par.to_meter);*/ + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType L, LC, sinC; + L= atan(sinh((xy_x*this->m_par.a - this->m_proj_parm.XS)/this->m_proj_parm.n2)/cos((xy_y*this->m_par.a - this->m_proj_parm.YS)/this->m_proj_parm.n2)); + sinC= sin((xy_y*this->m_par.a - this->m_proj_parm.YS)/this->m_proj_parm.n2)/cosh((xy_x*this->m_par.a - this->m_proj_parm.XS)/this->m_proj_parm.n2); + LC= log(pj_tsfn(-1.0*asin(sinC),0.0,0.0)); + lp_lon= L/this->m_proj_parm.n1; + lp_lat= -1.0*pj_phi2(exp((LC-this->m_proj_parm.c)/this->m_proj_parm.n1),this->m_par.e); + /*fprintf(stderr,"inv:\nL =%16.13f\nsinC =%16.13f\nLC =%16.13f\nXY(%16.4f,%16.4f)=LP(%16.13f,%16.13f)\n",L,sinC,LC,((xy_x/this->m_par.ra)+this->m_par.x0)/this->m_par.to_meter,((xy_y/this->m_par.ra)+this->m_par.y0)/this->m_par.to_meter,lp_lon+this->m_par.lam0,lp_lat);*/ + } + + static inline std::string get_name() + { + return "gstmerc_spheroid"; + } + + }; + + // Gauss-Schreiber Transverse Mercator (aka Gauss-Laborde Reunion) + template <typename Parameters, typename T> + inline void setup_gstmerc(Parameters& par, par_gstmerc<T>& proj_parm) + { + proj_parm.lamc= par.lam0; + proj_parm.n1= sqrt(1.0+par.es*pow(cos(par.phi0),4.0)/(1.0-par.es)); + proj_parm.phic= asin(sin(par.phi0)/proj_parm.n1); + proj_parm.c= log(pj_tsfn(-1.0*proj_parm.phic,0.0,0.0)) + -proj_parm.n1*log(pj_tsfn(-1.0*par.phi0,-1.0*sin(par.phi0),par.e)); + proj_parm.n2= par.k0*par.a*sqrt(1.0-par.es)/(1.0-par.es*sin(par.phi0)*sin(par.phi0)); + proj_parm.XS= 0;/* -par.x0 */ + proj_parm.YS= -1.0*proj_parm.n2*proj_parm.phic;/* -par.y0 */ + /*fprintf(stderr,"a (m) =%16.4f\ne =%16.13f\nl0(rad)=%16.13f\np0(rad)=%16.13f\nk0 =%16.4f\nX0 (m)=%16.4f\nY0 (m)=%16.4f\n\nlC(rad)=%16.13f\npC(rad)=%16.13f\nc =%16.13f\nn1 =%16.13f\nn2 (m) =%16.4f\nXS (m) =%16.4f\nYS (m) =%16.4f\n", par.a, par.e, par.lam0, par.phi0, par.k0, par.x0, par.y0, proj_parm.lamc, proj_parm.phic, proj_parm.c, proj_parm.n1, proj_parm.n2, proj_parm.XS +par.x0, proj_parm.YS + par.y0);*/ + } + + }} // namespace detail::gstmerc + #endif // doxygen + + /*! + \brief Gauss-Schreiber Transverse Mercator (aka Gauss-Laborde Reunion) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_0: Latitude of origin + - lon_0: Central meridian + - k_0: Scale factor + \par Example + \image html ex_gstmerc.gif + */ + template <typename CalculationType, typename Parameters> + struct gstmerc_spheroid : public detail::gstmerc::base_gstmerc_spheroid<CalculationType, Parameters> + { + inline gstmerc_spheroid(const Parameters& par) : detail::gstmerc::base_gstmerc_spheroid<CalculationType, Parameters>(par) + { + detail::gstmerc::setup_gstmerc(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::gstmerc, gstmerc_spheroid, gstmerc_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class gstmerc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<gstmerc_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void gstmerc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("gstmerc", new gstmerc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_GSTMERC_HPP + diff --git a/boost/geometry/srs/projections/proj/hammer.hpp b/boost/geometry/srs/projections/proj/hammer.hpp new file mode 100644 index 0000000000..58707a1499 --- /dev/null +++ b/boost/geometry/srs/projections/proj/hammer.hpp @@ -0,0 +1,201 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_HAMMER_HPP +#define BOOST_GEOMETRY_PROJECTIONS_HAMMER_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct hammer {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace hammer + { + static const double EPS = 1.0e-10; + + template <typename T> + struct par_hammer + { + T w; + T m, rm; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_hammer_spheroid : public base_t_fi<base_hammer_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_hammer<CalculationType> m_proj_parm; + + inline base_hammer_spheroid(const Parameters& par) + : base_t_fi<base_hammer_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType cosphi, d; + + d = sqrt(2./(1. + (cosphi = cos(lp_lat)) * cos(lp_lon *= this->m_proj_parm.w))); + xy_x = this->m_proj_parm.m * d * cosphi * sin(lp_lon); + xy_y = this->m_proj_parm.rm * d * sin(lp_lat); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType z; + + z = sqrt(1. - 0.25*this->m_proj_parm.w*this->m_proj_parm.w*xy_x*xy_x - 0.25*xy_y*xy_y); + if (geometry::math::abs(2.*z*z-1.) < EPS) { + lp_lon = HUGE_VAL; + lp_lat = HUGE_VAL; + BOOST_THROW_EXCEPTION( projection_exception(-14) ); + } else { + lp_lon = aatan2(this->m_proj_parm.w * xy_x * z,2. * z * z - 1)/this->m_proj_parm.w; + lp_lat = aasin(z * xy_y); + } + } + + static inline std::string get_name() + { + return "hammer_spheroid"; + } + + }; + + // Hammer & Eckert-Greifendorff + template <typename Parameters, typename T> + inline void setup_hammer(Parameters& par, par_hammer<T>& proj_parm) + { + if (pj_param(par.params, "tW").i) { + if ((proj_parm.w = fabs(pj_param(par.params, "dW").f)) <= 0.) + BOOST_THROW_EXCEPTION( projection_exception(-27) ); + } else + proj_parm.w = .5; + if (pj_param(par.params, "tM").i) { + if ((proj_parm.m = fabs(pj_param(par.params, "dM").f)) <= 0.) + BOOST_THROW_EXCEPTION( projection_exception(-27) ); + } else + proj_parm.m = 1.; + proj_parm.rm = 1. / proj_parm.m; + proj_parm.m /= proj_parm.w; + par.es = 0.; + } + + }} // namespace detail::hammer + #endif // doxygen + + /*! + \brief Hammer & Eckert-Greifendorff projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Projection parameters + - W (real) + - M (real) + \par Example + \image html ex_hammer.gif + */ + template <typename CalculationType, typename Parameters> + struct hammer_spheroid : public detail::hammer::base_hammer_spheroid<CalculationType, Parameters> + { + inline hammer_spheroid(const Parameters& par) : detail::hammer::base_hammer_spheroid<CalculationType, Parameters>(par) + { + detail::hammer::setup_hammer(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::hammer, hammer_spheroid, hammer_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class hammer_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<hammer_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void hammer_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("hammer", new hammer_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_HAMMER_HPP + diff --git a/boost/geometry/srs/projections/proj/hatano.hpp b/boost/geometry/srs/projections/proj/hatano.hpp new file mode 100644 index 0000000000..e37a78196b --- /dev/null +++ b/boost/geometry/srs/projections/proj/hatano.hpp @@ -0,0 +1,211 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_HATANO_HPP +#define BOOST_GEOMETRY_PROJECTIONS_HATANO_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct hatano {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace hatano + { + + static const int NITER = 20; + static const double EPS = 1e-7; + static const double ONETOL = 1.000001; + static const double CN_ = 2.67595; + static const double CS_ = 2.43763; + static const double RCN = 0.37369906014686373063; + static const double RCS = 0.41023453108141924738; + static const double FYCN = 1.75859; + static const double FYCS = 1.93052; + static const double RYCN = 0.56863737426006061674; + static const double RYCS = 0.51799515156538134803; + static const double FXC = 0.85; + static const double RXC = 1.17647058823529411764; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_hatano_spheroid : public base_t_fi<base_hatano_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_hatano_spheroid(const Parameters& par) + : base_t_fi<base_hatano_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType th1, c; + int i; + + c = sin(lp_lat) * (lp_lat < 0. ? CS_ : CN_); + for (i = NITER; i; --i) { + lp_lat -= th1 = (lp_lat + sin(lp_lat) - c) / (1. + cos(lp_lat)); + if (fabs(th1) < EPS) break; + } + xy_x = FXC * lp_lon * cos(lp_lat *= .5); + xy_y = sin(lp_lat) * (lp_lat < 0. ? FYCS : FYCN); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType th; + + th = xy_y * ( xy_y < 0. ? RYCS : RYCN); + if (fabs(th) > 1.) { + if (fabs(th) > ONETOL) { + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + } else { + th = th > 0. ? geometry::math::half_pi<double>() : - geometry::math::half_pi<double>(); + } + } else { + th = asin(th); + } + + lp_lon = RXC * xy_x / cos(th); + th += th; + lp_lat = (th + sin(th)) * (xy_y < 0. ? RCS : RCN); + if (fabs(lp_lat) > 1.) { + if (fabs(lp_lat) > ONETOL) { + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + } else { + lp_lat = lp_lat > 0. ? geometry::math::half_pi<double>() : - geometry::math::half_pi<double>(); + } + } else { + lp_lat = asin(lp_lat); + } + } + + static inline std::string get_name() + { + return "hatano_spheroid"; + } + + }; + + // Hatano Asymmetrical Equal Area + template <typename Parameters> + inline void setup_hatano(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::hatano + #endif // doxygen + + /*! + \brief Hatano Asymmetrical Equal Area projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_hatano.gif + */ + template <typename CalculationType, typename Parameters> + struct hatano_spheroid : public detail::hatano::base_hatano_spheroid<CalculationType, Parameters> + { + inline hatano_spheroid(const Parameters& par) : detail::hatano::base_hatano_spheroid<CalculationType, Parameters>(par) + { + detail::hatano::setup_hatano(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::hatano, hatano_spheroid, hatano_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class hatano_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<hatano_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void hatano_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("hatano", new hatano_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_HATANO_HPP + diff --git a/boost/geometry/srs/projections/proj/healpix.hpp b/boost/geometry/srs/projections/proj/healpix.hpp new file mode 100644 index 0000000000..d2f5a8c081 --- /dev/null +++ b/boost/geometry/srs/projections/proj/healpix.hpp @@ -0,0 +1,897 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_HEALPIX_HPP +#define BOOST_GEOMETRY_PROJECTIONS_HEALPIX_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Purpose: Implementation of the HEALPix and rHEALPix projections. +// For background see <http://code.scenzgrid.org/index.php/p/scenzgrid-py/source/tree/master/docs/rhealpix_dggs.pdf>. +// Authors: Alex Raichev (raichev@cs.auckland.ac.nz) +// Michael Speth (spethm@landcareresearch.co.nz) +// Notes: Raichev implemented these projections in Python and +// Speth translated them into C here. +// Copyright (c) 2001, Thomas Flemming, tf@ttqv.com + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_auth.hpp> +#include <boost/geometry/srs/projections/impl/pj_qsfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct healpix {}; + struct rhealpix {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace healpix + { + + static const double EPS = 1e-15; + + template <typename T> + struct par_healpix + { + int north_square; + int south_square; + T qp; + T apa[APA_SIZE]; + }; + + /* Matrix for counterclockwise rotation by pi/2: */ + /* Matrix for counterclockwise rotation by pi: */ + /* Matrix for counterclockwise rotation by 3*pi/2: */ + /* Identity matrix */ + /* IDENT, R1, R2, R3, R1 inverse, R2 inverse, R3 inverse:*/ + /* Fuzz to handle rounding errors: */ + template <typename T> + struct CapMap + { + int cn; /* An integer 0--3 indicating the position of the polar cap. */ + T x, y; /* Coordinates of the pole point (point of most extreme latitude on the polar caps). */ + enum Region {north, south, equatorial} region; + }; + template <typename T> + struct Point + { + T x, y; + }; + static double rot[7][2][2] = {{{1, 0},{0, 1}}, {{ 0,-1},{ 1, 0}}, {{-1, 0},{ 0,-1}}, {{ 0, 1},{-1, 0}}, {{ 0, 1},{-1, 0}}, {{-1, 0},{ 0,-1}}, {{ 0,-1},{ 1, 0}}}; + + /** + * Returns the sign of the double. + * @param v the parameter whose sign is returned. + * @return 1 for positive number, -1 for negative, and 0 for zero. + **/ + template <typename T> + inline T pj_sign (T const& v) + { + return v > 0 ? 1 : (v < 0 ? -1 : 0); + } + /** + * Return the index of the matrix in {{{1, 0},{0, 1}}, {{ 0,-1},{ 1, 0}}, {{-1, 0},{ 0,-1}}, {{ 0, 1},{-1, 0}}, {{ 0, 1},{-1, 0}}, {{-1, 0},{ 0,-1}}, {{ 0,-1},{ 1, 0}}}. + * @param index ranges from -3 to 3. + */ + inline int get_rotate_index(int index) + { + switch(index) { + case 0: + return 0; + case 1: + return 1; + case 2: + return 2; + case 3: + return 3; + case -1: + return 4; + case -2: + return 5; + case -3: + return 6; + } + return 0; + } + /** + * Return 1 if point (testx, testy) lies in the interior of the polygon + * determined by the vertices in vert, and return 0 otherwise. + * See http://paulbourke.net/geometry/polygonmesh/ for more details. + * @param nvert the number of vertices in the polygon. + * @param vert the (x, y)-coordinates of the polygon's vertices + **/ + template <typename T> + inline int pnpoly(int nvert, T vert[][2], T const& testx, T const& testy) + { + int i, c = 0; + int counter = 0; + T xinters; + Point<T> p1, p2; + /* Check for boundrary cases */ + for (i = 0; i < nvert; i++) { + if (testx == vert[i][0] && testy == vert[i][1]) { + return 1; + } + } + p1.x = vert[0][0]; + p1.y = vert[0][1]; + for (i = 1; i < nvert; i++) { + p2.x = vert[i % nvert][0]; + p2.y = vert[i % nvert][1]; + if (testy > (std::min)(p1.y, p2.y)) { + if (testy <= (std::max)(p1.y, p2.y)) { + if (testx <= (std::max)(p1.x, p2.x)) { + if (p1.y != p2.y) { + xinters = (testy-p1.y)*(p2.x-p1.x)/(p2.y-p1.y)+p1.x; + if (p1.x == p2.x || testx <= xinters) { + counter++; + } + } + } + } + } + p1 = p2; + } + if (counter % 2 == 0) { + return 0; + } else { + return 1; + } + return c; + } + /** + * Return 1 if (x, y) lies in (the interior or boundary of) the image of the + * HEALPix projection (in case proj=0) or in the image the rHEALPix projection + * (in case proj=1), and return 0 otherwise. + * @param north_square the position of the north polar square (rHEALPix only) + * @param south_square the position of the south polar square (rHEALPix only) + **/ + template <typename T> + inline int in_image(T const& x, T const& y, int proj, int north_square, int south_square) + { + static const T ONEPI = detail::ONEPI<T>(); + + if (proj == 0) { + T healpixVertsJit[][2] = { + {-1.0*ONEPI- EPS, ONEPI/4.0}, + {-3.0*ONEPI/4.0, ONEPI/2.0 + EPS}, + {-1.0*ONEPI/2.0, ONEPI/4.0 + EPS}, + {-1.0*ONEPI/4.0, ONEPI/2.0 + EPS}, + {0.0, ONEPI/4.0 + EPS}, + {ONEPI/4.0, ONEPI/2.0 + EPS}, + {ONEPI/2.0, ONEPI/4.0 + EPS}, + {3.0*ONEPI/4.0, ONEPI/2.0 + EPS}, + {ONEPI+ EPS, ONEPI/4.0}, + {ONEPI+ EPS, -1.0*ONEPI/4.0}, + {3.0*ONEPI/4.0, -1.0*ONEPI/2.0 - EPS}, + {ONEPI/2.0, -1.0*ONEPI/4.0 - EPS}, + {ONEPI/4.0, -1.0*ONEPI/2.0 - EPS}, + {0.0, -1.0*ONEPI/4.0 - EPS}, + {-1.0*ONEPI/4.0, -1.0*ONEPI/2.0 - EPS}, + {-1.0*ONEPI/2.0, -1.0*ONEPI/4.0 - EPS}, + {-3.0*ONEPI/4.0, -1.0*ONEPI/2.0 - EPS}, + {-1.0*ONEPI - EPS, -1.0*ONEPI/4.0} + }; + return pnpoly((int)sizeof(healpixVertsJit)/ + sizeof(healpixVertsJit[0]), healpixVertsJit, x, y); + } else { + T rhealpixVertsJit[][2] = { + {-1.0*ONEPI - EPS, ONEPI/4.0 + EPS}, + {-1.0*ONEPI + north_square*ONEPI/2.0- EPS, ONEPI/4.0 + EPS}, + {-1.0*ONEPI + north_square*ONEPI/2.0- EPS, 3*ONEPI/4.0 + EPS}, + {-1.0*ONEPI + (north_square + 1.0)*ONEPI/2.0 + EPS, 3*ONEPI/4.0 + EPS}, + {-1.0*ONEPI + (north_square + 1.0)*ONEPI/2.0 + EPS, ONEPI/4.0 + EPS}, + {ONEPI + EPS, ONEPI/4.0 + EPS}, + {ONEPI + EPS, -1.0*ONEPI/4.0 - EPS}, + {-1.0*ONEPI + (south_square + 1.0)*ONEPI/2.0 + EPS, -1.0*ONEPI/4.0 - EPS}, + {-1.0*ONEPI + (south_square + 1.0)*ONEPI/2.0 + EPS, -3.0*ONEPI/4.0 - EPS}, + {-1.0*ONEPI + south_square*ONEPI/2.0 - EPS, -3.0*ONEPI/4.0 - EPS}, + {-1.0*ONEPI + south_square*ONEPI/2.0 - EPS, -1.0*ONEPI/4.0 - EPS}, + {-1.0*ONEPI - EPS, -1.0*ONEPI/4.0 - EPS}}; + return pnpoly((int)sizeof(rhealpixVertsJit)/ + sizeof(rhealpixVertsJit[0]), rhealpixVertsJit, x, y); + } + } + /** + * Return the authalic latitude of latitude alpha (if inverse=0) or + * return the approximate latitude of authalic latitude alpha (if inverse=1). + * P contains the relavent ellipsoid parameters. + **/ + template <typename Parameters, typename T> + inline T auth_lat(const Parameters& par, const par_healpix<T>& proj_parm, T const& alpha, int inverse) + { + if (inverse == 0) { + /* Authalic latitude. */ + T q = pj_qsfn(sin(alpha), par.e, 1.0 - par.es); + T qp = proj_parm.qp; + T ratio = q/qp; + if (fabsl(ratio) > 1) { + /* Rounding error. */ + ratio = pj_sign(ratio); + } + return asin(ratio); + } else { + /* Approximation to inverse authalic latitude. */ + return pj_authlat(alpha, proj_parm.apa); + } + } + /** + * Return the HEALPix projection of the longitude-latitude point lp on + * the unit sphere. + **/ + template <typename T> + inline void healpix_sphere(T const& lp_lam, T const& lp_phi, T& xy_x, T& xy_y) + { + static const T ONEPI = detail::ONEPI<T>(); + + T lam = lp_lam; + T phi = lp_phi; + T phi0 = asin(T(2.0)/T(3.0)); + + /* equatorial region */ + if ( fabsl(phi) <= phi0) { + xy_x = lam; + xy_y = 3.0*ONEPI/8.0*sin(phi); + } else { + T lamc; + T sigma = sqrt(3.0*(1 - fabsl(sin(phi)))); + T cn = floor(2*lam / ONEPI + 2); + if (cn >= 4) { + cn = 3; + } + lamc = -3*ONEPI/4 + (ONEPI/2)*cn; + xy_x = lamc + (lam - lamc)*sigma; + xy_y = pj_sign(phi)*ONEPI/4*(2 - sigma); + } + return; + } + /** + * Return the inverse of healpix_sphere(). + **/ + template <typename T> + inline void healpix_sphere_inverse(T const& xy_x, T const& xy_y, T& lp_lam, T& lp_phi) + { + static const T ONEPI = detail::ONEPI<T>(); + + T x = xy_x; + T y = xy_y; + T y0 = ONEPI/4.0; + /* Equatorial region. */ + if (fabsl(y) <= y0) { + lp_lam = x; + lp_phi = asin(8.0*y/(3.0*ONEPI)); + } else if (fabsl(y) < ONEPI/2.0) { + T cn = floor(2.0*x/ONEPI + 2.0); + T xc, tau; + if (cn >= 4) { + cn = 3; + } + xc = -3.0*ONEPI/4.0 + (ONEPI/2.0)*cn; + tau = 2.0 - 4.0*fabsl(y)/ONEPI; + lp_lam = xc + (x - xc)/tau; + lp_phi = pj_sign(y)*asin(1.0 - pow(tau , 2.0)/3.0); + } else { + lp_lam = -1.0*ONEPI; + lp_phi = pj_sign(y)*ONEPI/2.0; + } + return; + } + /** + * Return the vector sum a + b, where a and b are 2-dimensional vectors. + * @param ret holds a + b. + **/ + template <typename T> + inline void vector_add(T a[2], T b[2], T *ret) + { + int i; + for(i = 0; i < 2; i++) { + ret[i] = a[i] + b[i]; + } + } + /** + * Return the vector difference a - b, where a and b are 2-dimensional vectors. + * @param ret holds a - b. + **/ + template <typename T> + inline void vector_sub(T a[2], T b[2], T*ret) + { + int i; + for(i = 0; i < 2; i++) { + ret[i] = a[i] - b[i]; + } + } + /** + * Return the 2 x 1 matrix product a*b, where a is a 2 x 2 matrix and + * b is a 2 x 1 matrix. + * @param ret holds a*b. + **/ + template <typename T> + inline void dot_product(T a[2][2], T b[2], T *ret) + { + int i, j; + int length = 2; + for(i = 0; i < length; i++) { + ret[i] = 0; + for(j = 0; j < length; j++) { + ret[i] += a[i][j]*b[j]; + } + } + } + /** + * Return the number of the polar cap, the pole point coordinates, and + * the region that (x, y) lies in. + * If inverse=0, then assume (x,y) lies in the image of the HEALPix + * projection of the unit sphere. + * If inverse=1, then assume (x,y) lies in the image of the + * (north_square, south_square)-rHEALPix projection of the unit sphere. + **/ + template <typename T> + inline CapMap<T> get_cap(T x, T const& y, int north_square, int south_square, + int inverse) + { + static const T ONEPI = detail::ONEPI<T>(); + + CapMap<T> capmap; + T c; + capmap.x = x; + capmap.y = y; + if (inverse == 0) { + if (y > ONEPI/4.0) { + capmap.region = CapMap<T>::north; + c = ONEPI/2.0; + } else if (y < -1*ONEPI/4.0) { + capmap.region = CapMap<T>::south; + c = -1*ONEPI/2.0; + } else { + capmap.region = CapMap<T>::equatorial; + capmap.cn = 0; + return capmap; + } + /* polar region */ + if (x < -1*ONEPI/2.0) { + capmap.cn = 0; + capmap.x = (-1*3.0*ONEPI/4.0); + capmap.y = c; + } else if (x >= -1*ONEPI/2.0 && x < 0) { + capmap.cn = 1; + capmap.x = -1*ONEPI/4.0; + capmap.y = c; + } else if (x >= 0 && x < ONEPI/2.0) { + capmap.cn = 2; + capmap.x = ONEPI/4.0; + capmap.y = c; + } else { + capmap.cn = 3; + capmap.x = 3.0*ONEPI/4.0; + capmap.y = c; + } + return capmap; + } else { + T eps; + if (y > ONEPI/4.0) { + capmap.region = CapMap<T>::north; + capmap.x = (-3.0*ONEPI/4.0 + north_square*ONEPI/2.0); + capmap.y = ONEPI/2.0; + x = x - north_square*ONEPI/2.0; + } else if (y < -1*ONEPI/4.0) { + capmap.region = CapMap<T>::south; + capmap.x = (-3.0*ONEPI/4.0 + south_square*ONEPI/2); + capmap.y = -1*ONEPI/2.0; + x = x - south_square*ONEPI/2.0; + } else { + capmap.region = CapMap<T>::equatorial; + capmap.cn = 0; + return capmap; + } + /* Polar Region, find the HEALPix polar cap number that + x, y moves to when rHEALPix polar square is disassembled. */ + eps = 1e-15; /* Kludge. Fuzz to avoid some rounding errors. */ + if (capmap.region == CapMap<T>::north) { + if (y >= -1*x - ONEPI/4.0 - eps && y < x + 5.0*ONEPI/4.0 - eps) { + capmap.cn = (north_square + 1) % 4; + } else if (y > -1*x -1*ONEPI/4.0 + eps && y >= x + 5.0*ONEPI/4.0 - eps) { + capmap.cn = (north_square + 2) % 4; + } else if (y <= -1*x -1*ONEPI/4.0 + eps && y > x + 5.0*ONEPI/4.0 + eps) { + capmap.cn = (north_square + 3) % 4; + } else { + capmap.cn = north_square; + } + } else if (capmap.region == CapMap<T>::south) { + if (y <= x + ONEPI/4.0 + eps && y > -1*x - 5.0*ONEPI/4 + eps) { + capmap.cn = (south_square + 1) % 4; + } else if (y < x + ONEPI/4.0 - eps && y <= -1*x - 5.0*ONEPI/4.0 + eps) { + capmap.cn = (south_square + 2) % 4; + } else if (y >= x + ONEPI/4.0 - eps && y < -1*x - 5.0*ONEPI/4.0 - eps) { + capmap.cn = (south_square + 3) % 4; + } else { + capmap.cn = south_square; + } + } + return capmap; + } + } + /** + * Rearrange point (x, y) in the HEALPix projection by + * combining the polar caps into two polar squares. + * Put the north polar square in position north_square and + * the south polar square in position south_square. + * If inverse=1, then uncombine the polar caps. + * @param north_square integer between 0 and 3. + * @param south_square integer between 0 and 3. + **/ + template <typename T> + inline void combine_caps(T& xy_x, T& xy_y, int north_square, int south_square, + int inverse) + { + static const T ONEPI = detail::ONEPI<T>(); + + T v[2]; + T a[2]; + T vector[2]; + T v_min_c[2]; + T ret_dot[2]; + CapMap<T> capmap = get_cap(xy_x, xy_y, north_square, south_square, inverse); + if (capmap.region == CapMap<T>::equatorial) { + xy_x = capmap.x; + xy_y = capmap.y; + return; + } + v[0] = xy_x; + v[1] = xy_y; + if (inverse == 0) { + /* Rotate (xy_x, xy_y) about its polar cap tip and then translate it to + north_square or south_square. */ + int pole = 0; + T (*tmpRot)[2]; + T c[2] = {capmap.x, capmap.y}; + if (capmap.region == CapMap<T>::north) { + pole = north_square; + a[0] = (-3.0*ONEPI/4.0 + pole*ONEPI/2); + a[1] = (ONEPI/2.0 + pole*0); + tmpRot = rot[get_rotate_index(capmap.cn - pole)]; + vector_sub(v, c, v_min_c); + dot_product(tmpRot, v_min_c, ret_dot); + vector_add(ret_dot, a, vector); + } else { + pole = south_square; + a[0] = (-3.0*ONEPI/4.0 + pole*ONEPI/2); + a[1] = (ONEPI/-2.0 + pole*0); + tmpRot = rot[get_rotate_index(-1*(capmap.cn - pole))]; + vector_sub(v, c, v_min_c); + dot_product(tmpRot, v_min_c, ret_dot); + vector_add(ret_dot, a, vector); + } + xy_x = vector[0]; + xy_y = vector[1]; + return; + } else { + /* Inverse function. + Unrotate (xy_x, xy_y) and then translate it back. */ + int pole = 0; + T (*tmpRot)[2]; + T c[2] = {capmap.x, capmap.y}; + /* disassemble */ + if (capmap.region == CapMap<T>::north) { + pole = north_square; + a[0] = (-3.0*ONEPI/4.0 + capmap.cn*ONEPI/2); + a[1] = (ONEPI/2.0 + capmap.cn*0); + tmpRot = rot[get_rotate_index(-1*(capmap.cn - pole))]; + vector_sub(v, c, v_min_c); + dot_product(tmpRot, v_min_c, ret_dot); + vector_add(ret_dot, a, vector); + } else { + pole = south_square; + a[0] = (-3.0*ONEPI/4.0 + capmap.cn*ONEPI/2); + a[1] = (ONEPI/-2.0 + capmap.cn*0); + tmpRot = rot[get_rotate_index(capmap.cn - pole)]; + vector_sub(v, c, v_min_c); + dot_product(tmpRot, v_min_c, ret_dot); + vector_add(ret_dot, a, vector); + } + xy_x = vector[0]; + xy_y = vector[1]; + return; + } + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_healpix_ellipsoid : public base_t_fi<base_healpix_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_healpix<CalculationType> m_proj_parm; + + inline base_healpix_ellipsoid(const Parameters& par) + : base_t_fi<base_healpix_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_healpix_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + lp_lat = auth_lat(this->params(), m_proj_parm, lp_lat, 0); + return healpix_sphere(lp_lon, lp_lat, xy_x, xy_y); + } + + // INVERSE(e_healpix_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + /* Check whether (x, y) lies in the HEALPix image. */ + if (in_image(xy_x, xy_y, 0, 0, 0) == 0) { + lp_lon = HUGE_VAL; + lp_lat = HUGE_VAL; + BOOST_THROW_EXCEPTION( projection_exception(-15) ); + } + healpix_sphere_inverse(xy_x, xy_y, lp_lon, lp_lat); + lp_lat = auth_lat(this->params(), m_proj_parm, lp_lat, 1); + } + + static inline std::string get_name() + { + return "healpix_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_healpix_spheroid : public base_t_fi<base_healpix_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_healpix<CalculationType> m_proj_parm; + + inline base_healpix_spheroid(const Parameters& par) + : base_t_fi<base_healpix_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_healpix_forward) sphere + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + return healpix_sphere(lp_lon, lp_lat, xy_x, xy_y); + } + + // INVERSE(s_healpix_inverse) sphere + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + /* Check whether (x, y) lies in the HEALPix image */ + if (in_image(xy_x, xy_y, 0, 0, 0) == 0) { + lp_lon = HUGE_VAL; + lp_lat = HUGE_VAL; + BOOST_THROW_EXCEPTION( projection_exception(-15) ); + } + return healpix_sphere_inverse(xy_x, xy_y, lp_lon, lp_lat); + } + + static inline std::string get_name() + { + return "healpix_spheroid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_rhealpix_ellipsoid : public base_t_fi<base_rhealpix_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_healpix<CalculationType> m_proj_parm; + + inline base_rhealpix_ellipsoid(const Parameters& par) + : base_t_fi<base_rhealpix_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_rhealpix_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + lp_lat = auth_lat(this->params(), m_proj_parm, lp_lat, 0); + healpix_sphere(lp_lon, lp_lat, xy_x, xy_y); + combine_caps(xy_x, xy_y, this->m_proj_parm.north_square, this->m_proj_parm.south_square, 0); + } + + // INVERSE(e_rhealpix_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + /* Check whether (x, y) lies in the rHEALPix image. */ + if (in_image(xy_x, xy_y, 1, this->m_proj_parm.north_square, this->m_proj_parm.south_square) == 0) { + lp_lon = HUGE_VAL; + lp_lat = HUGE_VAL; + BOOST_THROW_EXCEPTION( projection_exception(-15) ); + } + combine_caps(xy_x, xy_y, this->m_proj_parm.north_square, this->m_proj_parm.south_square, 1); + healpix_sphere_inverse(xy_x, xy_y, lp_lon, lp_lat); + lp_lat = auth_lat(this->params(), m_proj_parm, lp_lat, 1); + } + + static inline std::string get_name() + { + return "rhealpix_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_rhealpix_spheroid : public base_t_fi<base_rhealpix_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_healpix<CalculationType> m_proj_parm; + + inline base_rhealpix_spheroid(const Parameters& par) + : base_t_fi<base_rhealpix_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_rhealpix_forward) sphere + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + healpix_sphere(lp_lon, lp_lat, xy_x, xy_y); + combine_caps(xy_x, xy_y, this->m_proj_parm.north_square, this->m_proj_parm.south_square, 0); + } + + // INVERSE(s_rhealpix_inverse) sphere + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + /* Check whether (x, y) lies in the rHEALPix image. */ + if (in_image(xy_x, xy_y, 1, this->m_proj_parm.north_square, this->m_proj_parm.south_square) == 0) { + lp_lon = HUGE_VAL; + lp_lat = HUGE_VAL; + BOOST_THROW_EXCEPTION( projection_exception(-15) ); + } + combine_caps(xy_x, xy_y, this->m_proj_parm.north_square, this->m_proj_parm.south_square, 1); + return healpix_sphere_inverse(xy_x, xy_y, lp_lon, lp_lat); + } + + static inline std::string get_name() + { + return "rhealpix_spheroid"; + } + + }; + + // HEALPix + template <typename Parameters, typename T> + inline void setup_healpix(Parameters& par, par_healpix<T>& proj_parm) + { + if (par.es) { + pj_authset(par.es, proj_parm.apa); /* For auth_lat(). */ + proj_parm.qp = pj_qsfn(1.0, par.e, par.one_es); /* For auth_lat(). */ + par.a = par.a*sqrt(0.5*proj_parm.qp); /* Set par.a to authalic radius. */ + par.ra = 1.0/par.a; + } else { + } + } + + // rHEALPix + template <typename Parameters, typename T> + inline void setup_rhealpix(Parameters& par, par_healpix<T>& proj_parm) + { + proj_parm.north_square = pj_param(par.params,"inorth_square").i; + proj_parm.south_square = pj_param(par.params,"isouth_square").i; + /* Check for valid north_square and south_square inputs. */ + if (proj_parm.north_square < 0 || proj_parm.north_square > 3) { + BOOST_THROW_EXCEPTION( projection_exception(-47) ); + } + if (proj_parm.south_square < 0 || proj_parm.south_square > 3) { + BOOST_THROW_EXCEPTION( projection_exception(-47) ); + } + if (par.es) { + pj_authset(par.es, proj_parm.apa); /* For auth_lat(). */ + proj_parm.qp = pj_qsfn(1.0, par.e, par.one_es); /* For auth_lat(). */ + par.a = par.a*sqrt(0.5*proj_parm.qp); /* Set par.a to authalic radius. */ + par.ra = 1.0/par.a; + } else { + } + } + + }} // namespace detail::healpix + #endif // doxygen + + /*! + \brief HEALPix projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Spheroid + - Ellipsoid + \par Example + \image html ex_healpix.gif + */ + template <typename CalculationType, typename Parameters> + struct healpix_ellipsoid : public detail::healpix::base_healpix_ellipsoid<CalculationType, Parameters> + { + inline healpix_ellipsoid(const Parameters& par) : detail::healpix::base_healpix_ellipsoid<CalculationType, Parameters>(par) + { + detail::healpix::setup_healpix(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief HEALPix projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Spheroid + - Ellipsoid + \par Example + \image html ex_healpix.gif + */ + template <typename CalculationType, typename Parameters> + struct healpix_spheroid : public detail::healpix::base_healpix_spheroid<CalculationType, Parameters> + { + inline healpix_spheroid(const Parameters& par) : detail::healpix::base_healpix_spheroid<CalculationType, Parameters>(par) + { + detail::healpix::setup_healpix(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief rHEALPix projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Spheroid + - Ellipsoid + \par Projection parameters + - north_square (integer) + - south_square (integer) + \par Example + \image html ex_rhealpix.gif + */ + template <typename CalculationType, typename Parameters> + struct rhealpix_ellipsoid : public detail::healpix::base_rhealpix_ellipsoid<CalculationType, Parameters> + { + inline rhealpix_ellipsoid(const Parameters& par) : detail::healpix::base_rhealpix_ellipsoid<CalculationType, Parameters>(par) + { + detail::healpix::setup_rhealpix(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief rHEALPix projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Spheroid + - Ellipsoid + \par Projection parameters + - north_square (integer) + - south_square (integer) + \par Example + \image html ex_rhealpix.gif + */ + template <typename CalculationType, typename Parameters> + struct rhealpix_spheroid : public detail::healpix::base_rhealpix_spheroid<CalculationType, Parameters> + { + inline rhealpix_spheroid(const Parameters& par) : detail::healpix::base_rhealpix_spheroid<CalculationType, Parameters>(par) + { + detail::healpix::setup_rhealpix(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::healpix, healpix_spheroid, healpix_ellipsoid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::rhealpix, rhealpix_spheroid, rhealpix_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class healpix_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<healpix_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<healpix_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class rhealpix_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<rhealpix_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<rhealpix_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void healpix_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("healpix", new healpix_entry<CalculationType, Parameters>); + factory.add_to_factory("rhealpix", new rhealpix_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_HEALPIX_HPP + diff --git a/boost/geometry/srs/projections/proj/igh.hpp b/boost/geometry/srs/projections/proj/igh.hpp new file mode 100644 index 0000000000..219f74239e --- /dev/null +++ b/boost/geometry/srs/projections/proj/igh.hpp @@ -0,0 +1,377 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_IGH_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IGH_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> +#include <boost/shared_ptr.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/proj/gn_sinu.hpp> +#include <boost/geometry/srs/projections/proj/moll.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct igh {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace igh + { + + template <typename CalculationType, typename Parameters> + struct par_igh + { + boost::shared_ptr<base_v<CalculationType, Parameters> > pj[12]; + CalculationType dy0; + }; + + template <typename T> + inline T d4044118() { return (T(40) + T(44)/T(60.) + T(11.8)/T(3600.)) * geometry::math::d2r<T>(); } // 40d 44' 11.8" [degrees] + + template <typename T> + inline T d10() { return T(10) * geometry::math::d2r<T>(); } + template <typename T> + inline T d20() { return T(20) * geometry::math::d2r<T>(); } + template <typename T> + inline T d30() { return T(30) * geometry::math::d2r<T>(); } + template <typename T> + inline T d40() { return T(40) * geometry::math::d2r<T>(); } + template <typename T> + inline T d50() { return T(50) * geometry::math::d2r<T>(); } + template <typename T> + inline T d60() { return T(60) * geometry::math::d2r<T>(); } + template <typename T> + inline T d80() { return T(80) * geometry::math::d2r<T>(); } + template <typename T> + inline T d90() { return T(90) * geometry::math::d2r<T>(); } + template <typename T> + inline T d100() { return T(100) * geometry::math::d2r<T>(); } + template <typename T> + inline T d140() { return T(140) * geometry::math::d2r<T>(); } + template <typename T> + inline T d160() { return T(160) * geometry::math::d2r<T>(); } + template <typename T> + inline T d180() { return T(180) * geometry::math::d2r<T>(); } + + static const double EPSLN = 1.e-10; // allow a little 'slack' on zone edge positions + + // Converted from #define SETUP(n, proj, x_0, y_0, lon_0) + template <template <typename, typename> class Entry, typename Parameters, typename CalculationType> + inline void do_setup(int n, Parameters const& par, par_igh<CalculationType, Parameters>& proj_parm, + CalculationType const& x_0, CalculationType const& y_0, + CalculationType const& lon_0) + { + Entry<CalculationType, Parameters> entry; + proj_parm.pj[n-1].reset(entry.create_new(par)); + proj_parm.pj[n-1]->mutable_params().x0 = x_0; + proj_parm.pj[n-1]->mutable_params().y0 = y_0; + proj_parm.pj[n-1]->mutable_params().lam0 = lon_0; + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_igh_spheroid : public base_t_fi<base_igh_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_igh<CalculationType, Parameters> m_proj_parm; + + inline base_igh_spheroid(const Parameters& par) + : base_t_fi<base_igh_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType d4044118 = igh::d4044118<CalculationType>(); + static const CalculationType d20 = igh::d20<CalculationType>(); + static const CalculationType d40 = igh::d40<CalculationType>(); + static const CalculationType d80 = igh::d80<CalculationType>(); + static const CalculationType d100 = igh::d100<CalculationType>(); + + int z; + if (lp_lat >= d4044118) { // 1|2 + z = (lp_lon <= -d40 ? 1: 2); + } + else if (lp_lat >= 0) { // 3|4 + z = (lp_lon <= -d40 ? 3: 4); + } + else if (lp_lat >= -d4044118) { // 5|6|7|8 + if (lp_lon <= -d100) z = 5; // 5 + else if (lp_lon <= -d20) z = 6; // 6 + else if (lp_lon <= d80) z = 7; // 7 + else z = 8; // 8 + } + else { // 9|10|11|12 + if (lp_lon <= -d100) z = 9; // 9 + else if (lp_lon <= -d20) z = 10; // 10 + else if (lp_lon <= d80) z = 11; // 11 + else z = 12; // 12 + } + + lp_lon -= this->m_proj_parm.pj[z-1]->params().lam0; + this->m_proj_parm.pj[z-1]->fwd(lp_lon, lp_lat, xy_x, xy_y); + xy_x += this->m_proj_parm.pj[z-1]->params().x0; + xy_y += this->m_proj_parm.pj[z-1]->params().y0; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType d4044118 = igh::d4044118<CalculationType>(); + static const CalculationType d10 = igh::d10<CalculationType>(); + static const CalculationType d20 = igh::d20<CalculationType>(); + static const CalculationType d40 = igh::d40<CalculationType>(); + static const CalculationType d50 = igh::d50<CalculationType>(); + static const CalculationType d60 = igh::d60<CalculationType>(); + static const CalculationType d80 = igh::d80<CalculationType>(); + static const CalculationType d90 = igh::d90<CalculationType>(); + static const CalculationType d100 = igh::d100<CalculationType>(); + static const CalculationType d160 = igh::d160<CalculationType>(); + static const CalculationType d180 = igh::d180<CalculationType>(); + + static const CalculationType c2 = 2.0; + + const CalculationType y90 = this->m_proj_parm.dy0 + sqrt(c2); // lt=90 corresponds to y=y0+sqrt(2.0) + + int z = 0; + if (xy_y > y90+EPSLN || xy_y < -y90+EPSLN) // 0 + z = 0; + else if (xy_y >= d4044118) // 1|2 + z = (xy_x <= -d40? 1: 2); + else if (xy_y >= 0) // 3|4 + z = (xy_x <= -d40? 3: 4); + else if (xy_y >= -d4044118) { // 5|6|7|8 + if (xy_x <= -d100) z = 5; // 5 + else if (xy_x <= -d20) z = 6; // 6 + else if (xy_x <= d80) z = 7; // 7 + else z = 8; // 8 + } + else { // 9|10|11|12 + if (xy_x <= -d100) z = 9; // 9 + else if (xy_x <= -d20) z = 10; // 10 + else if (xy_x <= d80) z = 11; // 11 + else z = 12; // 12 + } + + if (z) + { + int ok = 0; + + xy_x -= this->m_proj_parm.pj[z-1]->params().x0; + xy_y -= this->m_proj_parm.pj[z-1]->params().y0; + this->m_proj_parm.pj[z-1]->inv(xy_x, xy_y, lp_lon, lp_lat); + lp_lon += this->m_proj_parm.pj[z-1]->params().lam0; + + switch (z) { + case 1: ok = (lp_lon >= -d180-EPSLN && lp_lon <= -d40+EPSLN) || + ((lp_lon >= -d40-EPSLN && lp_lon <= -d10+EPSLN) && + (lp_lat >= d60-EPSLN && lp_lat <= d90+EPSLN)); break; + case 2: ok = (lp_lon >= -d40-EPSLN && lp_lon <= d180+EPSLN) || + ((lp_lon >= -d180-EPSLN && lp_lon <= -d160+EPSLN) && + (lp_lat >= d50-EPSLN && lp_lat <= d90+EPSLN)) || + ((lp_lon >= -d50-EPSLN && lp_lon <= -d40+EPSLN) && + (lp_lat >= d60-EPSLN && lp_lat <= d90+EPSLN)); break; + case 3: ok = (lp_lon >= -d180-EPSLN && lp_lon <= -d40+EPSLN); break; + case 4: ok = (lp_lon >= -d40-EPSLN && lp_lon <= d180+EPSLN); break; + case 5: ok = (lp_lon >= -d180-EPSLN && lp_lon <= -d100+EPSLN); break; + case 6: ok = (lp_lon >= -d100-EPSLN && lp_lon <= -d20+EPSLN); break; + case 7: ok = (lp_lon >= -d20-EPSLN && lp_lon <= d80+EPSLN); break; + case 8: ok = (lp_lon >= d80-EPSLN && lp_lon <= d180+EPSLN); break; + case 9: ok = (lp_lon >= -d180-EPSLN && lp_lon <= -d100+EPSLN); break; + case 10: ok = (lp_lon >= -d100-EPSLN && lp_lon <= -d20+EPSLN); break; + case 11: ok = (lp_lon >= -d20-EPSLN && lp_lon <= d80+EPSLN); break; + case 12: ok = (lp_lon >= d80-EPSLN && lp_lon <= d180+EPSLN); break; + } + + z = (!ok? 0: z); // projectable? + } + // if (!z) pj_errno = -15; // invalid x or y + if (!z) lp_lon = HUGE_VAL; + if (!z) lp_lat = HUGE_VAL; + } + + static inline std::string get_name() + { + return "igh_spheroid"; + } + + }; + + // Interrupted Goode Homolosine + template <typename CalculationType, typename Parameters> + inline void setup_igh(Parameters& par, par_igh<CalculationType, Parameters>& proj_parm) + { + static const CalculationType d0 = 0; + static const CalculationType d4044118 = igh::d4044118<CalculationType>(); + static const CalculationType d20 = igh::d20<CalculationType>(); + static const CalculationType d30 = igh::d30<CalculationType>(); + static const CalculationType d60 = igh::d60<CalculationType>(); + static const CalculationType d100 = igh::d100<CalculationType>(); + static const CalculationType d140 = igh::d140<CalculationType>(); + static const CalculationType d160 = igh::d160<CalculationType>(); + + /* + Zones: + + -180 -40 180 + +--------------+-------------------------+ Zones 1,2,9,10,11 & 12: + |1 |2 | Mollweide projection + | | | + +--------------+-------------------------+ Zones 3,4,5,6,7 & 8: + |3 |4 | Sinusoidal projection + | | | + 0 +-------+------+-+-----------+-----------+ + |5 |6 |7 |8 | + | | | | | + +-------+--------+-----------+-----------+ + |9 |10 |11 |12 | + | | | | | + +-------+--------+-----------+-----------+ + -180 -100 -20 80 180 + */ + + + CalculationType lp_lam = 0, lp_phi = d4044118; + CalculationType xy1_x, xy1_y; + CalculationType xy3_x, xy3_y; + + // sinusoidal zones + do_setup<sinu_entry>(3, par, proj_parm, -d100, d0, -d100); + do_setup<sinu_entry>(4, par, proj_parm, d30, d0, d30); + do_setup<sinu_entry>(5, par, proj_parm, -d160, d0, -d160); + do_setup<sinu_entry>(6, par, proj_parm, -d60, d0, -d60); + do_setup<sinu_entry>(7, par, proj_parm, d20, d0, d20); + do_setup<sinu_entry>(8, par, proj_parm, d140, d0, d140); + + // mollweide zones + do_setup<moll_entry>(1, par, proj_parm, -d100, d0, -d100); + + // y0 ? + proj_parm.pj[0]->fwd(lp_lam, lp_phi, xy1_x, xy1_y); // zone 1 + proj_parm.pj[2]->fwd(lp_lam, lp_phi, xy3_x, xy3_y); // zone 3 + // y0 + xy1_y = xy3_y for lt = 40d44'11.8" + proj_parm.dy0 = xy3_y - xy1_y; + + proj_parm.pj[0]->mutable_params().y0 = proj_parm.dy0; + + // mollweide zones (cont'd) + do_setup<moll_entry>( 2, par, proj_parm, d30, proj_parm.dy0, d30); + do_setup<moll_entry>( 9, par, proj_parm, -d160, -proj_parm.dy0, -d160); + do_setup<moll_entry>(10, par, proj_parm, -d60, -proj_parm.dy0, -d60); + do_setup<moll_entry>(11, par, proj_parm, d20, -proj_parm.dy0, d20); + do_setup<moll_entry>(12, par, proj_parm, d140, -proj_parm.dy0, d140); + + par.es = 0.; + } + + }} // namespace detail::igh + #endif // doxygen + + /*! + \brief Interrupted Goode Homolosine projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_igh.gif + */ + template <typename CalculationType, typename Parameters> + struct igh_spheroid : public detail::igh::base_igh_spheroid<CalculationType, Parameters> + { + inline igh_spheroid(const Parameters& par) : detail::igh::base_igh_spheroid<CalculationType, Parameters>(par) + { + detail::igh::setup_igh(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::igh, igh_spheroid, igh_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class igh_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<igh_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void igh_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("igh", new igh_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_IGH_HPP + diff --git a/boost/geometry/srs/projections/proj/imw_p.hpp b/boost/geometry/srs/projections/proj/imw_p.hpp new file mode 100644 index 0000000000..1a7fe9e915 --- /dev/null +++ b/boost/geometry/srs/projections/proj/imw_p.hpp @@ -0,0 +1,320 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_IMW_P_HPP +#define BOOST_GEOMETRY_PROJECTIONS_IMW_P_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_mlfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct imw_p {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace imw_p + { + + static const double TOL = 1e-10; + static const double EPS = 1e-10; + + template <typename T> + struct XY { T x, y; }; // specific for IMW_P + + template <typename T> + struct par_imw_p + { + T P, Pp, Q, Qp, R_1, R_2, sphi_1, sphi_2, C2; + T phi_1, phi_2, lam_1; + T en[EN_SIZE]; + int mode; /* = 0, phi_1 and phi_2 != 0, = 1, phi_1 = 0, = -1 phi_2 = 0 */ + }; + + template <typename Parameters, typename T> + inline int + phi12(Parameters& par, par_imw_p<T>& proj_parm, T *del, T *sig) + { + int err = 0; + + if (!pj_param(par.params, "tlat_1").i || + !pj_param(par.params, "tlat_2").i) { + err = -41; + } else { + proj_parm.phi_1 = pj_param(par.params, "rlat_1").f; + proj_parm.phi_2 = pj_param(par.params, "rlat_2").f; + *del = 0.5 * (proj_parm.phi_2 - proj_parm.phi_1); + *sig = 0.5 * (proj_parm.phi_2 + proj_parm.phi_1); + err = (fabs(*del) < EPS || fabs(*sig) < EPS) ? -42 : 0; + } + return err; + } + template <typename Parameters, typename T> + inline XY<T> + loc_for(T const& lp_lam, T const& lp_phi, Parameters const& par, par_imw_p<T> const& proj_parm, T *yc) + { + XY<T> xy; + + if (! lp_phi) { + xy.x = lp_lam; + xy.y = 0.; + } else { + T xa, ya, xb, yb, xc, D, B, m, sp, t, R, C; + + sp = sin(lp_phi); + m = pj_mlfn(lp_phi, sp, cos(lp_phi), proj_parm.en); + xa = proj_parm.Pp + proj_parm.Qp * m; + ya = proj_parm.P + proj_parm.Q * m; + R = 1. / (tan(lp_phi) * sqrt(1. - par.es * sp * sp)); + C = sqrt(R * R - xa * xa); + if (lp_phi < 0.) C = - C; + C += ya - R; + if (proj_parm.mode < 0) { + xb = lp_lam; + yb = proj_parm.C2; + } else { + t = lp_lam * proj_parm.sphi_2; + xb = proj_parm.R_2 * sin(t); + yb = proj_parm.C2 + proj_parm.R_2 * (1. - cos(t)); + } + if (proj_parm.mode > 0) { + xc = lp_lam; + *yc = 0.; + } else { + t = lp_lam * proj_parm.sphi_1; + xc = proj_parm.R_1 * sin(t); + *yc = proj_parm.R_1 * (1. - cos(t)); + } + D = (xb - xc)/(yb - *yc); + B = xc + D * (C + R - *yc); + xy.x = D * sqrt(R * R * (1 + D * D) - B * B); + if (lp_phi > 0) + xy.x = - xy.x; + xy.x = (B + xy.x) / (1. + D * D); + xy.y = sqrt(R * R - xy.x * xy.x); + if (lp_phi > 0) + xy.y = - xy.y; + xy.y += C + R; + } + return (xy); + } + template <typename Parameters, typename T> + inline void + xy(Parameters const& par, par_imw_p<T> const& proj_parm, T const& phi, T *x, T *y, T *sp, T *R) + { + T F; + + *sp = sin(phi); + *R = 1./(tan(phi) * sqrt(1. - par.es * *sp * *sp )); + F = proj_parm.lam_1 * *sp; + *y = *R * (1 - cos(F)); + *x = *R * sin(F); + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_imw_p_ellipsoid : public base_t_fi<base_imw_p_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_imw_p<CalculationType> m_proj_parm; + + inline base_imw_p_ellipsoid(const Parameters& par) + : base_t_fi<base_imw_p_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType yc = 0; + XY<CalculationType> xy = loc_for(lp_lon, lp_lat, this->m_par, m_proj_parm, &yc); + xy_x = xy.x; xy_y = xy.y; + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + XY<CalculationType> t; + CalculationType yc = 0; + + lp_lat = this->m_proj_parm.phi_2; + lp_lon = xy_x / cos(lp_lat); + do { + t = loc_for(lp_lon, lp_lat, this->m_par, m_proj_parm, &yc); + lp_lat = ((lp_lat - this->m_proj_parm.phi_1) * (xy_y - yc) / (t.y - yc)) + this->m_proj_parm.phi_1; + lp_lon = lp_lon * xy_x / t.x; + } while (fabs(t.x - xy_x) > TOL || fabs(t.y - xy_y) > TOL); + } + + static inline std::string get_name() + { + return "imw_p_ellipsoid"; + } + + }; + + // International Map of the World Polyconic + template <typename Parameters, typename T> + inline void setup_imw_p(Parameters& par, par_imw_p<T>& proj_parm) + { + T del, sig, s, t, x1, x2, T2, y1, m1, m2, y2; + int i; + + if (!pj_enfn(par.es, proj_parm.en)) + BOOST_THROW_EXCEPTION( projection_exception(0) ); + if( (i = phi12(par, proj_parm, &del, &sig)) != 0) + BOOST_THROW_EXCEPTION( projection_exception(i) ); + if (proj_parm.phi_2 < proj_parm.phi_1) { /* make sure proj_parm.phi_1 most southerly */ + del = proj_parm.phi_1; + proj_parm.phi_1 = proj_parm.phi_2; + proj_parm.phi_2 = del; + } + if (pj_param(par.params, "tlon_1").i) + proj_parm.lam_1 = pj_param(par.params, "rlon_1").f; + else { /* use predefined based upon latitude */ + sig = fabs(sig * geometry::math::r2d<T>()); + if (sig <= 60) sig = 2.; + else if (sig <= 76) sig = 4.; + else sig = 8.; + proj_parm.lam_1 = sig * geometry::math::d2r<T>(); + } + proj_parm.mode = 0; + if (proj_parm.phi_1) xy(par, proj_parm, proj_parm.phi_1, &x1, &y1, &proj_parm.sphi_1, &proj_parm.R_1); + else { + proj_parm.mode = 1; + y1 = 0.; + x1 = proj_parm.lam_1; + } + if (proj_parm.phi_2) xy(par, proj_parm, proj_parm.phi_2, &x2, &T2, &proj_parm.sphi_2, &proj_parm.R_2); + else { + proj_parm.mode = -1; + T2 = 0.; + x2 = proj_parm.lam_1; + } + m1 = pj_mlfn(proj_parm.phi_1, proj_parm.sphi_1, cos(proj_parm.phi_1), proj_parm.en); + m2 = pj_mlfn(proj_parm.phi_2, proj_parm.sphi_2, cos(proj_parm.phi_2), proj_parm.en); + t = m2 - m1; + s = x2 - x1; + y2 = sqrt(t * t - s * s) + y1; + proj_parm.C2 = y2 - T2; + t = 1. / t; + proj_parm.P = (m2 * y1 - m1 * y2) * t; + proj_parm.Q = (y2 - y1) * t; + proj_parm.Pp = (m2 * x1 - m1 * x2) * t; + proj_parm.Qp = (x2 - x1) * t; + } + + }} // namespace detail::imw_p + #endif // doxygen + + /*! + \brief International Map of the World Polyconic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Mod. Polyconic + - Ellipsoid + \par Projection parameters + - lat_1: Latitude of first standard parallel + - lat_2: Latitude of second standard parallel + - lon_1 (degrees) + \par Example + \image html ex_imw_p.gif + */ + template <typename CalculationType, typename Parameters> + struct imw_p_ellipsoid : public detail::imw_p::base_imw_p_ellipsoid<CalculationType, Parameters> + { + inline imw_p_ellipsoid(const Parameters& par) : detail::imw_p::base_imw_p_ellipsoid<CalculationType, Parameters>(par) + { + detail::imw_p::setup_imw_p(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::imw_p, imw_p_ellipsoid, imw_p_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class imw_p_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<imw_p_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void imw_p_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("imw_p", new imw_p_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_IMW_P_HPP + diff --git a/boost/geometry/srs/projections/proj/isea.hpp b/boost/geometry/srs/projections/proj/isea.hpp new file mode 100644 index 0000000000..4cffbc430f --- /dev/null +++ b/boost/geometry/srs/projections/proj/isea.hpp @@ -0,0 +1,1311 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_ISEA_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ISEA_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// This code was entirely written by Nathan Wagner +// and is in the public domain. + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <sstream> + +#include <boost/core/ignore_unused.hpp> +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct isea {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace isea + { + + static const double E = 52.62263186; + static const double F = 10.81231696; + //static const double DEG60 = 1.04719755119659774614; + //static const double DEG120 = 2.09439510239319549229; + //static const double DEG72 = 1.25663706143591729537; + //static const double DEG90 = 1.57079632679489661922; + //static const double DEG144 = 2.51327412287183459075; + //static const double DEG36 = 0.62831853071795864768; + //static const double DEG108 = 1.88495559215387594306; + //static const double DEG180 = geometry::math::pi<double>(); + static const double ISEA_SCALE = 0.8301572857837594396028083; + static const double V_LAT = 0.46364760899944494524; + static const double E_RAD = 0.91843818702186776133; + static const double F_RAD = 0.18871053072122403508; + static const double TABLE_G = 0.6615845383; + static const double TABLE_H = 0.1909830056; + static const double RPRIME = 0.91038328153090290025; + static const double PRECISION = 0.0000000000005; + static const double ISEA_STD_LAT = 1.01722196792335072101; + static const double ISEA_STD_LON = .19634954084936207740; + + template <typename T> + inline T DEG30() { return T(30) * geometry::math::d2r<T>(); } + template <typename T> + inline T DEG60() { return T(60) * geometry::math::d2r<T>(); } + template <typename T> + inline T DEG120() { return T(120) * geometry::math::d2r<T>(); } + template <typename T> + inline T DEG72() { return T(72) * geometry::math::d2r<T>(); } + template <typename T> + inline T DEG90() { return geometry::math::half_pi<T>(); } + template <typename T> + inline T DEG144() { return T(144) * geometry::math::d2r<T>(); } + template <typename T> + inline T DEG36() { return T(36) * geometry::math::d2r<T>(); } + template <typename T> + inline T DEG108() { return T(108) * geometry::math::d2r<T>(); } + template <typename T> + inline T DEG180() { return geometry::math::pi<T>(); } + + inline bool DOWNTRI(int tri) { return (((tri - 1) / 5) % 2 == 1); } + + /* + * Proj 4 provides its own entry points into + * the code, so none of the library functions + * need to be global + */ + + struct hex { + int iso; + int x, y, z; + }; + + /* y *must* be positive down as the xy /iso conversion assumes this */ + inline + int hex_xy(struct hex *h) { + if (!h->iso) return 1; + if (h->x >= 0) { + h->y = -h->y - (h->x+1)/2; + } else { + /* need to round toward -inf, not toward zero, so x-1 */ + h->y = -h->y - h->x/2; + } + h->iso = 0; + + return 1; + } + + inline + int hex_iso(struct hex *h) { + if (h->iso) return 1; + + if (h->x >= 0) { + h->y = (-h->y - (h->x+1)/2); + } else { + /* need to round toward -inf, not toward zero, so x-1 */ + h->y = (-h->y - (h->x)/2); + } + + h->z = -h->x - h->y; + h->iso = 1; + return 1; + } + + template <typename T> + inline + int hexbin2(T const& width, T x, T y, + int *i, int *j) { + T z, rx, ry, rz; + T abs_dx, abs_dy, abs_dz; + int ix, iy, iz, s; + struct hex h; + + x = x / cos(DEG30<T>()); /* rotated X coord */ + y = y - x / 2.0; /* adjustment for rotated X */ + + /* adjust for actual hexwidth */ + x /= width; + y /= width; + + z = -x - y; + + rx = floor(x + 0.5); + ix = (int)rx; + ry = floor(y + 0.5); + iy = (int)ry; + rz = floor(z + 0.5); + iz = (int)rz; + + s = ix + iy + iz; + + if (s) { + abs_dx = fabs(rx - x); + abs_dy = fabs(ry - y); + abs_dz = fabs(rz - z); + + if (abs_dx >= abs_dy && abs_dx >= abs_dz) { + ix -= s; + } else if (abs_dy >= abs_dx && abs_dy >= abs_dz) { + iy -= s; + } else { + iz -= s; + } + } + h.x = ix; + h.y = iy; + h.z = iz; + h.iso = 1; + + hex_xy(&h); + *i = h.x; + *j = h.y; + return ix * 100 + iy; + } + + enum isea_poly { ISEA_NONE, ISEA_ICOSAHEDRON = 20 }; + enum isea_topology { ISEA_HEXAGON=6, ISEA_TRIANGLE=3, ISEA_DIAMOND=4 }; + enum isea_address_form { ISEA_GEO, ISEA_Q2DI, ISEA_SEQNUM, ISEA_INTERLEAVE, + ISEA_PLANE, ISEA_Q2DD, ISEA_PROJTRI, ISEA_VERTEX2DD, ISEA_HEX + }; + + template <typename T> + struct isea_dgg { + int polyhedron; /* ignored, icosahedron */ + T o_lat, o_lon, o_az; /* orientation, radians */ + int pole; /* true if standard snyder */ + int topology; /* ignored, hexagon */ + int aperture; /* valid values depend on partitioning method */ + int resolution; + T radius; /* radius of the earth in meters, ignored 1.0 */ + int output; /* an isea_address_form */ + int triangle; /* triangle of last transformed point */ + int quad; /* quad of last transformed point */ + unsigned long serial; + }; + + template <typename T> + struct isea_pt { + T x, y; + }; + + template <typename T> + struct isea_geo { + T lon, lat; + }; + + template <typename T> + struct isea_address { + int type; /* enum isea_address_form */ + int number; + T x,y; /* or i,j or lon,lat depending on type */ + }; + + /* ENDINC */ + + enum snyder_polyhedron { + SNYDER_POLY_HEXAGON, SNYDER_POLY_PENTAGON, + SNYDER_POLY_TETRAHEDRON, SNYDER_POLY_CUBE, + SNYDER_POLY_OCTAHEDRON, SNYDER_POLY_DODECAHEDRON, + SNYDER_POLY_ICOSAHEDRON + }; + + template <typename T> + struct snyder_constants { + T g, G, theta, ea_w, ea_a, ea_b, g_w, g_a, g_b; + }; + + template <typename T> + inline const snyder_constants<T> * constants() + { + /* TODO put these in radians to avoid a later conversion */ + static snyder_constants<T> result[] = { + {23.80018260, 62.15458023, 60.0, 3.75, 1.033, 0.968, 5.09, 1.195, 1.0}, + {20.07675127, 55.69063953, 54.0, 2.65, 1.030, 0.983, 3.59, 1.141, 1.027}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, + {37.37736814, 36.0, 30.0, 17.27, 1.163, 0.860, 13.14, 1.584, 1.0} + }; + return result; + } + + + /* sqrt(5)/M_PI */ + + /* 26.565051177 degrees */ + + + template <typename T> + inline const isea_geo<T> * vertex() + { + static isea_geo<T> result[] = { + {0.0, DEG90<T>()}, + {DEG180<T>(), V_LAT}, + {-DEG108<T>(), V_LAT}, + {-DEG36<T>(), V_LAT}, + {DEG36<T>(), V_LAT}, + {DEG108<T>(), V_LAT}, + {-DEG144<T>(), -V_LAT}, + {-DEG72<T>(), -V_LAT}, + {0.0, -V_LAT}, + {DEG72<T>(), -V_LAT}, + {DEG144<T>(), -V_LAT}, + {0.0, -DEG90<T>()} + }; + return result; + } + + /* TODO make an isea_pt array of the vertices as well */ + + static int tri_v1[] = {0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 10, 2, 3, 4, 5, 1, 11, 11, 11, 11, 11}; + + /* 52.62263186 */ + + /* 10.81231696 */ + + /* triangle Centers */ + template <typename T> + inline const isea_geo<T> * icostriangles() + { + static isea_geo<T> result[] = { + {0.0, 0.0}, + {-DEG144<T>(), E_RAD}, + {-DEG72<T>(), E_RAD}, + {0.0, E_RAD}, + {DEG72<T>(), E_RAD}, + {DEG144<T>(), E_RAD}, + {-DEG144<T>(), F_RAD}, + {-DEG72<T>(), F_RAD}, + {0.0, F_RAD}, + {DEG72<T>(), F_RAD}, + {DEG144<T>(), F_RAD}, + {-DEG108<T>(), -F_RAD}, + {-DEG36<T>(), -F_RAD}, + {DEG36<T>(), -F_RAD}, + {DEG108<T>(), -F_RAD}, + {DEG180<T>(), -F_RAD}, + {-DEG108<T>(), -E_RAD}, + {-DEG36<T>(), -E_RAD}, + {DEG36<T>(), -E_RAD}, + {DEG108<T>(), -E_RAD}, + {DEG180<T>(), -E_RAD}, + }; + return result; + } + + template <typename T> + inline T az_adjustment(int triangle) + { + T adj; + + isea_geo<T> v; + isea_geo<T> c; + + v = vertex<T>()[tri_v1[triangle]]; + c = icostriangles<T>()[triangle]; + + /* TODO looks like the adjustment is always either 0 or 180 */ + /* at least if you pick your vertex carefully */ + adj = atan2(cos(v.lat) * sin(v.lon - c.lon), + cos(c.lat) * sin(v.lat) + - sin(c.lat) * cos(v.lat) * cos(v.lon - c.lon)); + return adj; + } + + /* R tan(g) sin(60) */ + + /* H = 0.25 R tan g = */ + + + template <typename T> + inline isea_pt<T> isea_triangle_xy(int triangle) + { + isea_pt<T> c; + T Rprime = 0.91038328153090290025; + + triangle = (triangle - 1) % 20; + + c.x = TABLE_G * ((triangle % 5) - 2) * 2.0; + if (triangle > 9) { + c.x += TABLE_G; + } + switch (triangle / 5) { + case 0: + c.y = 5.0 * TABLE_H; + break; + case 1: + c.y = TABLE_H; + break; + case 2: + c.y = -TABLE_H; + break; + case 3: + c.y = -5.0 * TABLE_H; + break; + default: + /* should be impossible */ + BOOST_THROW_EXCEPTION( projection_exception() ); + }; + c.x *= Rprime; + c.y *= Rprime; + + return c; + } + + /* snyder eq 14 */ + template <typename T> + inline T sph_azimuth(T const& f_lon, T const& f_lat, T const& t_lon, T const& t_lat) + { + T az; + + az = atan2(cos(t_lat) * sin(t_lon - f_lon), + cos(f_lat) * sin(t_lat) + - sin(f_lat) * cos(t_lat) * cos(t_lon - f_lon) + ); + return az; + } + + /* coord needs to be in radians */ + template <typename T> + inline int isea_snyder_forward(isea_geo<T> * ll, isea_pt<T> * out) + { + int i; + + /* + * spherical distance from center of polygon face to any of its + * vertexes on the globe + */ + T g; + + /* + * spherical angle between radius vector to center and adjacent edge + * of spherical polygon on the globe + */ + T G; + + /* + * plane angle between radius vector to center and adjacent edge of + * plane polygon + */ + T theta; + + /* additional variables from snyder */ + T q, Rprime, H, Ag, Azprime, Az, dprime, f, rho, + x, y; + + /* variables used to store intermediate results */ + T cot_theta, tan_g, az_offset; + + /* how many multiples of 60 degrees we adjust the azimuth */ + int Az_adjust_multiples; + + snyder_constants<T> c; + + /* + * TODO by locality of reference, start by trying the same triangle + * as last time + */ + + /* TODO put these constants in as radians to begin with */ + c = constants<T>()[SNYDER_POLY_ICOSAHEDRON]; + theta = c.theta * geometry::math::d2r<T>(); + g = c.g * geometry::math::d2r<T>(); + G = c.G * geometry::math::d2r<T>(); + + for (i = 1; i <= 20; i++) { + T z; + isea_geo<T> center; + + center = icostriangles<T>()[i]; + + /* step 1 */ + #if 0 + z = sph_distance(center.lon, center.lat, ll->lon, ll->lat); + #else + z = acos(sin(center.lat) * sin(ll->lat) + + cos(center.lat) * cos(ll->lat) * cos(ll->lon - center.lon)); + #endif + + /* not on this triangle */ + if (z > g + 0.000005) { /* TODO DBL_EPSILON */ + continue; + } + Az = sph_azimuth(ll->lon, ll->lat, center.lon, center.lat); + + Az = atan2(cos(ll->lat) * sin(ll->lon - center.lon), + cos(center.lat) * sin(ll->lat) + - sin(center.lat) * cos(ll->lat) * cos(ll->lon - center.lon) + ); + + /* step 2 */ + + /* This calculates "some" vertex coordinate */ + az_offset = az_adjustment<T>(i); + + Az -= az_offset; + + /* TODO I don't know why we do this. It's not in snyder */ + /* maybe because we should have picked a better vertex */ + if (Az < 0.0) { + Az += geometry::math::two_pi<T>(); + } + /* + * adjust Az for the point to fall within the range of 0 to + * 2(90 - theta) or 60 degrees for the hexagon, by + * and therefore 120 degrees for the triangle + * of the icosahedron + * subtracting or adding multiples of 60 degrees to Az and + * recording the amount of adjustment + */ + + Az_adjust_multiples = 0; + while (Az < 0.0) { + Az += DEG120<T>(); + Az_adjust_multiples--; + } + while (Az > DEG120<T>() + DBL_EPSILON) { + Az -= DEG120<T>(); + Az_adjust_multiples++; + } + + /* step 3 */ + cot_theta = 1.0 / tan(theta); + tan_g = tan(g); /* TODO this is a constant */ + + /* Calculate q from eq 9. */ + /* TODO cot_theta is cot(30) */ + q = atan2(tan_g, cos(Az) + sin(Az) * cot_theta); + + /* not in this triangle */ + if (z > q + 0.000005) { + continue; + } + /* step 4 */ + + /* Apply equations 5-8 and 10-12 in order */ + + /* eq 5 */ + /* Rprime = 0.9449322893 * R; */ + /* R' in the paper is for the truncated */ + Rprime = 0.91038328153090290025; + + /* eq 6 */ + H = acos(sin(Az) * sin(G) * cos(g) - cos(Az) * cos(G)); + + /* eq 7 */ + /* Ag = (Az + G + H - DEG180) * M_PI * R * R / DEG180; */ + Ag = Az + G + H - DEG180<T>(); + + /* eq 8 */ + Azprime = atan2(2.0 * Ag, Rprime * Rprime * tan_g * tan_g - 2.0 * Ag * cot_theta); + + /* eq 10 */ + /* cot(theta) = 1.73205080756887729355 */ + dprime = Rprime * tan_g / (cos(Azprime) + sin(Azprime) * cot_theta); + + /* eq 11 */ + f = dprime / (2.0 * Rprime * sin(q / 2.0)); + + /* eq 12 */ + rho = 2.0 * Rprime * f * sin(z / 2.0); + + /* + * add back the same 60 degree multiple adjustment from step + * 2 to Azprime + */ + + Azprime += DEG120<T>() * Az_adjust_multiples; + + /* calculate rectangular coordinates */ + + x = rho * sin(Azprime); + y = rho * cos(Azprime); + + /* + * TODO + * translate coordinates to the origin for the particular + * hexagon on the flattened polyhedral map plot + */ + + out->x = x; + out->y = y; + + return i; + } + + /* + * should be impossible, this implies that the coordinate is not on + * any triangle + */ + + //fprintf(stderr, "impossible transform: %f %f is not on any triangle\n", + // ll->lon * geometry::math::r2d<double>(), ll->lat * geometry::math::r2d<double>()); + std::stringstream ss; + ss << "impossible transform: " << ll->lon * geometry::math::r2d<T>() + << " " << ll->lat * geometry::math::r2d<T>() << " is not on any triangle."; + + BOOST_THROW_EXCEPTION( projection_exception(ss.str()) ); + + /* not reached */ + return 0; /* supresses a warning */ + } + + /* + * return the new coordinates of any point in orginal coordinate system. + * Define a point (newNPold) in orginal coordinate system as the North Pole in + * new coordinate system, and the great circle connect the original and new + * North Pole as the lon0 longitude in new coordinate system, given any point + * in orginal coordinate system, this function return the new coordinates. + */ + + + /* formula from Snyder, Map Projections: A working manual, p31 */ + /* + * old north pole at np in new coordinates + * could be simplified a bit with fewer intermediates + * + * TODO take a result pointer + */ + template <typename T> + inline isea_geo<T> snyder_ctran(isea_geo<T> * np, isea_geo<T> * pt) + { + isea_geo<T> npt; + T alpha, phi, lambda, lambda0, beta, lambdap, phip; + T sin_phip; + T lp_b; /* lambda prime minus beta */ + T cos_p, sin_a; + + phi = pt->lat; + lambda = pt->lon; + alpha = np->lat; + beta = np->lon; + lambda0 = beta; + + cos_p = cos(phi); + sin_a = sin(alpha); + + /* mpawm 5-7 */ + sin_phip = sin_a * sin(phi) - cos(alpha) * cos_p * cos(lambda - lambda0); + + /* mpawm 5-8b */ + + /* use the two argument form so we end up in the right quadrant */ + lp_b = atan2(cos_p * sin(lambda - lambda0), + (sin_a * cos_p * cos(lambda - lambda0) + cos(alpha) * sin(phi))); + + lambdap = lp_b + beta; + + /* normalize longitude */ + /* TODO can we just do a modulus ? */ + lambdap = fmod(lambdap, geometry::math::two_pi<T>()); + while (lambdap > geometry::math::pi<T>()) + lambdap -= geometry::math::two_pi<T>(); + while (lambdap < -geometry::math::pi<T>()) + lambdap += geometry::math::two_pi<T>(); + + phip = asin(sin_phip); + + npt.lat = phip; + npt.lon = lambdap; + + return npt; + } + + template <typename T> + inline isea_geo<T> isea_ctran(isea_geo<T> * np, isea_geo<T> * pt, T const& lon0) + { + isea_geo<T> npt; + + np->lon += geometry::math::pi<T>(); + npt = snyder_ctran(np, pt); + np->lon -= geometry::math::pi<T>(); + + npt.lon -= (geometry::math::pi<T>() - lon0 + np->lon); + + /* + * snyder is down tri 3, isea is along side of tri1 from vertex 0 to + * vertex 1 these are 180 degrees apart + */ + npt.lon += geometry::math::pi<T>(); + /* normalize longitude */ + npt.lon = fmod(npt.lon, geometry::math::two_pi<T>()); + while (npt.lon > geometry::math::pi<T>()) + npt.lon -= geometry::math::two_pi<T>(); + while (npt.lon < -geometry::math::pi<T>()) + npt.lon += geometry::math::two_pi<T>(); + + return npt; + } + + /* in radians */ + + /* fuller's at 5.2454 west, 2.3009 N, adjacent at 7.46658 deg */ + + template <typename T> + inline int isea_grid_init(isea_dgg<T> * g) + { + if (!g) + return 0; + + g->polyhedron = 20; + g->o_lat = ISEA_STD_LAT; + g->o_lon = ISEA_STD_LON; + g->o_az = 0.0; + g->aperture = 4; + g->resolution = 6; + g->radius = 1.0; + g->topology = 6; + + return 1; + } + + template <typename T> + inline int isea_orient_isea(isea_dgg<T> * g) + { + if (!g) + return 0; + g->o_lat = ISEA_STD_LAT; + g->o_lon = ISEA_STD_LON; + g->o_az = 0.0; + return 1; + } + + template <typename T> + inline int isea_orient_pole(isea_dgg<T> * g) + { + if (!g) + return 0; + g->o_lat = geometry::math::half_pi<T>(); + g->o_lon = 0.0; + g->o_az = 0; + return 1; + } + + template <typename T> + inline int isea_transform(isea_dgg<T> * g, isea_geo<T> * in, + isea_pt<T> * out) + { + isea_geo<T> i, pole; + int tri; + + pole.lat = g->o_lat; + pole.lon = g->o_lon; + + i = isea_ctran(&pole, in, g->o_az); + + tri = isea_snyder_forward(&i, out); + out->x *= g->radius; + out->y *= g->radius; + g->triangle = tri; + + return tri; + } + + + template <typename T> + inline void isea_rotate(isea_pt<T> * pt, T const& degrees) + { + T rad; + + T x, y; + + rad = -degrees * geometry::math::d2r<T>(); + while (rad >= geometry::math::two_pi<T>()) rad -= geometry::math::two_pi<T>(); + while (rad <= -geometry::math::two_pi<T>()) rad += geometry::math::two_pi<T>(); + + x = pt->x * cos(rad) + pt->y * sin(rad); + y = -pt->x * sin(rad) + pt->y * cos(rad); + + pt->x = x; + pt->y = y; + } + + template <typename T> + inline int isea_tri_plane(int tri, isea_pt<T> *pt, T const& radius) + { + isea_pt<T> tc; /* center of triangle */ + + if (DOWNTRI(tri)) { + isea_rotate(pt, 180.0); + } + tc = isea_triangle_xy<T>(tri); + tc.x *= radius; + tc.y *= radius; + pt->x += tc.x; + pt->y += tc.y; + + return tri; + } + + /* convert projected triangle coords to quad xy coords, return quad number */ + template <typename T> + inline int isea_ptdd(int tri, isea_pt<T> *pt) + { + int downtri, quad; + + downtri = (((tri - 1) / 5) % 2 == 1); + boost::ignore_unused(downtri); + quad = ((tri - 1) % 5) + ((tri - 1) / 10) * 5 + 1; + + isea_rotate(pt, downtri ? 240.0 : 60.0); + if (downtri) { + pt->x += 0.5; + /* pt->y += cos(30.0 * M_PI / 180.0); */ + pt->y += .86602540378443864672; + } + return quad; + } + + template <typename T> + inline int isea_dddi_ap3odd(isea_dgg<T> *g, int quad, isea_pt<T> *pt, isea_pt<T> *di) + { + isea_pt<T> v; + T hexwidth; + T sidelength; /* in hexes */ + int d, i; + int maxcoord; + hex h; + + /* This is the number of hexes from apex to base of a triangle */ + sidelength = (pow(2.0, g->resolution) + 1.0) / 2.0; + + /* apex to base is cos(30deg) */ + hexwidth = cos(geometry::math::pi<T>() / 6.0) / sidelength; + + /* TODO I think sidelength is always x.5, so + * (int)sidelength * 2 + 1 might be just as good + */ + maxcoord = (int) (sidelength * 2.0 + 0.5); + + v = *pt; + hexbin2(hexwidth, v.x, v.y, &h.x, &h.y); + h.iso = 0; + hex_iso(&h); + + d = h.x - h.z; + i = h.x + h.y + h.y; + + /* + * you want to test for max coords for the next quad in the same + * "row" first to get the case where both are max + */ + if (quad <= 5) { + if (d == 0 && i == maxcoord) { + /* north pole */ + quad = 0; + d = 0; + i = 0; + } else if (i == maxcoord) { + /* upper right in next quad */ + quad += 1; + if (quad == 6) + quad = 1; + i = maxcoord - d; + d = 0; + } else if (d == maxcoord) { + /* lower right in quad to lower right */ + quad += 5; + d = 0; + } + } else if (quad >= 6) { + if (i == 0 && d == maxcoord) { + /* south pole */ + quad = 11; + d = 0; + i = 0; + } else if (d == maxcoord) { + /* lower right in next quad */ + quad += 1; + if (quad == 11) + quad = 6; + d = maxcoord - i; + i = 0; + } else if (i == maxcoord) { + /* upper right in quad to upper right */ + quad = (quad - 4) % 5; + i = 0; + } + } + + di->x = d; + di->y = i; + + g->quad = quad; + return quad; + } + + template <typename T> + inline int isea_dddi(isea_dgg<T> *g, int quad, isea_pt<T> *pt, isea_pt<T> *di) + { + isea_pt<T> v; + T hexwidth; + int sidelength; /* in hexes */ + hex h; + + if (g->aperture == 3 && g->resolution % 2 != 0) { + return isea_dddi_ap3odd(g, quad, pt, di); + } + /* todo might want to do this as an iterated loop */ + if (g->aperture >0) { + sidelength = (int) (pow(T(g->aperture), T(g->resolution / 2.0)) + 0.5); + } else { + sidelength = g->resolution; + } + + hexwidth = 1.0 / sidelength; + + v = *pt; + isea_rotate(&v, -30.0); + hexbin2(hexwidth, v.x, v.y, &h.x, &h.y); + h.iso = 0; + hex_iso(&h); + + /* we may actually be on another quad */ + if (quad <= 5) { + if (h.x == 0 && h.z == -sidelength) { + /* north pole */ + quad = 0; + h.z = 0; + h.y = 0; + h.x = 0; + } else if (h.z == -sidelength) { + quad = quad + 1; + if (quad == 6) + quad = 1; + h.y = sidelength - h.x; + h.z = h.x - sidelength; + h.x = 0; + } else if (h.x == sidelength) { + quad += 5; + h.y = -h.z; + h.x = 0; + } + } else if (quad >= 6) { + if (h.z == 0 && h.x == sidelength) { + /* south pole */ + quad = 11; + h.x = 0; + h.y = 0; + h.z = 0; + } else if (h.x == sidelength) { + quad = quad + 1; + if (quad == 11) + quad = 6; + h.x = h.y + sidelength; + h.y = 0; + h.z = -h.x; + } else if (h.y == -sidelength) { + quad -= 4; + h.y = 0; + h.z = -h.x; + } + } + di->x = h.x; + di->y = -h.z; + + g->quad = quad; + return quad; + } + + template <typename T> + inline int isea_ptdi(isea_dgg<T> *g, int tri, isea_pt<T> *pt, + isea_pt<T> *di) + { + isea_pt<T> v; + int quad; + + v = *pt; + quad = isea_ptdd(tri, &v); + quad = isea_dddi(g, quad, &v, di); + return quad; + } + + /* q2di to seqnum */ + template <typename T> + inline int isea_disn(isea_dgg<T> *g, int quad, isea_pt<T> *di) + { + int sidelength; + int sn, height; + int hexes; + + if (quad == 0) { + g->serial = 1; + return g->serial; + } + /* hexes in a quad */ + hexes = (int) (pow(T(g->aperture), T(g->resolution)) + 0.5); + if (quad == 11) { + g->serial = 1 + 10 * hexes + 1; + return g->serial; + } + if (g->aperture == 3 && g->resolution % 2 == 1) { + height = (int) (pow(T(g->aperture), T((g->resolution - 1) / 2.0))); + sn = ((int) di->x) * height; + sn += ((int) di->y) / height; + sn += (quad - 1) * hexes; + sn += 2; + } else { + sidelength = (int) (pow(T(g->aperture), T(g->resolution / 2.0)) + 0.5); + sn = (int) ((quad - 1) * hexes + sidelength * di->x + di->y + 2); + } + + g->serial = sn; + return sn; + } + + /* TODO just encode the quad in the d or i coordinate + * quad is 0-11, which can be four bits. + * d' = d << 4 + q, d = d' >> 4, q = d' & 0xf + */ + /* convert a q2di to global hex coord */ + template <typename T> + inline int isea_hex(isea_dgg<T> *g, int tri, isea_pt<T> *pt, + isea_pt<T> *hex) + { + isea_pt<T> v; +#ifdef BOOST_GEOMETRY_PROJECTIONS_FIXME + int sidelength; + int d, i, x, y; +#endif // BOOST_GEOMETRY_PROJECTIONS_FIXME + int quad; + + quad = isea_ptdi(g, tri, pt, &v); + + hex->x = ((int)v.x << 4) + quad; + hex->y = v.y; + + return 1; +#ifdef BOOST_GEOMETRY_PROJECTIONS_FIXME + d = (int)v.x; + i = (int)v.y; + + /* Aperture 3 odd resolutions */ + if (g->aperture == 3 && g->resolution % 2 != 0) { + int offset = (int)(pow(T(3.0), T(g->resolution - 1)) + 0.5); + + d += offset * ((g->quad-1) % 5); + i += offset * ((g->quad-1) % 5); + + if (quad == 0) { + d = 0; + i = offset; + } else if (quad == 11) { + d = 2 * offset; + i = 0; + } else if (quad > 5) { + d += offset; + } + + x = (2*d - i) /3; + y = (2*i - d) /3; + + hex->x = x + offset / 3; + hex->y = y + 2 * offset / 3; + return 1; + } + + /* aperture 3 even resolutions and aperture 4 */ + sidelength = (int) (pow(T(g->aperture), T(g->resolution / 2.0)) + 0.5); + if (g->quad == 0) { + hex->x = 0; + hex->y = sidelength; + } else if (g->quad == 11) { + hex->x = sidelength * 2; + hex->y = 0; + } else { + hex->x = d + sidelength * ((g->quad-1) % 5); + if (g->quad > 5) hex->x += sidelength; + hex->y = i + sidelength * ((g->quad-1) % 5); + } + + return 1; +#endif // BOOST_GEOMETRY_PROJECTIONS_FIXME + } + + template <typename T> + inline isea_pt<T> isea_forward(isea_dgg<T> *g, isea_geo<T> *in) + { + int tri, downtri; + isea_pt<T> out, coord; + + tri = isea_transform(g, in, &out); + + downtri = (((tri - 1) / 5) % 2 == 1); + boost::ignore_unused(downtri); + + if (g->output == ISEA_PLANE) { + isea_tri_plane(tri, &out, g->radius); + return out; + } + + /* convert to isea standard triangle size */ + out.x = out.x / g->radius * ISEA_SCALE; + out.y = out.y / g->radius * ISEA_SCALE; + out.x += 0.5; + out.y += 2.0 * .14433756729740644112; + + switch (g->output) { + case ISEA_PROJTRI: + /* nothing to do, already in projected triangle */ + break; + case ISEA_VERTEX2DD: + g->quad = isea_ptdd(tri, &out); + break; + case ISEA_Q2DD: + /* Same as above, we just don't print as much */ + g->quad = isea_ptdd(tri, &out); + break; + case ISEA_Q2DI: + g->quad = isea_ptdi(g, tri, &out, &coord); + return coord; + break; + case ISEA_SEQNUM: + isea_ptdi(g, tri, &out, &coord); + /* disn will set g->serial */ + isea_disn(g, g->quad, &coord); + return coord; + break; + case ISEA_HEX: + isea_hex(g, tri, &out, &coord); + return coord; + break; + } + + return out; + } + /* + * Proj 4 integration code follows + */ + + template <typename T> + struct par_isea + { + isea_dgg<T> dgg; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_isea_spheroid : public base_t_f<base_isea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_isea<CalculationType> m_proj_parm; + + inline base_isea_spheroid(const Parameters& par) + : base_t_f<base_isea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + isea_pt<CalculationType> out; + isea_geo<CalculationType> in; + + in.lon = lp_lon; + in.lat = lp_lat; + + isea_dgg<CalculationType> copy = this->m_proj_parm.dgg; + out = isea_forward(©, &in); + + xy_x = out.x; + xy_y = out.y; + } + + static inline std::string get_name() + { + return "isea_spheroid"; + } + + }; + + // Icosahedral Snyder Equal Area + template <typename Parameters, typename T> + inline void setup_isea(Parameters& par, par_isea<T>& proj_parm) + { + std::string opt; + + isea_grid_init(&proj_parm.dgg); + + proj_parm.dgg.output = ISEA_PLANE; + /* proj_parm.dgg.radius = par.a; / * otherwise defaults to 1 */ + /* calling library will scale, I think */ + + opt = pj_param(par.params, "sorient").s; + if (! opt.empty()) { + if (opt == std::string("isea")) { + isea_orient_isea(&proj_parm.dgg); + } else if (opt == std::string("pole")) { + isea_orient_pole(&proj_parm.dgg); + } else { + BOOST_THROW_EXCEPTION( projection_exception(-34) ); + } + } + + if (pj_param(par.params, "tazi").i) { + proj_parm.dgg.o_az = pj_param(par.params, "razi").f; + } + + if (pj_param(par.params, "tlon_0").i) { + proj_parm.dgg.o_lon = pj_param(par.params, "rlon_0").f; + } + + if (pj_param(par.params, "tlat_0").i) { + proj_parm.dgg.o_lat = pj_param(par.params, "rlat_0").f; + } + + if (pj_param(par.params, "taperture").i) { + proj_parm.dgg.aperture = pj_param(par.params, "iaperture").i; + } + + if (pj_param(par.params, "tresolution").i) { + proj_parm.dgg.resolution = pj_param(par.params, "iresolution").i; + } + + opt = pj_param(par.params, "smode").s; + if (! opt.empty()) { + if (opt == std::string("plane")) { + proj_parm.dgg.output = ISEA_PLANE; + } else if (opt == std::string("di")) { + proj_parm.dgg.output = ISEA_Q2DI; + } + else if (opt == std::string("dd")) { + proj_parm.dgg.output = ISEA_Q2DD; + } + else if (opt == std::string("hex")) { + proj_parm.dgg.output = ISEA_HEX; + } + else { + /* TODO verify error code. Possibly eliminate magic */ + BOOST_THROW_EXCEPTION( projection_exception(-34) ); + } + } + + if (pj_param(par.params, "trescale").i) { + proj_parm.dgg.radius = ISEA_SCALE; + } + + if (pj_param(par.params, "tresolution").i) { + proj_parm.dgg.resolution = pj_param(par.params, "iresolution").i; + } else { + proj_parm.dgg.resolution = 4; + } + + if (pj_param(par.params, "taperture").i) { + proj_parm.dgg.aperture = pj_param(par.params, "iaperture").i; + } else { + proj_parm.dgg.aperture = 3; + } + } + + }} // namespace detail::isea + #endif // doxygen + + /*! + \brief Icosahedral Snyder Equal Area projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Spheroid + \par Projection parameters + - orient (string) + - azi: Azimuth (or Gamma) (degrees) + - lon_0: Central meridian (degrees) + - lat_0: Latitude of origin (degrees) + - aperture (integer) + - resolution (integer) + - mode (string) + - rescale + \par Example + \image html ex_isea.gif + */ + template <typename CalculationType, typename Parameters> + struct isea_spheroid : public detail::isea::base_isea_spheroid<CalculationType, Parameters> + { + inline isea_spheroid(const Parameters& par) : detail::isea::base_isea_spheroid<CalculationType, Parameters>(par) + { + detail::isea::setup_isea(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::isea, isea_spheroid, isea_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class isea_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<isea_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void isea_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("isea", new isea_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_ISEA_HPP + diff --git a/boost/geometry/srs/projections/proj/krovak.hpp b/boost/geometry/srs/projections/proj/krovak.hpp new file mode 100644 index 0000000000..09c24772ed --- /dev/null +++ b/boost/geometry/srs/projections/proj/krovak.hpp @@ -0,0 +1,360 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_KROVAK_HPP +#define BOOST_GEOMETRY_PROJECTIONS_KROVAK_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Purpose: Implementation of the krovak (Krovak) projection. +// Definition: http://www.ihsenergy.com/epsg/guid7.html#1.4.3 +// Author: Thomas Flemming, tf@ttqv.com +// Copyright (c) 2001, Thomas Flemming, tf@ttqv.com + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct krovak {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace krovak + { + template <typename T> + struct par_krovak + { + T C_x; + }; + + /** + NOTES: According to EPSG the full Krovak projection method should have + the following parameters. Within PROJ.4 the azimuth, and pseudo + standard parallel are hardcoded in the algorithm and can't be + altered from outside. The others all have defaults to match the + common usage with Krovak projection. + + lat_0 = latitude of centre of the projection + + lon_0 = longitude of centre of the projection + + ** = azimuth (true) of the centre line passing through the centre of the projection + + ** = latitude of pseudo standard parallel + + k = scale factor on the pseudo standard parallel + + x_0 = False Easting of the centre of the projection at the apex of the cone + + y_0 = False Northing of the centre of the projection at the apex of the cone + + **/ + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_krovak_ellipsoid : public base_t_fi<base_krovak_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_krovak<CalculationType> m_proj_parm; + + inline base_krovak_ellipsoid(const Parameters& par) + : base_t_fi<base_krovak_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + /* calculate xy from lat/lon */ + + /* Constants, identical to inverse transform function */ + CalculationType s45, s90, e2, e, alfa, uq, u0, g, k, k1, n0, ro0, ad, a, s0, n; + CalculationType gfi, u, fi0, deltav, s, d, eps, ro; + + + s45 = 0.785398163397448; /* 45 DEG */ + s90 = 2 * s45; + fi0 = this->m_par.phi0; /* Latitude of projection centre 49 DEG 30' */ + + /* Ellipsoid is used as Parameter in for.c and inv.c, therefore a must + be set to 1 here. + Ellipsoid Bessel 1841 a = 6377397.155m 1/f = 299.1528128, + e2=0.006674372230614; + */ + a = 1; /* 6377397.155; */ + /* e2 = this->m_par.es;*/ /* 0.006674372230614; */ + e2 = 0.006674372230614; + e = sqrt(e2); + + alfa = sqrt(1. + (e2 * pow(cos(fi0), 4)) / (1. - e2)); + + uq = 1.04216856380474; /* DU(2, 59, 42, 42.69689) */ + u0 = asin(sin(fi0) / alfa); + g = pow( (1. + e * sin(fi0)) / (1. - e * sin(fi0)) , alfa * e / 2. ); + + k = tan( u0 / 2. + s45) / pow (tan(fi0 / 2. + s45) , alfa) * g; + + k1 = this->m_par.k0; + n0 = a * sqrt(1. - e2) / (1. - e2 * pow(sin(fi0), 2)); + s0 = 1.37008346281555; /* Latitude of pseudo standard parallel 78 DEG 30'00" N */ + n = sin(s0); + ro0 = k1 * n0 / tan(s0); + ad = s90 - uq; + + /* Transformation */ + + gfi =pow ( ((1. + e * sin(lp_lat)) / + (1. - e * sin(lp_lat))) , (alfa * e / 2.)); + + u= 2. * (atan(k * pow( tan(lp_lat / 2. + s45), alfa) / gfi)-s45); + + deltav = - lp_lon * alfa; + + s = asin(cos(ad) * sin(u) + sin(ad) * cos(u) * cos(deltav)); + d = asin(cos(u) * sin(deltav) / cos(s)); + eps = n * d; + ro = ro0 * pow(tan(s0 / 2. + s45) , n) / pow(tan(s / 2. + s45) , n) ; + + /* x and y are reverted! */ + xy_y = ro * cos(eps) / a; + xy_x = ro * sin(eps) / a; + + if( !pj_param(this->m_par.params, "tczech").i ) + { + xy_y *= -1.0; + xy_x *= -1.0; + } + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + /* calculate lat/lon from xy */ + + /* Constants, identisch wie in der Umkehrfunktion */ + CalculationType s45, s90, fi0, e2, e, alfa, uq, u0, g, k, k1, n0, ro0, ad, a, s0, n; + CalculationType u, deltav, s, d, eps, ro, fi1, xy0; + int ok; + + s45 = 0.785398163397448; /* 45 DEG */ + s90 = 2 * s45; + fi0 = this->m_par.phi0; /* Latitude of projection centre 49 DEG 30' */ + + + /* Ellipsoid is used as Parameter in for.c and inv.c, therefore a must + be set to 1 here. + Ellipsoid Bessel 1841 a = 6377397.155m 1/f = 299.1528128, + e2=0.006674372230614; + */ + a = 1; /* 6377397.155; */ + /* e2 = this->m_par.es; */ /* 0.006674372230614; */ + e2 = 0.006674372230614; + e = sqrt(e2); + + alfa = sqrt(1. + (e2 * pow(cos(fi0), 4)) / (1. - e2)); + uq = 1.04216856380474; /* DU(2, 59, 42, 42.69689) */ + u0 = asin(sin(fi0) / alfa); + g = pow( (1. + e * sin(fi0)) / (1. - e * sin(fi0)) , alfa * e / 2. ); + + k = tan( u0 / 2. + s45) / pow (tan(fi0 / 2. + s45) , alfa) * g; + + k1 = this->m_par.k0; + n0 = a * sqrt(1. - e2) / (1. - e2 * pow(sin(fi0), 2)); + s0 = 1.37008346281555; /* Latitude of pseudo standard parallel 78 DEG 30'00" N */ + n = sin(s0); + ro0 = k1 * n0 / tan(s0); + ad = s90 - uq; + + + /* Transformation */ + /* revert y, x*/ + xy0=xy_x; + xy_x=xy_y; + xy_y=xy0; + + if( !pj_param(this->m_par.params, "tczech").i ) + { + xy_x *= -1.0; + xy_y *= -1.0; + } + + ro = sqrt(xy_x * xy_x + xy_y * xy_y); + eps = atan2(xy_y, xy_x); + d = eps / sin(s0); + s = 2. * (atan( pow(ro0 / ro, 1. / n) * tan(s0 / 2. + s45)) - s45); + + u = asin(cos(ad) * sin(s) - sin(ad) * cos(s) * cos(d)); + deltav = asin(cos(s) * sin(d) / cos(u)); + + lp_lon = this->m_par.lam0 - deltav / alfa; + + /* ITERATION FOR lp_lat */ + fi1 = u; + + ok = 0; + do + { + lp_lat = 2. * ( atan( pow( k, -1. / alfa) * + pow( tan(u / 2. + s45) , 1. / alfa) * + pow( (1. + e * sin(fi1)) / (1. - e * sin(fi1)) , e / 2.) + ) - s45); + + if (fabs(fi1 - lp_lat) < 0.000000000000001) ok=1; + fi1 = lp_lat; + + } + while (ok==0); + + lp_lon -= this->m_par.lam0; + } + + static inline std::string get_name() + { + return "krovak_ellipsoid"; + } + + }; + + // Krovak + template <typename Parameters, typename T> + inline void setup_krovak(Parameters& par, par_krovak<T>& proj_parm) + { + T ts; + /* read some Parameters, + * here Latitude Truescale */ + + ts = pj_param(par.params, "rlat_ts").f; + proj_parm.C_x = ts; + + /* we want Bessel as fixed ellipsoid */ + par.a = 6377397.155; + par.e = sqrt(par.es = 0.006674372230614); + + /* if latitude of projection center is not set, use 49d30'N */ + if (!pj_param(par.params, "tlat_0").i) + par.phi0 = 0.863937979737193; + + /* if center long is not set use 42d30'E of Ferro - 17d40' for Ferro */ + /* that will correspond to using longitudes relative to greenwich */ + /* as input and output, instead of lat/long relative to Ferro */ + if (!pj_param(par.params, "tlon_0").i) + par.lam0 = 0.7417649320975901 - 0.308341501185665; + + /* if scale not set default to 0.9999 */ + if (!pj_param(par.params, "tk").i) + par.k0 = 0.9999; + + /* always the same */ + } + + }} // namespace detail::krovak + #endif // doxygen + + /*! + \brief Krovak projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Ellipsoid + \par Projection parameters + - lat_ts: Latitude of true scale (degrees) + - lat_0: Latitude of origin + - lon_0: Central meridian + - k: Scale factor on the pseudo standard parallel + \par Example + \image html ex_krovak.gif + */ + template <typename CalculationType, typename Parameters> + struct krovak_ellipsoid : public detail::krovak::base_krovak_ellipsoid<CalculationType, Parameters> + { + inline krovak_ellipsoid(const Parameters& par) : detail::krovak::base_krovak_ellipsoid<CalculationType, Parameters>(par) + { + detail::krovak::setup_krovak(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::krovak, krovak_ellipsoid, krovak_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class krovak_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<krovak_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void krovak_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("krovak", new krovak_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_KROVAK_HPP + diff --git a/boost/geometry/srs/projections/proj/labrd.hpp b/boost/geometry/srs/projections/proj/labrd.hpp new file mode 100644 index 0000000000..0a51689308 --- /dev/null +++ b/boost/geometry/srs/projections/proj/labrd.hpp @@ -0,0 +1,269 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_LABRD_HPP +#define BOOST_GEOMETRY_PROJECTIONS_LABRD_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct labrd {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace labrd + { + static const double EPS = 1.e-10; + + template <typename T> + struct par_labrd + { + T Az, kRg, p0s, A, C, Ca, Cb, Cc, Cd; + int rot; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_labrd_ellipsoid : public base_t_fi<base_labrd_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_labrd<CalculationType> m_proj_parm; + + inline base_labrd_ellipsoid(const Parameters& par) + : base_t_fi<base_labrd_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + + CalculationType V1, V2, ps, sinps, cosps, sinps2, cosps2, I1, I2, I3, I4, I5, I6, + x2, y2, t; + + V1 = this->m_proj_parm.A * log( tan(FORTPI + .5 * lp_lat) ); + t = this->m_par.e * sin(lp_lat); + V2 = .5 * this->m_par.e * this->m_proj_parm.A * log ((1. + t)/(1. - t)); + ps = 2. * (atan(exp(V1 - V2 + this->m_proj_parm.C)) - FORTPI); + I1 = ps - this->m_proj_parm.p0s; + cosps = cos(ps); cosps2 = cosps * cosps; + sinps = sin(ps); sinps2 = sinps * sinps; + I4 = this->m_proj_parm.A * cosps; + I2 = .5 * this->m_proj_parm.A * I4 * sinps; + I3 = I2 * this->m_proj_parm.A * this->m_proj_parm.A * (5. * cosps2 - sinps2) / 12.; + I6 = I4 * this->m_proj_parm.A * this->m_proj_parm.A; + I5 = I6 * (cosps2 - sinps2) / 6.; + I6 *= this->m_proj_parm.A * this->m_proj_parm.A * + (5. * cosps2 * cosps2 + sinps2 * (sinps2 - 18. * cosps2)) / 120.; + t = lp_lon * lp_lon; + xy_x = this->m_proj_parm.kRg * lp_lon * (I4 + t * (I5 + t * I6)); + xy_y = this->m_proj_parm.kRg * (I1 + t * (I2 + t * I3)); + x2 = xy_x * xy_x; + y2 = xy_y * xy_y; + V1 = 3. * xy_x * y2 - xy_x * x2; + V2 = xy_y * y2 - 3. * x2 * xy_y; + xy_x += this->m_proj_parm.Ca * V1 + this->m_proj_parm.Cb * V2; + xy_y += this->m_proj_parm.Ca * V2 - this->m_proj_parm.Cb * V1; + } + + // INVERSE(e_inverse) ellipsoid & spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + + CalculationType x2, y2, V1, V2, V3, V4, t, t2, ps, pe, tpe, s, + I7, I8, I9, I10, I11, d, Re; + int i; + + x2 = xy_x * xy_x; + y2 = xy_y * xy_y; + V1 = 3. * xy_x * y2 - xy_x * x2; + V2 = xy_y * y2 - 3. * x2 * xy_y; + V3 = xy_x * (5. * y2 * y2 + x2 * (-10. * y2 + x2 )); + V4 = xy_y * (5. * x2 * x2 + y2 * (-10. * x2 + y2 )); + xy_x += - this->m_proj_parm.Ca * V1 - this->m_proj_parm.Cb * V2 + this->m_proj_parm.Cc * V3 + this->m_proj_parm.Cd * V4; + xy_y += this->m_proj_parm.Cb * V1 - this->m_proj_parm.Ca * V2 - this->m_proj_parm.Cd * V3 + this->m_proj_parm.Cc * V4; + ps = this->m_proj_parm.p0s + xy_y / this->m_proj_parm.kRg; + pe = ps + this->m_par.phi0 - this->m_proj_parm.p0s; + for ( i = 20; i; --i) { + V1 = this->m_proj_parm.A * log(tan(FORTPI + .5 * pe)); + tpe = this->m_par.e * sin(pe); + V2 = .5 * this->m_par.e * this->m_proj_parm.A * log((1. + tpe)/(1. - tpe)); + t = ps - 2. * (atan(exp(V1 - V2 + this->m_proj_parm.C)) - FORTPI); + pe += t; + if (fabs(t) < EPS) + break; + } + /* + if (!i) { + } else { + } + */ + t = this->m_par.e * sin(pe); + t = 1. - t * t; + Re = this->m_par.one_es / ( t * sqrt(t) ); + t = tan(ps); + t2 = t * t; + s = this->m_proj_parm.kRg * this->m_proj_parm.kRg; + d = Re * this->m_par.k0 * this->m_proj_parm.kRg; + I7 = t / (2. * d); + I8 = t * (5. + 3. * t2) / (24. * d * s); + d = cos(ps) * this->m_proj_parm.kRg * this->m_proj_parm.A; + I9 = 1. / d; + d *= s; + I10 = (1. + 2. * t2) / (6. * d); + I11 = (5. + t2 * (28. + 24. * t2)) / (120. * d * s); + x2 = xy_x * xy_x; + lp_lat = pe + x2 * (-I7 + I8 * x2); + lp_lon = xy_x * (I9 + x2 * (-I10 + x2 * I11)); + } + + static inline std::string get_name() + { + return "labrd_ellipsoid"; + } + + }; + + // Laborde + template <typename Parameters, typename T> + inline void setup_labrd(Parameters& par, par_labrd<T>& proj_parm) + { + static const T FORTPI = detail::FORTPI<T>(); + + T Az, sinp, R, N, t; + + proj_parm.rot = pj_param(par.params, "bno_rot").i == 0; + Az = pj_param(par.params, "razi").f; + sinp = sin(par.phi0); + t = 1. - par.es * sinp * sinp; + N = 1. / sqrt(t); + R = par.one_es * N / t; + proj_parm.kRg = par.k0 * sqrt( N * R ); + proj_parm.p0s = atan( sqrt(R / N) * tan(par.phi0) ); + proj_parm.A = sinp / sin(proj_parm.p0s); + t = par.e * sinp; + proj_parm.C = .5 * par.e * proj_parm.A * log((1. + t)/(1. - t)) + + - proj_parm.A * log( tan(FORTPI + .5 * par.phi0)) + + log( tan(FORTPI + .5 * proj_parm.p0s)); + t = Az + Az; + proj_parm.Ca = (1. - cos(t)) * ( proj_parm.Cb = 1. / (12. * proj_parm.kRg * proj_parm.kRg) ); + proj_parm.Cb *= sin(t); + proj_parm.Cc = 3. * (proj_parm.Ca * proj_parm.Ca - proj_parm.Cb * proj_parm.Cb); + proj_parm.Cd = 6. * proj_parm.Ca * proj_parm.Cb; + } + + }} // namespace detail::labrd + #endif // doxygen + + /*! + \brief Laborde projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Special for Madagascar + \par Projection parameters + - no_rot: No rotation (boolean) + - azi: Azimuth (or Gamma) (degrees) + \par Example + \image html ex_labrd.gif + */ + template <typename CalculationType, typename Parameters> + struct labrd_ellipsoid : public detail::labrd::base_labrd_ellipsoid<CalculationType, Parameters> + { + inline labrd_ellipsoid(const Parameters& par) : detail::labrd::base_labrd_ellipsoid<CalculationType, Parameters>(par) + { + detail::labrd::setup_labrd(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::labrd, labrd_ellipsoid, labrd_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class labrd_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<labrd_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void labrd_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("labrd", new labrd_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_LABRD_HPP + diff --git a/boost/geometry/srs/projections/proj/laea.hpp b/boost/geometry/srs/projections/proj/laea.hpp new file mode 100644 index 0000000000..757d2b7ff0 --- /dev/null +++ b/boost/geometry/srs/projections/proj/laea.hpp @@ -0,0 +1,447 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_LAEA_HPP +#define BOOST_GEOMETRY_PROJECTIONS_LAEA_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/config.hpp> +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_auth.hpp> +#include <boost/geometry/srs/projections/impl/pj_qsfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct laea {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace laea + { + static const double EPS10 = 1.e-10; + static const int NITER = 20; + static const double CONV = 1.e-10; + static const int N_POLE = 0; + static const int S_POLE = 1; + static const int EQUIT = 2; + static const int OBLIQ = 3; + + template <typename T> + struct par_laea + { + T sinb1; + T cosb1; + T xmf; + T ymf; + T mmf; + T qp; + T dd; + T rq; + T apa[APA_SIZE]; + int mode; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_laea_ellipsoid : public base_t_fi<base_laea_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_laea<CalculationType> m_proj_parm; + + inline base_laea_ellipsoid(const Parameters& par) + : base_t_fi<base_laea_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType coslam, sinlam, sinphi, q, sinb=0.0, cosb=0.0, b=0.0; + + coslam = cos(lp_lon); + sinlam = sin(lp_lon); + sinphi = sin(lp_lat); + q = pj_qsfn(sinphi, this->m_par.e, this->m_par.one_es); + if (this->m_proj_parm.mode == OBLIQ || this->m_proj_parm.mode == EQUIT) { + sinb = q / this->m_proj_parm.qp; + cosb = sqrt(1. - sinb * sinb); + } + switch (this->m_proj_parm.mode) { + case OBLIQ: + b = 1. + this->m_proj_parm.sinb1 * sinb + this->m_proj_parm.cosb1 * cosb * coslam; + break; + case EQUIT: + b = 1. + cosb * coslam; + break; + case N_POLE: + b = HALFPI + lp_lat; + q = this->m_proj_parm.qp - q; + break; + case S_POLE: + b = lp_lat - HALFPI; + q = this->m_proj_parm.qp + q; + break; + } + if (fabs(b) < EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + switch (this->m_proj_parm.mode) { + case OBLIQ: + xy_y = this->m_proj_parm.ymf * ( b = sqrt(2. / b) ) + * (this->m_proj_parm.cosb1 * sinb - this->m_proj_parm.sinb1 * cosb * coslam); + goto eqcon; + break; + case EQUIT: + xy_y = (b = sqrt(2. / (1. + cosb * coslam))) * sinb * this->m_proj_parm.ymf; + eqcon: + xy_x = this->m_proj_parm.xmf * b * cosb * sinlam; + break; + case N_POLE: + case S_POLE: + if (q >= 0.) { + xy_x = (b = sqrt(q)) * sinlam; + xy_y = coslam * (this->m_proj_parm.mode == S_POLE ? b : -b); + } else + xy_x = xy_y = 0.; + break; + } + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType cCe, sCe, q, rho, ab=0.0; + + switch (this->m_proj_parm.mode) { + case EQUIT: + case OBLIQ: + if ((rho = boost::math::hypot(xy_x /= this->m_proj_parm.dd, xy_y *= this->m_proj_parm.dd)) < EPS10) { + lp_lon = 0.; + lp_lat = this->m_par.phi0; + return; + } + cCe = cos(sCe = 2. * asin(.5 * rho / this->m_proj_parm.rq)); + xy_x *= (sCe = sin(sCe)); + if (this->m_proj_parm.mode == OBLIQ) { + q = this->m_proj_parm.qp * (ab = cCe * this->m_proj_parm.sinb1 + xy_y * sCe * this->m_proj_parm.cosb1 / rho); + xy_y = rho * this->m_proj_parm.cosb1 * cCe - xy_y * this->m_proj_parm.sinb1 * sCe; + } else { + q = this->m_proj_parm.qp * (ab = xy_y * sCe / rho); + xy_y = rho * cCe; + } + break; + case N_POLE: + xy_y = -xy_y; + BOOST_FALLTHROUGH; + case S_POLE: + if (!(q = (xy_x * xy_x + xy_y * xy_y)) ) { + lp_lon = 0.; + lp_lat = this->m_par.phi0; + return; + } + /* + q = this->m_proj_parm.qp - q; + */ + ab = 1. - q / this->m_proj_parm.qp; + if (this->m_proj_parm.mode == S_POLE) + ab = - ab; + break; + } + lp_lon = atan2(xy_x, xy_y); + lp_lat = pj_authlat(asin(ab), this->m_proj_parm.apa); + } + + static inline std::string get_name() + { + return "laea_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_laea_spheroid : public base_t_fi<base_laea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_laea<CalculationType> m_proj_parm; + + inline base_laea_spheroid(const Parameters& par) + : base_t_fi<base_laea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + + CalculationType coslam, cosphi, sinphi; + + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + coslam = cos(lp_lon); + switch (this->m_proj_parm.mode) { + case EQUIT: + xy_y = 1. + cosphi * coslam; + goto oblcon; + case OBLIQ: + xy_y = 1. + this->m_proj_parm.sinb1 * sinphi + this->m_proj_parm.cosb1 * cosphi * coslam; + oblcon: + if (xy_y <= EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_x = (xy_y = sqrt(2. / xy_y)) * cosphi * sin(lp_lon); + xy_y *= this->m_proj_parm.mode == EQUIT ? sinphi : + this->m_proj_parm.cosb1 * sinphi - this->m_proj_parm.sinb1 * cosphi * coslam; + break; + case N_POLE: + coslam = -coslam; + BOOST_FALLTHROUGH; + case S_POLE: + if (fabs(lp_lat + this->m_par.phi0) < EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_y = FORTPI - lp_lat * .5; + xy_y = 2. * (this->m_proj_parm.mode == S_POLE ? cos(xy_y) : sin(xy_y)); + xy_x = xy_y * sin(lp_lon); + xy_y *= coslam; + break; + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType cosz=0.0, rh, sinz=0.0; + + rh = boost::math::hypot(xy_x, xy_y); + if ((lp_lat = rh * .5 ) > 1.) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + lp_lat = 2. * asin(lp_lat); + if (this->m_proj_parm.mode == OBLIQ || this->m_proj_parm.mode == EQUIT) { + sinz = sin(lp_lat); + cosz = cos(lp_lat); + } + switch (this->m_proj_parm.mode) { + case EQUIT: + lp_lat = fabs(rh) <= EPS10 ? 0. : asin(xy_y * sinz / rh); + xy_x *= sinz; + xy_y = cosz * rh; + break; + case OBLIQ: + lp_lat = fabs(rh) <= EPS10 ? this->m_par.phi0 : + asin(cosz * this->m_proj_parm.sinb1 + xy_y * sinz * this->m_proj_parm.cosb1 / rh); + xy_x *= sinz * this->m_proj_parm.cosb1; + xy_y = (cosz - sin(lp_lat) * this->m_proj_parm.sinb1) * rh; + break; + case N_POLE: + xy_y = -xy_y; + lp_lat = HALFPI - lp_lat; + break; + case S_POLE: + lp_lat -= HALFPI; + break; + } + lp_lon = (xy_y == 0. && (this->m_proj_parm.mode == EQUIT || this->m_proj_parm.mode == OBLIQ)) ? + 0. : atan2(xy_x, xy_y); + } + + static inline std::string get_name() + { + return "laea_spheroid"; + } + + }; + + // Lambert Azimuthal Equal Area + template <typename Parameters, typename T> + inline void setup_laea(Parameters& par, par_laea<T>& proj_parm) + { + static const T HALFPI = detail::HALFPI<T>(); + + T t; + + if (fabs((t = fabs(par.phi0)) - HALFPI) < EPS10) + proj_parm.mode = par.phi0 < 0. ? S_POLE : N_POLE; + else if (fabs(t) < EPS10) + proj_parm.mode = EQUIT; + else + proj_parm.mode = OBLIQ; + if (par.es) { + double sinphi; + + par.e = sqrt(par.es); + proj_parm.qp = pj_qsfn(1., par.e, par.one_es); + proj_parm.mmf = .5 / (1. - par.es); + pj_authset(par.es, proj_parm.apa); + switch (proj_parm.mode) { + case N_POLE: + case S_POLE: + proj_parm.dd = 1.; + break; + case EQUIT: + proj_parm.dd = 1. / (proj_parm.rq = sqrt(.5 * proj_parm.qp)); + proj_parm.xmf = 1.; + proj_parm.ymf = .5 * proj_parm.qp; + break; + case OBLIQ: + proj_parm.rq = sqrt(.5 * proj_parm.qp); + sinphi = sin(par.phi0); + proj_parm.sinb1 = pj_qsfn(sinphi, par.e, par.one_es) / proj_parm.qp; + proj_parm.cosb1 = sqrt(1. - proj_parm.sinb1 * proj_parm.sinb1); + proj_parm.dd = cos(par.phi0) / (sqrt(1. - par.es * sinphi * sinphi) * + proj_parm.rq * proj_parm.cosb1); + proj_parm.ymf = (proj_parm.xmf = proj_parm.rq) / proj_parm.dd; + proj_parm.xmf *= proj_parm.dd; + break; + } + } else { + if (proj_parm.mode == OBLIQ) { + proj_parm.sinb1 = sin(par.phi0); + proj_parm.cosb1 = cos(par.phi0); + } + } + } + + }} // namespace laea + #endif // doxygen + + /*! + \brief Lambert Azimuthal Equal Area projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Example + \image html ex_laea.gif + */ + template <typename CalculationType, typename Parameters> + struct laea_ellipsoid : public detail::laea::base_laea_ellipsoid<CalculationType, Parameters> + { + inline laea_ellipsoid(const Parameters& par) : detail::laea::base_laea_ellipsoid<CalculationType, Parameters>(par) + { + detail::laea::setup_laea(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Lambert Azimuthal Equal Area projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Example + \image html ex_laea.gif + */ + template <typename CalculationType, typename Parameters> + struct laea_spheroid : public detail::laea::base_laea_spheroid<CalculationType, Parameters> + { + inline laea_spheroid(const Parameters& par) : detail::laea::base_laea_spheroid<CalculationType, Parameters>(par) + { + detail::laea::setup_laea(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::laea, laea_spheroid, laea_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class laea_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<laea_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<laea_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void laea_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("laea", new laea_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_LAEA_HPP + diff --git a/boost/geometry/srs/projections/proj/lagrng.hpp b/boost/geometry/srs/projections/proj/lagrng.hpp new file mode 100644 index 0000000000..8ed5c1389e --- /dev/null +++ b/boost/geometry/srs/projections/proj/lagrng.hpp @@ -0,0 +1,195 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_LAGRNG_HPP +#define BOOST_GEOMETRY_PROJECTIONS_LAGRNG_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct lagrng {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace lagrng + { + + static const double TOL = 1e-10; + + template <typename T> + struct par_lagrng + { + T hrw; + T rw; + T a1; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_lagrng_spheroid : public base_t_f<base_lagrng_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_lagrng<CalculationType> m_proj_parm; + + inline base_lagrng_spheroid(const Parameters& par) + : base_t_f<base_lagrng_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType v, c; + + if (fabs(fabs(lp_lat) - HALFPI) < TOL) { + xy_x = 0; + xy_y = lp_lat < 0 ? -2. : 2.; + } else { + lp_lat = sin(lp_lat); + v = this->m_proj_parm.a1 * pow((1. + lp_lat)/(1. - lp_lat), this->m_proj_parm.hrw); + if ((c = 0.5 * (v + 1./v) + cos(lp_lon *= this->m_proj_parm.rw)) < TOL) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_x = 2. * sin(lp_lon) / c; + xy_y = (v - 1./v) / c; + } + } + + static inline std::string get_name() + { + return "lagrng_spheroid"; + } + + }; + + // Lagrange + template <typename Parameters, typename T> + inline void setup_lagrng(Parameters& par, par_lagrng<T>& proj_parm) + { + T phi1; + + if ((proj_parm.rw = pj_param(par.params, "dW").f) <= 0) + BOOST_THROW_EXCEPTION( projection_exception(-27) ); + proj_parm.hrw = 0.5 * (proj_parm.rw = 1. / proj_parm.rw); + phi1 = pj_param(par.params, "rlat_1").f; + if (fabs(fabs(phi1 = sin(phi1)) - 1.) < TOL) + BOOST_THROW_EXCEPTION( projection_exception(-22) ); + proj_parm.a1 = pow((1. - phi1)/(1. + phi1), proj_parm.hrw); + par.es = 0.; + } + + }} // namespace detail::lagrng + #endif // doxygen + + /*! + \brief Lagrange projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Projection parameters + - W (real) + - lat_1: Latitude of first standard parallel (degrees) + \par Example + \image html ex_lagrng.gif + */ + template <typename CalculationType, typename Parameters> + struct lagrng_spheroid : public detail::lagrng::base_lagrng_spheroid<CalculationType, Parameters> + { + inline lagrng_spheroid(const Parameters& par) : detail::lagrng::base_lagrng_spheroid<CalculationType, Parameters>(par) + { + detail::lagrng::setup_lagrng(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::lagrng, lagrng_spheroid, lagrng_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class lagrng_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<lagrng_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void lagrng_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("lagrng", new lagrng_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_LAGRNG_HPP + diff --git a/boost/geometry/srs/projections/proj/larr.hpp b/boost/geometry/srs/projections/proj/larr.hpp new file mode 100644 index 0000000000..2b2735c0dd --- /dev/null +++ b/boost/geometry/srs/projections/proj/larr.hpp @@ -0,0 +1,164 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_LARR_HPP +#define BOOST_GEOMETRY_PROJECTIONS_LARR_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct larr {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace larr + { + + //static const double SIXTH = .16666666666666666; + + template <typename T> + inline T SIXTH() { return .16666666666666666666666666666666; } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_larr_spheroid : public base_t_f<base_larr_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_larr_spheroid(const Parameters& par) + : base_t_f<base_larr_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) sphere + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType SIXTH = larr::SIXTH<CalculationType>(); + + xy_x = 0.5 * lp_lon * (1. + sqrt(cos(lp_lat))); + xy_y = lp_lat / (cos(0.5 * lp_lat) * cos(SIXTH * lp_lon)); + } + + static inline std::string get_name() + { + return "larr_spheroid"; + } + + }; + + // Larrivee + template <typename Parameters> + inline void setup_larr(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::larr + #endif // doxygen + + /*! + \brief Larrivee projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Example + \image html ex_larr.gif + */ + template <typename CalculationType, typename Parameters> + struct larr_spheroid : public detail::larr::base_larr_spheroid<CalculationType, Parameters> + { + inline larr_spheroid(const Parameters& par) : detail::larr::base_larr_spheroid<CalculationType, Parameters>(par) + { + detail::larr::setup_larr(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::larr, larr_spheroid, larr_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class larr_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<larr_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void larr_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("larr", new larr_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_LARR_HPP + diff --git a/boost/geometry/srs/projections/proj/lask.hpp b/boost/geometry/srs/projections/proj/lask.hpp new file mode 100644 index 0000000000..9ee1a95efe --- /dev/null +++ b/boost/geometry/srs/projections/proj/lask.hpp @@ -0,0 +1,173 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_LASK_HPP +#define BOOST_GEOMETRY_PROJECTIONS_LASK_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct lask {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace lask + { + + static const double a10 = 0.975534; + static const double a12 = -0.119161; + static const double a32 = -0.0143059; + static const double a14 = -0.0547009; + static const double b01 = 1.00384; + static const double b21 = 0.0802894; + static const double b03 = 0.0998909; + static const double b41 = 0.000199025; + static const double b23 = -0.0285500; + static const double b05 = -0.0491032; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_lask_spheroid : public base_t_f<base_lask_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_lask_spheroid(const Parameters& par) + : base_t_f<base_lask_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) sphere + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType l2, p2; + + l2 = lp_lon * lp_lon; + p2 = lp_lat * lp_lat; + xy_x = lp_lon * (a10 + p2 * (a12 + l2 * a32 + p2 * a14)); + xy_y = lp_lat * (b01 + l2 * (b21 + p2 * b23 + l2 * b41) + + p2 * (b03 + p2 * b05)); + } + + static inline std::string get_name() + { + return "lask_spheroid"; + } + + }; + + // Laskowski + template <typename Parameters> + inline void setup_lask(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::lask + #endif // doxygen + + /*! + \brief Laskowski projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Example + \image html ex_lask.gif + */ + template <typename CalculationType, typename Parameters> + struct lask_spheroid : public detail::lask::base_lask_spheroid<CalculationType, Parameters> + { + inline lask_spheroid(const Parameters& par) : detail::lask::base_lask_spheroid<CalculationType, Parameters>(par) + { + detail::lask::setup_lask(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::lask, lask_spheroid, lask_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class lask_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<lask_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void lask_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("lask", new lask_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_LASK_HPP + diff --git a/boost/geometry/srs/projections/proj/latlong.hpp b/boost/geometry/srs/projections/proj/latlong.hpp new file mode 100644 index 0000000000..e806381f2d --- /dev/null +++ b/boost/geometry/srs/projections/proj/latlong.hpp @@ -0,0 +1,292 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_LATLONG_HPP +#define BOOST_GEOMETRY_PROJECTIONS_LATLONG_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Purpose: Stub projection implementation for lat/long coordinates. We +// don't actually change the coordinates, but we want proj=latlong +// to act sort of like a projection. +// Author: Frank Warmerdam, warmerdam@pobox.com +// Copyright (c) 2000, Frank Warmerdam + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct lonlat {}; + struct latlon {}; + struct latlong {}; + struct longlat {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace latlong + { + + /* very loosely based upon DMA code by Bradford W. Drew */ + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_latlong_other : public base_t_fi<base_latlong_other<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_latlong_other(const Parameters& par) + : base_t_fi<base_latlong_other<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(forward) + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = lp_lon / this->m_par.a; + xy_y = lp_lat / this->m_par.a; + } + + // INVERSE(inverse) + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = xy_y * this->m_par.a; + lp_lon = xy_x * this->m_par.a; + } + + static inline std::string get_name() + { + return "latlong_other"; + } + + }; + + // Lat/long (Geodetic) + template <typename Parameters> + inline void setup_lonlat(Parameters& par) + { + par.is_latlong = 1; + par.x0 = 0.0; + par.y0 = 0.0; + } + + // Lat/long (Geodetic alias) + template <typename Parameters> + inline void setup_latlon(Parameters& par) + { + par.is_latlong = 1; + par.x0 = 0.0; + par.y0 = 0.0; + } + + // Lat/long (Geodetic alias) + template <typename Parameters> + inline void setup_latlong(Parameters& par) + { + par.is_latlong = 1; + par.x0 = 0.0; + par.y0 = 0.0; + } + + // Lat/long (Geodetic alias) + template <typename Parameters> + inline void setup_longlat(Parameters& par) + { + par.is_latlong = 1; + par.x0 = 0.0; + par.y0 = 0.0; + } + + }} // namespace detail::latlong + #endif // doxygen + + /*! + \brief Lat/long (Geodetic) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Example + \image html ex_lonlat.gif + */ + template <typename CalculationType, typename Parameters> + struct lonlat_other : public detail::latlong::base_latlong_other<CalculationType, Parameters> + { + inline lonlat_other(const Parameters& par) : detail::latlong::base_latlong_other<CalculationType, Parameters>(par) + { + detail::latlong::setup_lonlat(this->m_par); + } + }; + + /*! + \brief Lat/long (Geodetic alias) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Example + \image html ex_latlon.gif + */ + template <typename CalculationType, typename Parameters> + struct latlon_other : public detail::latlong::base_latlong_other<CalculationType, Parameters> + { + inline latlon_other(const Parameters& par) : detail::latlong::base_latlong_other<CalculationType, Parameters>(par) + { + detail::latlong::setup_latlon(this->m_par); + } + }; + + /*! + \brief Lat/long (Geodetic alias) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Example + \image html ex_latlong.gif + */ + template <typename CalculationType, typename Parameters> + struct latlong_other : public detail::latlong::base_latlong_other<CalculationType, Parameters> + { + inline latlong_other(const Parameters& par) : detail::latlong::base_latlong_other<CalculationType, Parameters>(par) + { + detail::latlong::setup_latlong(this->m_par); + } + }; + + /*! + \brief Lat/long (Geodetic alias) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Example + \image html ex_longlat.gif + */ + template <typename CalculationType, typename Parameters> + struct longlat_other : public detail::latlong::base_latlong_other<CalculationType, Parameters> + { + inline longlat_other(const Parameters& par) : detail::latlong::base_latlong_other<CalculationType, Parameters>(par) + { + detail::latlong::setup_longlat(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::lonlat, lonlat_other, lonlat_other) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::latlon, latlon_other, latlon_other) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::latlong, latlong_other, latlong_other) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::longlat, longlat_other, longlat_other) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class lonlat_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<lonlat_other<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class latlon_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<latlon_other<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class latlong_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<latlong_other<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class longlat_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<longlat_other<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void latlong_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("lonlat", new lonlat_entry<CalculationType, Parameters>); + factory.add_to_factory("latlon", new latlon_entry<CalculationType, Parameters>); + factory.add_to_factory("latlong", new latlong_entry<CalculationType, Parameters>); + factory.add_to_factory("longlat", new longlat_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_LATLONG_HPP + diff --git a/boost/geometry/srs/projections/proj/lcc.hpp b/boost/geometry/srs/projections/proj/lcc.hpp new file mode 100644 index 0000000000..609c08491c --- /dev/null +++ b/boost/geometry/srs/projections/proj/lcc.hpp @@ -0,0 +1,282 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_LCC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_LCC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_msfn.hpp> +#include <boost/geometry/srs/projections/impl/pj_phi2.hpp> +#include <boost/geometry/srs/projections/impl/pj_tsfn.hpp> + + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct lcc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace lcc + { + static const double EPS10 = 1.e-10; + + template <typename T> + struct par_lcc + { + T phi1; + T phi2; + T n; + T rho0; + T c; + int ellips; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_lcc_ellipsoid : public base_t_fi<base_lcc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_lcc<CalculationType> m_proj_parm; + + inline base_lcc_ellipsoid(const Parameters& par) + : base_t_fi<base_lcc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid & spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType rho; + if (fabs(fabs(lp_lat) - HALFPI) < EPS10) { + if ((lp_lat * this->m_proj_parm.n) <= 0.) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + rho = 0.; + } else + rho = this->m_proj_parm.c * (this->m_proj_parm.ellips ? pow(pj_tsfn(lp_lat, sin(lp_lat), + this->m_par.e), this->m_proj_parm.n) : pow(tan(FORTPI + .5 * lp_lat), -this->m_proj_parm.n)); + xy_x = this->m_par.k0 * (rho * sin( lp_lon *= this->m_proj_parm.n ) ); + xy_y = this->m_par.k0 * (this->m_proj_parm.rho0 - rho * cos(lp_lon) ); + } + + // INVERSE(e_inverse) ellipsoid & spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType rho; + xy_x /= this->m_par.k0; + xy_y /= this->m_par.k0; + if( (rho = boost::math::hypot(xy_x, xy_y = this->m_proj_parm.rho0 - xy_y)) != 0.0) { + if (this->m_proj_parm.n < 0.) { + rho = -rho; + xy_x = -xy_x; + xy_y = -xy_y; + } + if (this->m_proj_parm.ellips) { + if ((lp_lat = pj_phi2(pow(rho / this->m_proj_parm.c, 1./this->m_proj_parm.n), this->m_par.e)) + == HUGE_VAL) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + } else + lp_lat = 2. * atan(pow(this->m_proj_parm.c / rho, 1./this->m_proj_parm.n)) - HALFPI; + lp_lon = atan2(xy_x, xy_y) / this->m_proj_parm.n; + } else { + lp_lon = 0.; + lp_lat = this->m_proj_parm.n > 0. ? HALFPI : -HALFPI; + } + } + + // SPECIAL(fac) + #ifdef SPECIAL_FACTORS_NOT_CONVERTED + inline void fac(Geographic lp, Factors &fac) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType rho; + if (fabs(fabs(lp_lat) - HALFPI) < EPS10) { + if ((lp_lat * this->m_proj_parm.n) <= 0.) return; + rho = 0.; + } else + rho = this->m_proj_parm.c * (this->m_proj_parm.ellips ? pow(pj_tsfn(lp_lat, sin(lp_lat), + this->m_par.e), this->m_proj_parm.n) : pow(tan(FORTPI + .5 * lp_lat), -this->m_proj_parm.n)); + this->m_fac.code |= IS_ANAL_HK + IS_ANAL_CONV; + this->m_fac.k = this->m_fac.h = this->m_par.k0 * this->m_proj_parm.n * rho / + pj_msfn(sin(lp_lat), cos(lp_lat), this->m_par.es); + this->m_fac.conv = - this->m_proj_parm.n * lp_lon; + } + #endif + + static inline std::string get_name() + { + return "lcc_ellipsoid"; + } + + }; + + // Lambert Conformal Conic + template <typename Parameters, typename T> + inline void setup_lcc(Parameters& par, par_lcc<T>& proj_parm) + { + static const T FORTPI = detail::FORTPI<T>(); + static const T HALFPI = detail::HALFPI<T>(); + + T cosphi, sinphi; + int secant; + + proj_parm.phi1 = pj_param(par.params, "rlat_1").f; + if (pj_param(par.params, "tlat_2").i) + proj_parm.phi2 = pj_param(par.params, "rlat_2").f; + else { + proj_parm.phi2 = proj_parm.phi1; + if (!pj_param(par.params, "tlat_0").i) + par.phi0 = proj_parm.phi1; + } + if (fabs(proj_parm.phi1 + proj_parm.phi2) < EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-21) ); + proj_parm.n = sinphi = sin(proj_parm.phi1); + cosphi = cos(proj_parm.phi1); + secant = fabs(proj_parm.phi1 - proj_parm.phi2) >= EPS10; + if( (proj_parm.ellips = (par.es != 0.)) ) { + double ml1, m1; + + par.e = sqrt(par.es); + m1 = pj_msfn(sinphi, cosphi, par.es); + ml1 = pj_tsfn(proj_parm.phi1, sinphi, par.e); + if (secant) { /* secant cone */ + proj_parm.n = log(m1 / + pj_msfn(sinphi = sin(proj_parm.phi2), cos(proj_parm.phi2), par.es)); + proj_parm.n /= log(ml1 / pj_tsfn(proj_parm.phi2, sinphi, par.e)); + } + proj_parm.c = (proj_parm.rho0 = m1 * pow(ml1, -proj_parm.n) / proj_parm.n); + proj_parm.rho0 *= (fabs(fabs(par.phi0) - HALFPI) < EPS10) ? 0. : + pow(pj_tsfn(par.phi0, sin(par.phi0), par.e), proj_parm.n); + } else { + if (secant) + proj_parm.n = log(cosphi / cos(proj_parm.phi2)) / + log(tan(FORTPI + .5 * proj_parm.phi2) / + tan(FORTPI + .5 * proj_parm.phi1)); + proj_parm.c = cosphi * pow(tan(FORTPI + .5 * proj_parm.phi1), proj_parm.n) / proj_parm.n; + proj_parm.rho0 = (fabs(fabs(par.phi0) - HALFPI) < EPS10) ? 0. : + proj_parm.c * pow(tan(FORTPI + .5 * par.phi0), -proj_parm.n); + } + } + + }} // namespace detail::lcc + #endif // doxygen + + /*! + \brief Lambert Conformal Conic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_1: Latitude of first standard parallel (degrees) + - lat_2: Latitude of second standard parallel (degrees) + - lat_0: Latitude of origin + \par Example + \image html ex_lcc.gif + */ + template <typename CalculationType, typename Parameters> + struct lcc_ellipsoid : public detail::lcc::base_lcc_ellipsoid<CalculationType, Parameters> + { + inline lcc_ellipsoid(const Parameters& par) : detail::lcc::base_lcc_ellipsoid<CalculationType, Parameters>(par) + { + detail::lcc::setup_lcc(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::lcc, lcc_ellipsoid, lcc_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class lcc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<lcc_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void lcc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("lcc", new lcc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_LCC_HPP + diff --git a/boost/geometry/srs/projections/proj/lcca.hpp b/boost/geometry/srs/projections/proj/lcca.hpp new file mode 100644 index 0000000000..a1a2069d8f --- /dev/null +++ b/boost/geometry/srs/projections/proj/lcca.hpp @@ -0,0 +1,231 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_LCCA_HPP +#define BOOST_GEOMETRY_PROJECTIONS_LCCA_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/core/ignore_unused.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_mlfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct lcca {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace lcca + { + + static const int MAX_ITER = 10; + static const double DEL_TOL = 1e-12; + + template <typename T> + struct par_lcca + { + T en[EN_SIZE]; + T r0, l, M0; + T C; + }; + + template <typename T> /* func to compute dr */ + inline T fS(T const& S, T const& C) + { + return(S * ( 1. + S * S * C)); + } + + template <typename T> /* deriv of fs */ + inline T fSp(T const& S, T const& C) + { + return(1. + 3.* S * S * C); + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_lcca_ellipsoid : public base_t_fi<base_lcca_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_lcca<CalculationType> m_proj_parm; + + inline base_lcca_ellipsoid(const Parameters& par) + : base_t_fi<base_lcca_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType S, r, dr; + + S = pj_mlfn(lp_lat, sin(lp_lat), cos(lp_lat), this->m_proj_parm.en) - this->m_proj_parm.M0; + dr = fS(S, this->m_proj_parm.C); + r = this->m_proj_parm.r0 - dr; + xy_x = this->m_par.k0 * (r * sin( lp_lon *= this->m_proj_parm.l ) ); + xy_y = this->m_par.k0 * (this->m_proj_parm.r0 - r * cos(lp_lon) ); + } + + // INVERSE(e_inverse) ellipsoid & spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType theta, dr, S, dif; + int i; + + xy_x /= this->m_par.k0; + xy_y /= this->m_par.k0; + theta = atan2(xy_x , this->m_proj_parm.r0 - xy_y); + dr = xy_y - xy_x * tan(0.5 * theta); + lp_lon = theta / this->m_proj_parm.l; + S = dr; + for (i = MAX_ITER; i ; --i) { + S -= (dif = (fS(S, this->m_proj_parm.C) - dr) / fSp(S, this->m_proj_parm.C)); + if (fabs(dif) < DEL_TOL) break; + } + if (!i) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + lp_lat = pj_inv_mlfn(S + this->m_proj_parm.M0, this->m_par.es, this->m_proj_parm.en); + } + + static inline std::string get_name() + { + return "lcca_ellipsoid"; + } + + }; + + // Lambert Conformal Conic Alternative + template <typename Parameters, typename T> + inline void setup_lcca(Parameters& par, par_lcca<T>& proj_parm) + { + T s2p0, N0, R0, tan0, tan20; + + if (!pj_enfn(par.es, proj_parm.en)) + BOOST_THROW_EXCEPTION( projection_exception(0) ); + if (!pj_param(par.params, "tlat_0").i) + BOOST_THROW_EXCEPTION( projection_exception(50) ); + if (par.phi0 == 0.) + BOOST_THROW_EXCEPTION( projection_exception(51) ); + proj_parm.l = sin(par.phi0); + proj_parm.M0 = pj_mlfn(par.phi0, proj_parm.l, cos(par.phi0), proj_parm.en); + s2p0 = proj_parm.l * proj_parm.l; + R0 = 1. / (1. - par.es * s2p0); + N0 = sqrt(R0); + R0 *= par.one_es * N0; + tan0 = tan(par.phi0); + tan20 = tan0 * tan0; + proj_parm.r0 = N0 / tan0; + proj_parm.C = 1. / (6. * R0 * N0); + boost::ignore_unused(tan20); + } + + }} // namespace detail::lcca + #endif // doxygen + + /*! + \brief Lambert Conformal Conic Alternative projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_0: Latitude of origin + \par Example + \image html ex_lcca.gif + */ + template <typename CalculationType, typename Parameters> + struct lcca_ellipsoid : public detail::lcca::base_lcca_ellipsoid<CalculationType, Parameters> + { + inline lcca_ellipsoid(const Parameters& par) : detail::lcca::base_lcca_ellipsoid<CalculationType, Parameters>(par) + { + detail::lcca::setup_lcca(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::lcca, lcca_ellipsoid, lcca_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class lcca_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<lcca_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void lcca_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("lcca", new lcca_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_LCCA_HPP + diff --git a/boost/geometry/srs/projections/proj/loxim.hpp b/boost/geometry/srs/projections/proj/loxim.hpp new file mode 100644 index 0000000000..f88eb4ca6e --- /dev/null +++ b/boost/geometry/srs/projections/proj/loxim.hpp @@ -0,0 +1,205 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_LOXIM_HPP +#define BOOST_GEOMETRY_PROJECTIONS_LOXIM_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct loxim {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace loxim + { + static const double EPS = 1e-8; + + template <typename T> + struct par_loxim + { + T phi1; + T cosphi1; + T tanphi1; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_loxim_spheroid : public base_t_fi<base_loxim_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_loxim<CalculationType> m_proj_parm; + + inline base_loxim_spheroid(const Parameters& par) + : base_t_fi<base_loxim_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + xy_y = lp_lat - this->m_proj_parm.phi1; + if (fabs(xy_y) < EPS) + xy_x = lp_lon * this->m_proj_parm.cosphi1; + else { + xy_x = FORTPI + 0.5 * lp_lat; + if (fabs(xy_x) < EPS || fabs(fabs(xy_x) - HALFPI) < EPS) + xy_x = 0.; + else + xy_x = lp_lon * xy_y / log( tan(xy_x) / this->m_proj_parm.tanphi1 ); + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + lp_lat = xy_y + this->m_proj_parm.phi1; + if (fabs(xy_y) < EPS) + lp_lon = xy_x / this->m_proj_parm.cosphi1; + else + if (fabs( lp_lon = FORTPI + 0.5 * lp_lat ) < EPS || + fabs(fabs(lp_lon) - HALFPI) < EPS) + lp_lon = 0.; + else + lp_lon = xy_x * log( tan(lp_lon) / this->m_proj_parm.tanphi1 ) / xy_y ; + } + + static inline std::string get_name() + { + return "loxim_spheroid"; + } + + }; + + // Loximuthal + template <typename Parameters, typename T> + inline void setup_loxim(Parameters& par, par_loxim<T>& proj_parm) + { + static const T FORTPI = detail::FORTPI<T>(); + + proj_parm.phi1 = pj_param(par.params, "rlat_1").f; + if ((proj_parm.cosphi1 = cos(proj_parm.phi1)) < EPS) + BOOST_THROW_EXCEPTION( projection_exception(-22) ); + proj_parm.tanphi1 = tan(FORTPI + 0.5 * proj_parm.phi1); + par.es = 0.; + } + + }} // namespace detail::loxim + #endif // doxygen + + /*! + \brief Loximuthal projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Projection parameters + - lat_1: Latitude of first standard parallel (degrees) + \par Example + \image html ex_loxim.gif + */ + template <typename CalculationType, typename Parameters> + struct loxim_spheroid : public detail::loxim::base_loxim_spheroid<CalculationType, Parameters> + { + inline loxim_spheroid(const Parameters& par) : detail::loxim::base_loxim_spheroid<CalculationType, Parameters>(par) + { + detail::loxim::setup_loxim(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::loxim, loxim_spheroid, loxim_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class loxim_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<loxim_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void loxim_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("loxim", new loxim_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_LOXIM_HPP + diff --git a/boost/geometry/srs/projections/proj/lsat.hpp b/boost/geometry/srs/projections/proj/lsat.hpp new file mode 100644 index 0000000000..d305339d5b --- /dev/null +++ b/boost/geometry/srs/projections/proj/lsat.hpp @@ -0,0 +1,341 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_LSAT_HPP +#define BOOST_GEOMETRY_PROJECTIONS_LSAT_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct lsat {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace lsat + { + static const double TOL = 1e-7; + //static const double PI_HALFPI = 4.71238898038468985766; + //static const double TWOPI_HALFPI = 7.85398163397448309610; + + template <typename T> + struct par_lsat + { + T a2, a4, b, c1, c3; + T q, t, u, w, p22, sa, ca, xj, rlm, rlm2; + }; + + /* based upon Snyder and Linck, USGS-NMD */ + template <typename T> + inline void + seraz0(T lam, T const& mult, par_lsat<T>& proj_parm) + { + T sdsq, h, s, fc, sd, sq, d__1; + + lam *= geometry::math::d2r<T>(); + sd = sin(lam); + sdsq = sd * sd; + s = proj_parm.p22 * proj_parm.sa * cos(lam) * sqrt((1. + proj_parm.t * sdsq) / (( + 1. + proj_parm.w * sdsq) * (1. + proj_parm.q * sdsq))); + d__1 = 1. + proj_parm.q * sdsq; + h = sqrt((1. + proj_parm.q * sdsq) / (1. + proj_parm.w * sdsq)) * ((1. + + proj_parm.w * sdsq) / (d__1 * d__1) - proj_parm.p22 * proj_parm.ca); + sq = sqrt(proj_parm.xj * proj_parm.xj + s * s); + proj_parm.b += fc = mult * (h * proj_parm.xj - s * s) / sq; + proj_parm.a2 += fc * cos(lam + lam); + proj_parm.a4 += fc * cos(lam * 4.); + fc = mult * s * (h + proj_parm.xj) / sq; + proj_parm.c1 += fc * cos(lam); + proj_parm.c3 += fc * cos(lam * 3.); + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_lsat_ellipsoid : public base_t_fi<base_lsat_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_lsat<CalculationType> m_proj_parm; + + inline base_lsat_ellipsoid(const Parameters& par) + : base_t_fi<base_lsat_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType PI_HALFPI = detail::PI_HALFPI<CalculationType>(); + static const CalculationType TWOPI_HALFPI = detail::TWOPI_HALFPI<CalculationType>(); + + int l, nn; + CalculationType lamt, xlam, sdsq, c, d, s, lamdp, phidp, lampp, tanph, + lamtp, cl, sd, sp, fac, sav, tanphi; + + if (lp_lat > HALFPI) + lp_lat = HALFPI; + else if (lp_lat < -HALFPI) + lp_lat = -HALFPI; + lampp = lp_lat >= 0. ? HALFPI : PI_HALFPI; + tanphi = tan(lp_lat); + for (nn = 0;;) { + sav = lampp; + lamtp = lp_lon + this->m_proj_parm.p22 * lampp; + cl = cos(lamtp); + if (fabs(cl) < TOL) + lamtp -= TOL; + fac = lampp - sin(lampp) * (cl < 0. ? -HALFPI : HALFPI); + for (l = 50; l; --l) { + lamt = lp_lon + this->m_proj_parm.p22 * sav; + if (fabs(c = cos(lamt)) < TOL) + lamt -= TOL; + xlam = (this->m_par.one_es * tanphi * this->m_proj_parm.sa + sin(lamt) * this->m_proj_parm.ca) / c; + lamdp = atan(xlam) + fac; + if (fabs(fabs(sav) - fabs(lamdp)) < TOL) + break; + sav = lamdp; + } + if (!l || ++nn >= 3 || (lamdp > this->m_proj_parm.rlm && lamdp < this->m_proj_parm.rlm2)) + break; + if (lamdp <= this->m_proj_parm.rlm) + lampp = TWOPI_HALFPI; + else if (lamdp >= this->m_proj_parm.rlm2) + lampp = HALFPI; + } + if (l) { + sp = sin(lp_lat); + phidp = aasin((this->m_par.one_es * this->m_proj_parm.ca * sp - this->m_proj_parm.sa * cos(lp_lat) * + sin(lamt)) / sqrt(1. - this->m_par.es * sp * sp)); + tanph = log(tan(FORTPI + .5 * phidp)); + sd = sin(lamdp); + sdsq = sd * sd; + s = this->m_proj_parm.p22 * this->m_proj_parm.sa * cos(lamdp) * sqrt((1. + this->m_proj_parm.t * sdsq) + / ((1. + this->m_proj_parm.w * sdsq) * (1. + this->m_proj_parm.q * sdsq))); + d = sqrt(this->m_proj_parm.xj * this->m_proj_parm.xj + s * s); + xy_x = this->m_proj_parm.b * lamdp + this->m_proj_parm.a2 * sin(2. * lamdp) + this->m_proj_parm.a4 * + sin(lamdp * 4.) - tanph * s / d; + xy_y = this->m_proj_parm.c1 * sd + this->m_proj_parm.c3 * sin(lamdp * 3.) + tanph * this->m_proj_parm.xj / d; + } else + xy_x = xy_y = HUGE_VAL; + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + int nn; + CalculationType lamt, sdsq, s, lamdp, phidp, sppsq, dd, sd, sl, fac, scl, sav, spp; + + lamdp = xy_x / this->m_proj_parm.b; + nn = 50; + do { + sav = lamdp; + sd = sin(lamdp); + sdsq = sd * sd; + s = this->m_proj_parm.p22 * this->m_proj_parm.sa * cos(lamdp) * sqrt((1. + this->m_proj_parm.t * sdsq) + / ((1. + this->m_proj_parm.w * sdsq) * (1. + this->m_proj_parm.q * sdsq))); + lamdp = xy_x + xy_y * s / this->m_proj_parm.xj - this->m_proj_parm.a2 * sin( + 2. * lamdp) - this->m_proj_parm.a4 * sin(lamdp * 4.) - s / this->m_proj_parm.xj * ( + this->m_proj_parm.c1 * sin(lamdp) + this->m_proj_parm.c3 * sin(lamdp * 3.)); + lamdp /= this->m_proj_parm.b; + } while (fabs(lamdp - sav) >= TOL && --nn); + sl = sin(lamdp); + fac = exp(sqrt(1. + s * s / this->m_proj_parm.xj / this->m_proj_parm.xj) * (xy_y - + this->m_proj_parm.c1 * sl - this->m_proj_parm.c3 * sin(lamdp * 3.))); + phidp = 2. * (atan(fac) - FORTPI); + dd = sl * sl; + if (fabs(cos(lamdp)) < TOL) + lamdp -= TOL; + spp = sin(phidp); + sppsq = spp * spp; + lamt = atan(((1. - sppsq * this->m_par.rone_es) * tan(lamdp) * + this->m_proj_parm.ca - spp * this->m_proj_parm.sa * sqrt((1. + this->m_proj_parm.q * dd) * ( + 1. - sppsq) - sppsq * this->m_proj_parm.u) / cos(lamdp)) / (1. - sppsq + * (1. + this->m_proj_parm.u))); + sl = lamt >= 0. ? 1. : -1.; + scl = cos(lamdp) >= 0. ? 1. : -1; + lamt -= HALFPI * (1. - scl) * sl; + lp_lon = lamt - this->m_proj_parm.p22 * lamdp; + if (fabs(this->m_proj_parm.sa) < TOL) + lp_lat = aasin(spp / sqrt(this->m_par.one_es * this->m_par.one_es + this->m_par.es * sppsq)); + else + lp_lat = atan((tan(lamdp) * cos(lamt) - this->m_proj_parm.ca * sin(lamt)) / + (this->m_par.one_es * this->m_proj_parm.sa)); + } + + static inline std::string get_name() + { + return "lsat_ellipsoid"; + } + + }; + + // Space oblique for LANDSAT + template <typename Parameters, typename T> + inline void setup_lsat(Parameters& par, par_lsat<T>& proj_parm) + { + int land, path; + T lam, alf, esc, ess; + + land = pj_param(par.params, "ilsat").i; + if (land <= 0 || land > 5) + BOOST_THROW_EXCEPTION( projection_exception(-28) ); + path = pj_param(par.params, "ipath").i; + if (path <= 0 || path > (land <= 3 ? 251 : 233)) + BOOST_THROW_EXCEPTION( projection_exception(-29) ); + if (land <= 3) { + par.lam0 = geometry::math::d2r<T>() * 128.87 - geometry::math::two_pi<T>() / 251. * path; + proj_parm.p22 = 103.2669323; + alf = geometry::math::d2r<T>() * 99.092; + } else { + par.lam0 = geometry::math::d2r<T>() * 129.3 - geometry::math::two_pi<T>() / 233. * path; + proj_parm.p22 = 98.8841202; + alf = geometry::math::d2r<T>() * 98.2; + } + proj_parm.p22 /= 1440.; + proj_parm.sa = sin(alf); + proj_parm.ca = cos(alf); + if (fabs(proj_parm.ca) < 1e-9) + proj_parm.ca = 1e-9; + esc = par.es * proj_parm.ca * proj_parm.ca; + ess = par.es * proj_parm.sa * proj_parm.sa; + proj_parm.w = (1. - esc) * par.rone_es; + proj_parm.w = proj_parm.w * proj_parm.w - 1.; + proj_parm.q = ess * par.rone_es; + proj_parm.t = ess * (2. - par.es) * par.rone_es * par.rone_es; + proj_parm.u = esc * par.rone_es; + proj_parm.xj = par.one_es * par.one_es * par.one_es; + proj_parm.rlm = geometry::math::pi<T>() * (1. / 248. + .5161290322580645); + proj_parm.rlm2 = proj_parm.rlm + geometry::math::two_pi<T>(); + proj_parm.a2 = proj_parm.a4 = proj_parm.b = proj_parm.c1 = proj_parm.c3 = 0.; + seraz0(0., 1., proj_parm); + for (lam = 9.; lam <= 81.0001; lam += 18.) + seraz0(lam, 4., proj_parm); + for (lam = 18; lam <= 72.0001; lam += 18.) + seraz0(lam, 2., proj_parm); + seraz0(90., 1., proj_parm); + proj_parm.a2 /= 30.; + proj_parm.a4 /= 60.; + proj_parm.b /= 30.; + proj_parm.c1 /= 15.; + proj_parm.c3 /= 45.; + } + + }} // namespace detail::lsat + #endif // doxygen + + /*! + \brief Space oblique for LANDSAT projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Ellipsoid + \par Projection parameters + - lsat (integer) + - path (integer) + \par Example + \image html ex_lsat.gif + */ + template <typename CalculationType, typename Parameters> + struct lsat_ellipsoid : public detail::lsat::base_lsat_ellipsoid<CalculationType, Parameters> + { + inline lsat_ellipsoid(const Parameters& par) : detail::lsat::base_lsat_ellipsoid<CalculationType, Parameters>(par) + { + detail::lsat::setup_lsat(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::lsat, lsat_ellipsoid, lsat_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class lsat_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<lsat_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void lsat_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("lsat", new lsat_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_LSAT_HPP + diff --git a/boost/geometry/srs/projections/proj/mbt_fps.hpp b/boost/geometry/srs/projections/proj/mbt_fps.hpp new file mode 100644 index 0000000000..3823725f1c --- /dev/null +++ b/boost/geometry/srs/projections/proj/mbt_fps.hpp @@ -0,0 +1,194 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_MBT_FPS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_MBT_FPS_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct mbt_fps {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace mbt_fps + { + + static const int MAX_ITER = 10; + static const double LOOP_TOL = 1e-7; + static const double C1 = 0.45503; + static const double C2 = 1.36509; + static const double C3 = 1.41546; + static const double C_x = 0.22248; + static const double C_y = 1.44492; + //static const double C1_2 = 0.33333333333333333333333333; + + template <typename T> + inline T C1_2() { return detail::THIRD<T>(); } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_mbt_fps_spheroid : public base_t_fi<base_mbt_fps_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_mbt_fps_spheroid(const Parameters& par) + : base_t_fi<base_mbt_fps_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType C1_2 = mbt_fps::C1_2<CalculationType>(); + + CalculationType k, V, t; + int i; + + k = C3 * sin(lp_lat); + for (i = MAX_ITER; i ; --i) { + t = lp_lat / C2; + lp_lat -= V = (C1 * sin(t) + sin(lp_lat) - k) / + (C1_2 * cos(t) + cos(lp_lat)); + if (fabs(V) < LOOP_TOL) + break; + } + t = lp_lat / C2; + xy_x = C_x * lp_lon * (1. + 3. * cos(lp_lat)/cos(t) ); + xy_y = C_y * sin(t); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType t; + + lp_lat = C2 * (t = aasin(xy_y / C_y)); + lp_lon = xy_x / (C_x * (1. + 3. * cos(lp_lat)/cos(t))); + lp_lat = aasin((C1 * sin(t) + sin(lp_lat)) / C3); + } + + static inline std::string get_name() + { + return "mbt_fps_spheroid"; + } + + }; + + // McBryde-Thomas Flat-Pole Sine (No. 2) + template <typename Parameters> + inline void setup_mbt_fps(Parameters& par) + { + par.es = 0; + } + + }} // namespace detail::mbt_fps + #endif // doxygen + + /*! + \brief McBryde-Thomas Flat-Pole Sine (No. 2) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Example + \image html ex_mbt_fps.gif + */ + template <typename CalculationType, typename Parameters> + struct mbt_fps_spheroid : public detail::mbt_fps::base_mbt_fps_spheroid<CalculationType, Parameters> + { + inline mbt_fps_spheroid(const Parameters& par) : detail::mbt_fps::base_mbt_fps_spheroid<CalculationType, Parameters>(par) + { + detail::mbt_fps::setup_mbt_fps(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::mbt_fps, mbt_fps_spheroid, mbt_fps_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class mbt_fps_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<mbt_fps_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void mbt_fps_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("mbt_fps", new mbt_fps_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_MBT_FPS_HPP + diff --git a/boost/geometry/srs/projections/proj/mbtfpp.hpp b/boost/geometry/srs/projections/proj/mbtfpp.hpp new file mode 100644 index 0000000000..123d1e4b02 --- /dev/null +++ b/boost/geometry/srs/projections/proj/mbtfpp.hpp @@ -0,0 +1,199 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_MBTFPP_HPP +#define BOOST_GEOMETRY_PROJECTIONS_MBTFPP_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct mbtfpp {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace mbtfpp + { + + static const double CS_ = .95257934441568037152; + static const double FXC = .92582009977255146156; + static const double FYC = 3.40168025708304504493; + //static const double C23 = .66666666666666666666; + //static const double C13 = .33333333333333333333; + static const double ONEEPS = 1.0000001; + + template <typename T> + inline T C23() { return detail::TWOTHIRD<T>(); } + template <typename T> + inline T C13() { return detail::THIRD<T>(); } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_mbtfpp_spheroid : public base_t_fi<base_mbtfpp_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_mbtfpp_spheroid(const Parameters& par) + : base_t_fi<base_mbtfpp_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType C23 = mbtfpp::C23<CalculationType>(); + static const CalculationType C13 = mbtfpp::C13<CalculationType>(); + + lp_lat = asin(CS_ * sin(lp_lat)); + xy_x = FXC * lp_lon * (2. * cos(C23 * lp_lat) - 1.); + xy_y = FYC * sin(C13 * lp_lat); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType C23 = mbtfpp::C23<CalculationType>(); + + lp_lat = xy_y / FYC; + if (fabs(lp_lat) >= 1.) { + if (fabs(lp_lat) > ONEEPS) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else + lp_lat = (lp_lat < 0.) ? -HALFPI : HALFPI; + } else + lp_lat = asin(lp_lat); + lp_lon = xy_x / ( FXC * (2. * cos(C23 * (lp_lat *= 3.)) - 1.) ); + if (fabs(lp_lat = sin(lp_lat) / CS_) >= 1.) { + if (fabs(lp_lat) > ONEEPS) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else + lp_lat = (lp_lat < 0.) ? -HALFPI : HALFPI; + } else + lp_lat = asin(lp_lat); + } + + static inline std::string get_name() + { + return "mbtfpp_spheroid"; + } + + }; + + // McBride-Thomas Flat-Polar Parabolic + template <typename Parameters> + inline void setup_mbtfpp(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::mbtfpp + #endif // doxygen + + /*! + \brief McBride-Thomas Flat-Polar Parabolic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Example + \image html ex_mbtfpp.gif + */ + template <typename CalculationType, typename Parameters> + struct mbtfpp_spheroid : public detail::mbtfpp::base_mbtfpp_spheroid<CalculationType, Parameters> + { + inline mbtfpp_spheroid(const Parameters& par) : detail::mbtfpp::base_mbtfpp_spheroid<CalculationType, Parameters>(par) + { + detail::mbtfpp::setup_mbtfpp(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::mbtfpp, mbtfpp_spheroid, mbtfpp_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class mbtfpp_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<mbtfpp_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void mbtfpp_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("mbtfpp", new mbtfpp_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_MBTFPP_HPP + diff --git a/boost/geometry/srs/projections/proj/mbtfpq.hpp b/boost/geometry/srs/projections/proj/mbtfpq.hpp new file mode 100644 index 0000000000..b4eeb34d5a --- /dev/null +++ b/boost/geometry/srs/projections/proj/mbtfpq.hpp @@ -0,0 +1,208 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_MBTFPQ_HPP +#define BOOST_GEOMETRY_PROJECTIONS_MBTFPQ_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct mbtfpq {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace mbtfpq + { + + static const int NITER = 20; + static const double EPS = 1e-7; + static const double ONETOL = 1.000001; + static const double C = 1.70710678118654752440; + static const double RC = 0.58578643762690495119; + static const double FYC = 1.87475828462269495505; + static const double RYC = 0.53340209679417701685; + static const double FXC = 0.31245971410378249250; + static const double RXC = 3.20041258076506210122; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_mbtfpq_spheroid : public base_t_fi<base_mbtfpq_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_mbtfpq_spheroid(const Parameters& par) + : base_t_fi<base_mbtfpq_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType th1, c; + int i; + + c = C * sin(lp_lat); + for (i = NITER; i; --i) { + lp_lat -= th1 = (sin(.5*lp_lat) + sin(lp_lat) - c) / + (.5*cos(.5*lp_lat) + cos(lp_lat)); + if (fabs(th1) < EPS) break; + } + xy_x = FXC * lp_lon * (1.0 + 2. * cos(lp_lat)/cos(0.5 * lp_lat)); + xy_y = FYC * sin(0.5 * lp_lat); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType ONEPI = detail::ONEPI<CalculationType>(); + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType t; + + lp_lat = RYC * xy_y; + if (fabs(lp_lat) > 1.) { + if (fabs(lp_lat) > ONETOL) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else if (lp_lat < 0.) { + t = -1.; lp_lat = -ONEPI; + } else { + t = 1.; lp_lat = ONEPI; + } + } else + lp_lat = 2. * asin(t = lp_lat); + lp_lon = RXC * xy_x / (1. + 2. * cos(lp_lat)/cos(0.5 * lp_lat)); + lp_lat = RC * (t + sin(lp_lat)); + if (fabs(lp_lat) > 1.) + if (fabs(lp_lat) > ONETOL) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else + lp_lat = lp_lat < 0. ? -HALFPI : HALFPI; + else + lp_lat = asin(lp_lat); + } + + static inline std::string get_name() + { + return "mbtfpq_spheroid"; + } + + }; + + // McBryde-Thomas Flat-Polar Quartic + template <typename Parameters> + inline void setup_mbtfpq(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::mbtfpq + #endif // doxygen + + /*! + \brief McBryde-Thomas Flat-Polar Quartic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Example + \image html ex_mbtfpq.gif + */ + template <typename CalculationType, typename Parameters> + struct mbtfpq_spheroid : public detail::mbtfpq::base_mbtfpq_spheroid<CalculationType, Parameters> + { + inline mbtfpq_spheroid(const Parameters& par) : detail::mbtfpq::base_mbtfpq_spheroid<CalculationType, Parameters>(par) + { + detail::mbtfpq::setup_mbtfpq(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::mbtfpq, mbtfpq_spheroid, mbtfpq_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class mbtfpq_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<mbtfpq_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void mbtfpq_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("mbtfpq", new mbtfpq_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_MBTFPQ_HPP + diff --git a/boost/geometry/srs/projections/proj/merc.hpp b/boost/geometry/srs/projections/proj/merc.hpp new file mode 100644 index 0000000000..ac34aee33e --- /dev/null +++ b/boost/geometry/srs/projections/proj/merc.hpp @@ -0,0 +1,267 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_MERC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_MERC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_msfn.hpp> +#include <boost/geometry/srs/projections/impl/pj_phi2.hpp> +#include <boost/geometry/srs/projections/impl/pj_tsfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct merc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace merc + { + + static const double EPS10 = 1.e-10; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_merc_ellipsoid : public base_t_fi<base_merc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_merc_ellipsoid(const Parameters& par) + : base_t_fi<base_merc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + if (fabs(fabs(lp_lat) - HALFPI) <= EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_x = this->m_par.k0 * lp_lon; + xy_y = - this->m_par.k0 * log(pj_tsfn(lp_lat, sin(lp_lat), this->m_par.e)); + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + if ((lp_lat = pj_phi2(exp(- xy_y / this->m_par.k0), this->m_par.e)) == HUGE_VAL) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + lp_lon = xy_x / this->m_par.k0; + } + + static inline std::string get_name() + { + return "merc_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_merc_spheroid : public base_t_fi<base_merc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_merc_spheroid(const Parameters& par) + : base_t_fi<base_merc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + + if (fabs(fabs(lp_lat) - HALFPI) <= EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_x = this->m_par.k0 * lp_lon; + xy_y = this->m_par.k0 * log(tan(FORTPI + .5 * lp_lat)); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + lp_lat = HALFPI - 2. * atan(exp(-xy_y / this->m_par.k0)); + lp_lon = xy_x / this->m_par.k0; + } + + static inline std::string get_name() + { + return "merc_spheroid"; + } + + }; + + // Mercator + template <typename Parameters> + inline void setup_merc(Parameters& par) + { + typedef typename Parameters::type calc_t; + static const calc_t HALFPI = detail::HALFPI<calc_t>(); + + calc_t phits=0.0; + int is_phits; + + if( (is_phits = pj_param(par.params, "tlat_ts").i) ) { + phits = fabs(pj_param(par.params, "rlat_ts").f); + if (phits >= HALFPI) + BOOST_THROW_EXCEPTION( projection_exception(-24) ); + } + if (par.es) { /* ellipsoid */ + if (is_phits) + par.k0 = pj_msfn(sin(phits), cos(phits), par.es); + } else { /* sphere */ + if (is_phits) + par.k0 = cos(phits); + } + } + + }} // namespace detail::merc + #endif // doxygen + + /*! + \brief Mercator projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_ts: Latitude of true scale (degrees) + \par Example + \image html ex_merc.gif + */ + template <typename CalculationType, typename Parameters> + struct merc_ellipsoid : public detail::merc::base_merc_ellipsoid<CalculationType, Parameters> + { + inline merc_ellipsoid(const Parameters& par) : detail::merc::base_merc_ellipsoid<CalculationType, Parameters>(par) + { + detail::merc::setup_merc(this->m_par); + } + }; + + /*! + \brief Mercator projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_ts: Latitude of true scale (degrees) + \par Example + \image html ex_merc.gif + */ + template <typename CalculationType, typename Parameters> + struct merc_spheroid : public detail::merc::base_merc_spheroid<CalculationType, Parameters> + { + inline merc_spheroid(const Parameters& par) : detail::merc::base_merc_spheroid<CalculationType, Parameters>(par) + { + detail::merc::setup_merc(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::merc, merc_spheroid, merc_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class merc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<merc_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<merc_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void merc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("merc", new merc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_MERC_HPP + diff --git a/boost/geometry/srs/projections/proj/mill.hpp b/boost/geometry/srs/projections/proj/mill.hpp new file mode 100644 index 0000000000..1d3d4a01d2 --- /dev/null +++ b/boost/geometry/srs/projections/proj/mill.hpp @@ -0,0 +1,167 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_MILL_HPP +#define BOOST_GEOMETRY_PROJECTIONS_MILL_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct mill {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace mill + { + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_mill_spheroid : public base_t_fi<base_mill_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_mill_spheroid(const Parameters& par) + : base_t_fi<base_mill_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + + xy_x = lp_lon; + xy_y = log(tan(FORTPI + lp_lat * .4)) * 1.25; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + + lp_lon = xy_x; + lp_lat = 2.5 * (atan(exp(.8 * xy_y)) - FORTPI); + } + + static inline std::string get_name() + { + return "mill_spheroid"; + } + + }; + + // Miller Cylindrical + template <typename Parameters> + inline void setup_mill(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::mill + #endif // doxygen + + /*! + \brief Miller Cylindrical projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Example + \image html ex_mill.gif + */ + template <typename CalculationType, typename Parameters> + struct mill_spheroid : public detail::mill::base_mill_spheroid<CalculationType, Parameters> + { + inline mill_spheroid(const Parameters& par) : detail::mill::base_mill_spheroid<CalculationType, Parameters>(par) + { + detail::mill::setup_mill(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::mill, mill_spheroid, mill_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class mill_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<mill_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void mill_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("mill", new mill_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_MILL_HPP + diff --git a/boost/geometry/srs/projections/proj/mod_ster.hpp b/boost/geometry/srs/projections/proj/mod_ster.hpp new file mode 100644 index 0000000000..8a50a275f9 --- /dev/null +++ b/boost/geometry/srs/projections/proj/mod_ster.hpp @@ -0,0 +1,522 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_MOD_STER_HPP +#define BOOST_GEOMETRY_PROJECTIONS_MOD_STER_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> +#include <boost/geometry/srs/projections/impl/pj_zpoly1.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct mil_os {}; + struct lee_os {}; + struct gs48 {}; + struct alsk {}; + struct gs50 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace mod_ster + { + + static const double EPSLN = 1e-10; + + template <typename T> + struct par_mod_ster + { + COMPLEX<T> *zcoeff; + T cchio, schio; + int n; + }; + + /* based upon Snyder and Linck, USGS-NMD */ + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_mod_ster_ellipsoid : public base_t_fi<base_mod_ster_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_mod_ster<CalculationType> m_proj_parm; + + inline base_mod_ster_ellipsoid(const Parameters& par) + : base_t_fi<base_mod_ster_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType sinlon, coslon, esphi, chi, schi, cchi, s; + COMPLEX<CalculationType> p; + + sinlon = sin(lp_lon); + coslon = cos(lp_lon); + esphi = this->m_par.e * sin(lp_lat); + chi = 2. * atan(tan((HALFPI + lp_lat) * .5) * + pow((1. - esphi) / (1. + esphi), this->m_par.e * .5)) - HALFPI; + schi = sin(chi); + cchi = cos(chi); + s = 2. / (1. + this->m_proj_parm.schio * schi + this->m_proj_parm.cchio * cchi * coslon); + p.r = s * cchi * sinlon; + p.i = s * (this->m_proj_parm.cchio * schi - this->m_proj_parm.schio * cchi * coslon); + p = pj_zpoly1(p, this->m_proj_parm.zcoeff, this->m_proj_parm.n); + xy_x = p.r; + xy_y = p.i; + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + int nn; + COMPLEX<CalculationType> p, fxy, fpxy, dp; + CalculationType den, rh = 0, z, sinz = 0, cosz = 0, chi, phi = 0, dphi, esphi; + + p.r = xy_x; + p.i = xy_y; + for (nn = 20; nn ;--nn) { + fxy = pj_zpolyd1(p, this->m_proj_parm.zcoeff, this->m_proj_parm.n, &fpxy); + fxy.r -= xy_x; + fxy.i -= xy_y; + den = fpxy.r * fpxy.r + fpxy.i * fpxy.i; + dp.r = -(fxy.r * fpxy.r + fxy.i * fpxy.i) / den; + dp.i = -(fxy.i * fpxy.r - fxy.r * fpxy.i) / den; + p.r += dp.r; + p.i += dp.i; + if ((fabs(dp.r) + fabs(dp.i)) <= EPSLN) + break; + } + if (nn) { + rh = boost::math::hypot(p.r, p.i); + z = 2. * atan(.5 * rh); + sinz = sin(z); + cosz = cos(z); + lp_lon = this->m_par.lam0; + if (fabs(rh) <= EPSLN) { + lp_lat = this->m_par.phi0; + return; + } + chi = aasin(cosz * this->m_proj_parm.schio + p.i * sinz * this->m_proj_parm.cchio / rh); + phi = chi; + for (nn = 20; nn ;--nn) { + esphi = this->m_par.e * sin(phi); + dphi = 2. * atan(tan((HALFPI + chi) * .5) * + pow((1. + esphi) / (1. - esphi), this->m_par.e * .5)) - HALFPI - phi; + phi += dphi; + if (fabs(dphi) <= EPSLN) + break; + } + } + if (nn) { + lp_lat = phi; + lp_lon = atan2(p.r * sinz, rh * this->m_proj_parm.cchio * cosz - p.i * + this->m_proj_parm.schio * sinz); + } else + lp_lon = lp_lat = HUGE_VAL; + } + + static inline std::string get_name() + { + return "mod_ster_ellipsoid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_mod_ster<T>& proj_parm) /* general initialization */ + { + T esphi, chio; + + if (par.es) { + esphi = par.e * sin(par.phi0); + chio = 2. * atan(tan((geometry::math::half_pi<T>() + par.phi0) * .5) * + pow((1. - esphi) / (1. + esphi), par.e * .5)) - geometry::math::half_pi<T>(); + } else + chio = par.phi0; + proj_parm.schio = sin(chio); + proj_parm.cchio = cos(chio); + } + + + // Miller Oblated Stereographic + template <typename Parameters, typename T> + inline void setup_mil_os(Parameters& par, par_mod_ster<T>& proj_parm) + { + static COMPLEX<T> /* Miller Oblated Stereographic */ + AB[] = { + {0.924500, 0.}, + {0., 0.}, + {0.019430, 0.} + }; + + proj_parm.n = 2; + par.lam0 = geometry::math::d2r<T>() * 20.; + par.phi0 = geometry::math::d2r<T>() * 18.; + proj_parm.zcoeff = AB; + par.es = 0.; + setup(par, proj_parm); + } + + // Lee Oblated Stereographic + template <typename Parameters, typename T> + inline void setup_lee_os(Parameters& par, par_mod_ster<T>& proj_parm) + { + static COMPLEX<T> /* Lee Oblated Stereographic */ + AB[] = { + {0.721316, 0.}, + {0., 0.}, + {-0.0088162, -0.00617325} + }; + + proj_parm.n = 2; + par.lam0 = geometry::math::d2r<T>() * -165.; + par.phi0 = geometry::math::d2r<T>() * -10.; + proj_parm.zcoeff = AB; + par.es = 0.; + setup(par, proj_parm); + } + + // Mod. Stererographics of 48 U.S. + template <typename Parameters, typename T> + inline void setup_gs48(Parameters& par, par_mod_ster<T>& proj_parm) + { + static COMPLEX<T> /* 48 United States */ + AB[] = { + {0.98879, 0.}, + {0., 0.}, + {-0.050909, 0.}, + {0., 0.}, + {0.075528, 0.} + }; + + proj_parm.n = 4; + par.lam0 = geometry::math::d2r<T>() * -96.; + par.phi0 = geometry::math::d2r<T>() * -39.; + proj_parm.zcoeff = AB; + par.es = 0.; + par.a = 6370997.; + setup(par, proj_parm); + } + + // Mod. Stererographics of Alaska + template <typename Parameters, typename T> + inline void setup_alsk(Parameters& par, par_mod_ster<T>& proj_parm) + { + static COMPLEX<T> + ABe[] = { /* Alaska ellipsoid */ + {.9945303, 0.}, + {.0052083, -.0027404}, + {.0072721, .0048181}, + {-.0151089, -.1932526}, + {.0642675, -.1381226}, + {.3582802, -.2884586}}, + ABs[] = { /* Alaska sphere */ + {.9972523, 0.}, + {.0052513, -.0041175}, + {.0074606, .0048125}, + {-.0153783, -.1968253}, + {.0636871, -.1408027}, + {.3660976, -.2937382} + }; + + proj_parm.n = 5; + par.lam0 = geometry::math::d2r<T>() * -152.; + par.phi0 = geometry::math::d2r<T>() * 64.; + if (par.es) { /* fixed ellipsoid/sphere */ + proj_parm.zcoeff = ABe; + par.a = 6378206.4; + par.e = sqrt(par.es = 0.00676866); + } else { + proj_parm.zcoeff = ABs; + par.a = 6370997.; + } + setup(par, proj_parm); + } + + // Mod. Stererographics of 50 U.S. + template <typename Parameters, typename T> + inline void setup_gs50(Parameters& par, par_mod_ster<T>& proj_parm) + { + static COMPLEX<T> + ABe[] = { /* GS50 ellipsoid */ + {.9827497, 0.}, + {.0210669, .0053804}, + {-.1031415, -.0571664}, + {-.0323337, -.0322847}, + {.0502303, .1211983}, + {.0251805, .0895678}, + {-.0012315, -.1416121}, + {.0072202, -.1317091}, + {-.0194029, .0759677}, + {-.0210072, .0834037} + }, + ABs[] = { /* GS50 sphere */ + {.9842990, 0.}, + {.0211642, .0037608}, + {-.1036018, -.0575102}, + {-.0329095, -.0320119}, + {.0499471, .1223335}, + {.0260460, .0899805}, + {.0007388, -.1435792}, + {.0075848, -.1334108}, + {-.0216473, .0776645}, + {-.0225161, .0853673} + }; + + proj_parm.n = 9; + par.lam0 = geometry::math::d2r<T>() * -120.; + par.phi0 = geometry::math::d2r<T>() * 45.; + if (par.es) { /* fixed ellipsoid/sphere */ + proj_parm.zcoeff = ABe; + par.a = 6378206.4; + par.e = sqrt(par.es = 0.00676866); + } else { + proj_parm.zcoeff = ABs; + par.a = 6370997.; + } + setup(par, proj_parm); + } + + }} // namespace detail::mod_ster + #endif // doxygen + + /*! + \brief Miller Oblated Stereographic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal (mod) + \par Example + \image html ex_mil_os.gif + */ + template <typename CalculationType, typename Parameters> + struct mil_os_ellipsoid : public detail::mod_ster::base_mod_ster_ellipsoid<CalculationType, Parameters> + { + inline mil_os_ellipsoid(const Parameters& par) : detail::mod_ster::base_mod_ster_ellipsoid<CalculationType, Parameters>(par) + { + detail::mod_ster::setup_mil_os(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Lee Oblated Stereographic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal (mod) + \par Example + \image html ex_lee_os.gif + */ + template <typename CalculationType, typename Parameters> + struct lee_os_ellipsoid : public detail::mod_ster::base_mod_ster_ellipsoid<CalculationType, Parameters> + { + inline lee_os_ellipsoid(const Parameters& par) : detail::mod_ster::base_mod_ster_ellipsoid<CalculationType, Parameters>(par) + { + detail::mod_ster::setup_lee_os(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Mod. Stererographics of 48 U.S. projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal (mod) + \par Example + \image html ex_gs48.gif + */ + template <typename CalculationType, typename Parameters> + struct gs48_ellipsoid : public detail::mod_ster::base_mod_ster_ellipsoid<CalculationType, Parameters> + { + inline gs48_ellipsoid(const Parameters& par) : detail::mod_ster::base_mod_ster_ellipsoid<CalculationType, Parameters>(par) + { + detail::mod_ster::setup_gs48(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Mod. Stererographics of Alaska projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal (mod) + \par Example + \image html ex_alsk.gif + */ + template <typename CalculationType, typename Parameters> + struct alsk_ellipsoid : public detail::mod_ster::base_mod_ster_ellipsoid<CalculationType, Parameters> + { + inline alsk_ellipsoid(const Parameters& par) : detail::mod_ster::base_mod_ster_ellipsoid<CalculationType, Parameters>(par) + { + detail::mod_ster::setup_alsk(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Mod. Stererographics of 50 U.S. projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal (mod) + \par Example + \image html ex_gs50.gif + */ + template <typename CalculationType, typename Parameters> + struct gs50_ellipsoid : public detail::mod_ster::base_mod_ster_ellipsoid<CalculationType, Parameters> + { + inline gs50_ellipsoid(const Parameters& par) : detail::mod_ster::base_mod_ster_ellipsoid<CalculationType, Parameters>(par) + { + detail::mod_ster::setup_gs50(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::mil_os, mil_os_ellipsoid, mil_os_ellipsoid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::lee_os, lee_os_ellipsoid, lee_os_ellipsoid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::gs48, gs48_ellipsoid, gs48_ellipsoid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::alsk, alsk_ellipsoid, alsk_ellipsoid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::gs50, gs50_ellipsoid, gs50_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class mil_os_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<mil_os_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class lee_os_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<lee_os_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class gs48_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<gs48_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class alsk_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<alsk_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class gs50_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<gs50_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void mod_ster_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("mil_os", new mil_os_entry<CalculationType, Parameters>); + factory.add_to_factory("lee_os", new lee_os_entry<CalculationType, Parameters>); + factory.add_to_factory("gs48", new gs48_entry<CalculationType, Parameters>); + factory.add_to_factory("alsk", new alsk_entry<CalculationType, Parameters>); + factory.add_to_factory("gs50", new gs50_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_MOD_STER_HPP + diff --git a/boost/geometry/srs/projections/proj/moll.hpp b/boost/geometry/srs/projections/proj/moll.hpp new file mode 100644 index 0000000000..6f02c7dea0 --- /dev/null +++ b/boost/geometry/srs/projections/proj/moll.hpp @@ -0,0 +1,294 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_MOLL_HPP +#define BOOST_GEOMETRY_PROJECTIONS_MOLL_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct moll {}; + struct wag4 {}; + struct wag5 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace moll + { + + static const int MAX_ITER = 10; + static const double LOOP_TOL = 1e-7; + + template <typename T> + struct par_moll + { + T C_x, C_y, C_p; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_moll_spheroid : public base_t_fi<base_moll_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_moll<CalculationType> m_proj_parm; + + inline base_moll_spheroid(const Parameters& par) + : base_t_fi<base_moll_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType k, V; + int i; + + k = this->m_proj_parm.C_p * sin(lp_lat); + for (i = MAX_ITER; i ; --i) { + lp_lat -= V = (lp_lat + sin(lp_lat) - k) / + (1. + cos(lp_lat)); + if (fabs(V) < LOOP_TOL) + break; + } + if (!i) + lp_lat = (lp_lat < 0.) ? -HALFPI : HALFPI; + else + lp_lat *= 0.5; + xy_x = this->m_proj_parm.C_x * lp_lon * cos(lp_lat); + xy_y = this->m_proj_parm.C_y * sin(lp_lat); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = aasin(xy_y / this->m_proj_parm.C_y); + lp_lon = xy_x / (this->m_proj_parm.C_x * cos(lp_lat)); + lp_lat += lp_lat; + lp_lat = aasin((lp_lat + sin(lp_lat)) / this->m_proj_parm.C_p); + } + + static inline std::string get_name() + { + return "moll_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_moll<T>& proj_parm, T const& p) + { + T r, sp, p2 = p + p; + + par.es = 0; + sp = sin(p); + r = sqrt(geometry::math::two_pi<T>() * sp / (p2 + sin(p2))); + proj_parm.C_x = 2. * r / geometry::math::pi<T>(); + proj_parm.C_y = r / sp; + proj_parm.C_p = p2 + sin(p2); + } + + + // Mollweide + template <typename Parameters, typename T> + inline void setup_moll(Parameters& par, par_moll<T>& proj_parm) + { + setup(par, proj_parm, geometry::math::half_pi<T>()); + } + + // Wagner IV + template <typename Parameters, typename T> + inline void setup_wag4(Parameters& par, par_moll<T>& proj_parm) + { + setup(par, proj_parm, geometry::math::pi<T>()/3.); + } + + // Wagner V + template <typename Parameters, typename T> + inline void setup_wag5(Parameters& par, par_moll<T>& proj_parm) + { + par.es = 0; + proj_parm.C_x = 0.90977; + proj_parm.C_y = 1.65014; + proj_parm.C_p = 3.00896; + } + + }} // namespace detail::moll + #endif // doxygen + + /*! + \brief Mollweide projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_moll.gif + */ + template <typename CalculationType, typename Parameters> + struct moll_spheroid : public detail::moll::base_moll_spheroid<CalculationType, Parameters> + { + inline moll_spheroid(const Parameters& par) : detail::moll::base_moll_spheroid<CalculationType, Parameters>(par) + { + detail::moll::setup_moll(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Wagner IV projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_wag4.gif + */ + template <typename CalculationType, typename Parameters> + struct wag4_spheroid : public detail::moll::base_moll_spheroid<CalculationType, Parameters> + { + inline wag4_spheroid(const Parameters& par) : detail::moll::base_moll_spheroid<CalculationType, Parameters>(par) + { + detail::moll::setup_wag4(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Wagner V projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_wag5.gif + */ + template <typename CalculationType, typename Parameters> + struct wag5_spheroid : public detail::moll::base_moll_spheroid<CalculationType, Parameters> + { + inline wag5_spheroid(const Parameters& par) : detail::moll::base_moll_spheroid<CalculationType, Parameters>(par) + { + detail::moll::setup_wag5(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::moll, moll_spheroid, moll_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::wag4, wag4_spheroid, wag4_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::wag5, wag5_spheroid, wag5_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class moll_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<moll_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class wag4_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<wag4_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class wag5_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<wag5_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void moll_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("moll", new moll_entry<CalculationType, Parameters>); + factory.add_to_factory("wag4", new wag4_entry<CalculationType, Parameters>); + factory.add_to_factory("wag5", new wag5_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_MOLL_HPP + diff --git a/boost/geometry/srs/projections/proj/natearth.hpp b/boost/geometry/srs/projections/proj/natearth.hpp new file mode 100644 index 0000000000..dcd259d9d1 --- /dev/null +++ b/boost/geometry/srs/projections/proj/natearth.hpp @@ -0,0 +1,228 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_NATEARTH_HPP +#define BOOST_GEOMETRY_PROJECTIONS_NATEARTH_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// The Natural Earth projection was designed by Tom Patterson, US National Park +// Service, in 2007, using Flex Projector. The shape of the original projection +// was defined at every 5 degrees and piece-wise cubic spline interpolation was +// used to compute the complete graticule. +// The code here uses polynomial functions instead of cubic splines and +// is therefore much simpler to program. The polynomial approximation was +// developed by Bojan Savric, in collaboration with Tom Patterson and Bernhard +// Jenny, Institute of Cartography, ETH Zurich. It slightly deviates from +// Patterson's original projection by adding additional curvature to meridians +// where they meet the horizontal pole line. This improvement is by intention +// and designed in collaboration with Tom Patterson. +// Port to PROJ.4 by Bernhard Jenny, 6 June 2011 + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct natearth {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace natearth + { + + static const double A0 = 0.8707; + static const double A1 = -0.131979; + static const double A2 = -0.013791; + static const double A3 = 0.003971; + static const double A4 = -0.001529; + static const double B0 = 1.007226; + static const double B1 = 0.015085; + static const double B2 = -0.044475; + static const double B3 = 0.028874; + static const double B4 = -0.005916; + static const double C0 = B0; + static const double C1 = (3 * B1); + static const double C2 = (7 * B2); + static const double C3 = (9 * B3); + static const double C4 = (11 * B4); + static const double EPS = 1e-11; + //static const double MAX_Y = (0.8707 * 0.52 * geometry::math::pi<double>()); + + template <typename T> + inline T MAX_Y() { return (0.8707 * 0.52 * detail::ONEPI<T>()); } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_natearth_spheroid : public base_t_fi<base_natearth_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_natearth_spheroid(const Parameters& par) + : base_t_fi<base_natearth_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType phi2, phi4; + + phi2 = lp_lat * lp_lat; + phi4 = phi2 * phi2; + xy_x = lp_lon * (A0 + phi2 * (A1 + phi2 * (A2 + phi4 * phi2 * (A3 + phi2 * A4)))); + xy_y = lp_lat * (B0 + phi2 * (B1 + phi4 * (B2 + B3 * phi2 + B4 * phi4))); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType MAX_Y = natearth::MAX_Y<CalculationType>(); + + CalculationType yc, tol, y2, y4, f, fder; + + /* make sure y is inside valid range */ + if (xy_y > MAX_Y) { + xy_y = MAX_Y; + } else if (xy_y < -MAX_Y) { + xy_y = -MAX_Y; + } + + /* latitude */ + yc = xy_y; + for (;;) { /* Newton-Raphson */ + y2 = yc * yc; + y4 = y2 * y2; + f = (yc * (B0 + y2 * (B1 + y4 * (B2 + B3 * y2 + B4 * y4)))) - xy_y; + fder = C0 + y2 * (C1 + y4 * (C2 + C3 * y2 + C4 * y4)); + yc -= tol = f / fder; + if (fabs(tol) < EPS) { + break; + } + } + lp_lat = yc; + + /* longitude */ + y2 = yc * yc; + lp_lon = xy_x / (A0 + y2 * (A1 + y2 * (A2 + y2 * y2 * y2 * (A3 + y2 * A4)))); + } + + static inline std::string get_name() + { + return "natearth_spheroid"; + } + + }; + + // Natural Earth + template <typename Parameters> + inline void setup_natearth(Parameters& par) + { + par.es = 0; + } + + }} // namespace detail::natearth + #endif // doxygen + + /*! + \brief Natural Earth projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_natearth.gif + */ + template <typename CalculationType, typename Parameters> + struct natearth_spheroid : public detail::natearth::base_natearth_spheroid<CalculationType, Parameters> + { + inline natearth_spheroid(const Parameters& par) : detail::natearth::base_natearth_spheroid<CalculationType, Parameters>(par) + { + detail::natearth::setup_natearth(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::natearth, natearth_spheroid, natearth_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class natearth_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<natearth_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void natearth_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("natearth", new natearth_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_NATEARTH_HPP + diff --git a/boost/geometry/srs/projections/proj/nell.hpp b/boost/geometry/srs/projections/proj/nell.hpp new file mode 100644 index 0000000000..351a4101f7 --- /dev/null +++ b/boost/geometry/srs/projections/proj/nell.hpp @@ -0,0 +1,180 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_NELL_HPP +#define BOOST_GEOMETRY_PROJECTIONS_NELL_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct nell {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace nell + { + + static const int MAX_ITER = 10; + static const double LOOP_TOL = 1e-7; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_nell_spheroid : public base_t_fi<base_nell_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_nell_spheroid(const Parameters& par) + : base_t_fi<base_nell_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType k, V; + int i; + + k = 2. * sin(lp_lat); + V = lp_lat * lp_lat; + lp_lat *= 1.00371 + V * (-0.0935382 + V * -0.011412); + for (i = MAX_ITER; i ; --i) { + lp_lat -= V = (lp_lat + sin(lp_lat) - k) / + (1. + cos(lp_lat)); + if (fabs(V) < LOOP_TOL) + break; + } + xy_x = 0.5 * lp_lon * (1. + cos(lp_lat)); + xy_y = lp_lat; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lon = 2. * xy_x / (1. + cos(xy_y)); + lp_lat = aasin(0.5 * (xy_y + sin(xy_y))); + } + + static inline std::string get_name() + { + return "nell_spheroid"; + } + + }; + + // Nell + template <typename Parameters> + inline void setup_nell(Parameters& par) + { + par.es = 0; + } + + }} // namespace detail::nell + #endif // doxygen + + /*! + \brief Nell projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_nell.gif + */ + template <typename CalculationType, typename Parameters> + struct nell_spheroid : public detail::nell::base_nell_spheroid<CalculationType, Parameters> + { + inline nell_spheroid(const Parameters& par) : detail::nell::base_nell_spheroid<CalculationType, Parameters>(par) + { + detail::nell::setup_nell(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::nell, nell_spheroid, nell_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class nell_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<nell_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void nell_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("nell", new nell_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_NELL_HPP + diff --git a/boost/geometry/srs/projections/proj/nell_h.hpp b/boost/geometry/srs/projections/proj/nell_h.hpp new file mode 100644 index 0000000000..05de9e263e --- /dev/null +++ b/boost/geometry/srs/projections/proj/nell_h.hpp @@ -0,0 +1,184 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_NELL_H_HPP +#define BOOST_GEOMETRY_PROJECTIONS_NELL_H_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct nell_h {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace nell_h + { + + static const int NITER = 9; + static const double EPS = 1e-7; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_nell_h_spheroid : public base_t_fi<base_nell_h_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_nell_h_spheroid(const Parameters& par) + : base_t_fi<base_nell_h_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = 0.5 * lp_lon * (1. + cos(lp_lat)); + xy_y = 2.0 * (lp_lat - tan(0.5 *lp_lat)); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType V, c, p; + int i; + + p = 0.5 * xy_y; + for (i = NITER; i ; --i) { + c = cos(0.5 * lp_lat); + lp_lat -= V = (lp_lat - tan(lp_lat/2) - p)/(1. - 0.5/(c*c)); + if (fabs(V) < EPS) + break; + } + if (!i) { + lp_lat = p < 0. ? -HALFPI : HALFPI; + lp_lon = 2. * xy_x; + } else + lp_lon = 2. * xy_x / (1. + cos(lp_lat)); + } + + static inline std::string get_name() + { + return "nell_h_spheroid"; + } + + }; + + // Nell-Hammer + template <typename Parameters> + inline void setup_nell_h(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::nell_h + #endif // doxygen + + /*! + \brief Nell-Hammer projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_nell_h.gif + */ + template <typename CalculationType, typename Parameters> + struct nell_h_spheroid : public detail::nell_h::base_nell_h_spheroid<CalculationType, Parameters> + { + inline nell_h_spheroid(const Parameters& par) : detail::nell_h::base_nell_h_spheroid<CalculationType, Parameters>(par) + { + detail::nell_h::setup_nell_h(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::nell_h, nell_h_spheroid, nell_h_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class nell_h_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<nell_h_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void nell_h_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("nell_h", new nell_h_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_NELL_H_HPP + diff --git a/boost/geometry/srs/projections/proj/nocol.hpp b/boost/geometry/srs/projections/proj/nocol.hpp new file mode 100644 index 0000000000..ef2e95a843 --- /dev/null +++ b/boost/geometry/srs/projections/proj/nocol.hpp @@ -0,0 +1,190 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_NOCOL_HPP +#define BOOST_GEOMETRY_PROJECTIONS_NOCOL_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct nicol {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace nocol + { + + static const double EPS = 1e-10; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_nocol_spheroid : public base_t_f<base_nocol_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_nocol_spheroid(const Parameters& par) + : base_t_f<base_nocol_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + if (fabs(lp_lon) < EPS) { + xy_x = 0; + xy_y = lp_lat; + } else if (fabs(lp_lat) < EPS) { + xy_x = lp_lon; + xy_y = 0.; + } else if (fabs(fabs(lp_lon) - HALFPI) < EPS) { + xy_x = lp_lon * cos(lp_lat); + xy_y = HALFPI * sin(lp_lat); + } else if (fabs(fabs(lp_lat) - HALFPI) < EPS) { + xy_x = 0; + xy_y = lp_lat; + } else { + CalculationType tb, c, d, m, n, r2, sp; + + tb = HALFPI / lp_lon - lp_lon / HALFPI; + c = lp_lat / HALFPI; + d = (1 - c * c)/((sp = sin(lp_lat)) - c); + r2 = tb / d; + r2 *= r2; + m = (tb * sp / d - 0.5 * tb)/(1. + r2); + n = (sp / r2 + 0.5 * d)/(1. + 1./r2); + xy_x = cos(lp_lat); + xy_x = sqrt(m * m + xy_x * xy_x / (1. + r2)); + xy_x = HALFPI * ( m + (lp_lon < 0. ? -xy_x : xy_x)); + xy_y = sqrt(n * n - (sp * sp / r2 + d * sp - 1.) / + (1. + 1./r2)); + xy_y = HALFPI * ( n + (lp_lat < 0. ? xy_y : -xy_y )); + } + } + + static inline std::string get_name() + { + return "nocol_spheroid"; + } + + }; + + // Nicolosi Globular + template <typename Parameters> + inline void setup_nicol(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::nocol + #endif // doxygen + + /*! + \brief Nicolosi Globular projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Example + \image html ex_nicol.gif + */ + template <typename CalculationType, typename Parameters> + struct nicol_spheroid : public detail::nocol::base_nocol_spheroid<CalculationType, Parameters> + { + inline nicol_spheroid(const Parameters& par) : detail::nocol::base_nocol_spheroid<CalculationType, Parameters>(par) + { + detail::nocol::setup_nicol(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::nicol, nicol_spheroid, nicol_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class nicol_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<nicol_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void nocol_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("nicol", new nicol_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_NOCOL_HPP + diff --git a/boost/geometry/srs/projections/proj/nsper.hpp b/boost/geometry/srs/projections/proj/nsper.hpp new file mode 100644 index 0000000000..85576bf963 --- /dev/null +++ b/boost/geometry/srs/projections/proj/nsper.hpp @@ -0,0 +1,355 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_NSPER_HPP +#define BOOST_GEOMETRY_PROJECTIONS_NSPER_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/config.hpp> +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct nsper {}; + struct tpers {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace nsper + { + + static const double EPS10 = 1.e-10; + static const int N_POLE = 0; + static const int S_POLE = 1; + static const int EQUIT = 2; + static const int OBLIQ = 3; + + template <typename T> + struct par_nsper + { + T height; + T sinph0; + T cosph0; + T p; + T rp; + T pn1; + T pfact; + T h; + T cg; + T sg; + T sw; + T cw; + int mode; + int tilt; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_nsper_spheroid : public base_t_fi<base_nsper_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_nsper<CalculationType> m_proj_parm; + + inline base_nsper_spheroid(const Parameters& par) + : base_t_fi<base_nsper_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType coslam, cosphi, sinphi; + + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + coslam = cos(lp_lon); + switch (this->m_proj_parm.mode) { + case OBLIQ: + xy_y = this->m_proj_parm.sinph0 * sinphi + this->m_proj_parm.cosph0 * cosphi * coslam; + break; + case EQUIT: + xy_y = cosphi * coslam; + break; + case S_POLE: + xy_y = - sinphi; + break; + case N_POLE: + xy_y = sinphi; + break; + } + if (xy_y < this->m_proj_parm.rp) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_y = this->m_proj_parm.pn1 / (this->m_proj_parm.p - xy_y); + xy_x = xy_y * cosphi * sin(lp_lon); + switch (this->m_proj_parm.mode) { + case OBLIQ: + xy_y *= (this->m_proj_parm.cosph0 * sinphi - + this->m_proj_parm.sinph0 * cosphi * coslam); + break; + case EQUIT: + xy_y *= sinphi; + break; + case N_POLE: + coslam = - coslam; + BOOST_FALLTHROUGH; + case S_POLE: + xy_y *= cosphi * coslam; + break; + } + if (this->m_proj_parm.tilt) { + CalculationType yt, ba; + + yt = xy_y * this->m_proj_parm.cg + xy_x * this->m_proj_parm.sg; + ba = 1. / (yt * this->m_proj_parm.sw * this->m_proj_parm.h + this->m_proj_parm.cw); + xy_x = (xy_x * this->m_proj_parm.cg - xy_y * this->m_proj_parm.sg) * this->m_proj_parm.cw * ba; + xy_y = yt * ba; + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType rh, cosz, sinz; + + if (this->m_proj_parm.tilt) { + CalculationType bm, bq, yt; + + yt = 1./(this->m_proj_parm.pn1 - xy_y * this->m_proj_parm.sw); + bm = this->m_proj_parm.pn1 * xy_x * yt; + bq = this->m_proj_parm.pn1 * xy_y * this->m_proj_parm.cw * yt; + xy_x = bm * this->m_proj_parm.cg + bq * this->m_proj_parm.sg; + xy_y = bq * this->m_proj_parm.cg - bm * this->m_proj_parm.sg; + } + rh = boost::math::hypot(xy_x, xy_y); + if ((sinz = 1. - rh * rh * this->m_proj_parm.pfact) < 0.) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + sinz = (this->m_proj_parm.p - sqrt(sinz)) / (this->m_proj_parm.pn1 / rh + rh / this->m_proj_parm.pn1); + cosz = sqrt(1. - sinz * sinz); + if (fabs(rh) <= EPS10) { + lp_lon = 0.; + lp_lat = this->m_par.phi0; + } else { + switch (this->m_proj_parm.mode) { + case OBLIQ: + lp_lat = asin(cosz * this->m_proj_parm.sinph0 + xy_y * sinz * this->m_proj_parm.cosph0 / rh); + xy_y = (cosz - this->m_proj_parm.sinph0 * sin(lp_lat)) * rh; + xy_x *= sinz * this->m_proj_parm.cosph0; + break; + case EQUIT: + lp_lat = asin(xy_y * sinz / rh); + xy_y = cosz * rh; + xy_x *= sinz; + break; + case N_POLE: + lp_lat = asin(cosz); + xy_y = -xy_y; + break; + case S_POLE: + lp_lat = - asin(cosz); + break; + } + lp_lon = atan2(xy_x, xy_y); + } + } + + static inline std::string get_name() + { + return "nsper_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_nsper<T>& proj_parm) + { + if ((proj_parm.height = pj_param(par.params, "dh").f) <= 0.) + BOOST_THROW_EXCEPTION( projection_exception(-30) ); + if (fabs(fabs(par.phi0) - geometry::math::half_pi<T>()) < EPS10) + proj_parm.mode = par.phi0 < 0. ? S_POLE : N_POLE; + else if (fabs(par.phi0) < EPS10) + proj_parm.mode = EQUIT; + else { + proj_parm.mode = OBLIQ; + proj_parm.sinph0 = sin(par.phi0); + proj_parm.cosph0 = cos(par.phi0); + } + proj_parm.pn1 = proj_parm.height / par.a; /* normalize by radius */ + proj_parm.p = 1. + proj_parm.pn1; + proj_parm.rp = 1. / proj_parm.p; + proj_parm.h = 1. / proj_parm.pn1; + proj_parm.pfact = (proj_parm.p + 1.) * proj_parm.h; + par.es = 0.; + } + + + // Near-sided perspective + template <typename Parameters, typename T> + inline void setup_nsper(Parameters& par, par_nsper<T>& proj_parm) + { + proj_parm.tilt = 0; + setup(par, proj_parm); + } + + // Tilted perspective + template <typename Parameters, typename T> + inline void setup_tpers(Parameters& par, par_nsper<T>& proj_parm) + { + T omega, gamma; + + omega = pj_param(par.params, "dtilt").f * geometry::math::d2r<T>(); + gamma = pj_param(par.params, "dazi").f * geometry::math::d2r<T>(); + proj_parm.tilt = 1; + proj_parm.cg = cos(gamma); proj_parm.sg = sin(gamma); + proj_parm.cw = cos(omega); proj_parm.sw = sin(omega); + setup(par, proj_parm); + } + + }} // namespace detail::nsper + #endif // doxygen + + /*! + \brief Near-sided perspective projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + \par Projection parameters + - h: Height + \par Example + \image html ex_nsper.gif + */ + template <typename CalculationType, typename Parameters> + struct nsper_spheroid : public detail::nsper::base_nsper_spheroid<CalculationType, Parameters> + { + inline nsper_spheroid(const Parameters& par) : detail::nsper::base_nsper_spheroid<CalculationType, Parameters>(par) + { + detail::nsper::setup_nsper(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Tilted perspective projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + \par Projection parameters + - tilt: Tilt, or Omega (real) + - azi: Azimuth (or Gamma) (real) + - h: Height + \par Example + \image html ex_tpers.gif + */ + template <typename CalculationType, typename Parameters> + struct tpers_spheroid : public detail::nsper::base_nsper_spheroid<CalculationType, Parameters> + { + inline tpers_spheroid(const Parameters& par) : detail::nsper::base_nsper_spheroid<CalculationType, Parameters>(par) + { + detail::nsper::setup_tpers(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::nsper, nsper_spheroid, nsper_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::tpers, tpers_spheroid, tpers_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class nsper_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<nsper_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class tpers_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<tpers_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void nsper_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("nsper", new nsper_entry<CalculationType, Parameters>); + factory.add_to_factory("tpers", new tpers_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_NSPER_HPP + diff --git a/boost/geometry/srs/projections/proj/nzmg.hpp b/boost/geometry/srs/projections/proj/nzmg.hpp new file mode 100644 index 0000000000..067eece27a --- /dev/null +++ b/boost/geometry/srs/projections/proj/nzmg.hpp @@ -0,0 +1,255 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_NZMG_HPP +#define BOOST_GEOMETRY_PROJECTIONS_NZMG_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Purpose: Implementation of the nzmg (New Zealand Map Grid) projection. +// Very loosely based upon DMA code by Bradford W. Drew +// Author: Gerald Evenden +// Copyright (c) 1995, Gerald Evenden + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_zpoly1.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct nzmg {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace nzmg + { + + static const double EPSLN = 1e-10; + //static const double SEC5_TO_RAD = 0.4848136811095359935899141023; + //static const double RAD_TO_SEC5 = 2.062648062470963551564733573; + static const int Nbf = 5; + static const int Ntpsi = 9; + static const int Ntphi = 8; + + template <typename T> + inline T SEC5_TO_RAD() { return 0.4848136811095359935899141023; } + template <typename T> + inline T RAD_TO_SEC5() { return 2.062648062470963551564733573; } + + template <typename T> + inline const COMPLEX<T> * bf() + { + static const COMPLEX<T> result[] = { + {.7557853228, 0.0}, + {.249204646, .003371507}, + {-.001541739, .041058560}, + {-.10162907, .01727609}, + {-.26623489, -.36249218}, + {-.6870983, -1.1651967} + }; + return result; + } + + template <typename T> + inline const T * tphi() + { + static const T result[] = { 1.5627014243, .5185406398, -.03333098, -.1052906, -.0368594, + .007317, .01220, .00394, -.0013 }; + return result; + } + template <typename T> + inline const T * tpsi() + { + static const T result[] = { .6399175073, -.1358797613, .063294409, -.02526853, .0117879, + -.0055161, .0026906, -.001333, .00067, -.00034 }; + return result; + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_nzmg_ellipsoid : public base_t_fi<base_nzmg_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_nzmg_ellipsoid(const Parameters& par) + : base_t_fi<base_nzmg_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType RAD_TO_SEC5 = nzmg::RAD_TO_SEC5<CalculationType>(); + + COMPLEX<CalculationType> p; + const CalculationType * C; + int i; + + lp_lat = (lp_lat - this->m_par.phi0) * RAD_TO_SEC5; + for (p.r = *(C = tpsi<CalculationType>() + (i = Ntpsi)); i ; --i) + p.r = *--C + lp_lat * p.r; + p.r *= lp_lat; + p.i = lp_lon; + p = pj_zpoly1(p, bf<CalculationType>(), Nbf); + xy_x = p.i; + xy_y = p.r; + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType SEC5_TO_RAD = nzmg::SEC5_TO_RAD<CalculationType>(); + + int nn, i; + COMPLEX<CalculationType> p, f, fp, dp; + CalculationType den; + const CalculationType* C; + + p.r = xy_y; + p.i = xy_x; + for (nn = 20; nn ;--nn) { + f = pj_zpolyd1(p, bf<CalculationType>(), Nbf, &fp); + f.r -= xy_y; + f.i -= xy_x; + den = fp.r * fp.r + fp.i * fp.i; + p.r += dp.r = -(f.r * fp.r + f.i * fp.i) / den; + p.i += dp.i = -(f.i * fp.r - f.r * fp.i) / den; + if ((fabs(dp.r) + fabs(dp.i)) <= EPSLN) + break; + } + if (nn) { + lp_lon = p.i; + for (lp_lat = *(C = tphi<CalculationType>() + (i = Ntphi)); i ; --i) + lp_lat = *--C + p.r * lp_lat; + lp_lat = this->m_par.phi0 + p.r * lp_lat * SEC5_TO_RAD; + } else + lp_lon = lp_lat = HUGE_VAL; + } + + static inline std::string get_name() + { + return "nzmg_ellipsoid"; + } + + }; + + // New Zealand Map Grid + template <typename Parameters> + inline void setup_nzmg(Parameters& par) + { + typedef typename Parameters::type calc_t; + + /* force to International major axis */ + par.ra = 1. / (par.a = 6378388.0); + par.lam0 = geometry::math::d2r<calc_t>() * 173.; + par.phi0 = geometry::math::d2r<calc_t>() * -41.; + par.x0 = 2510000.; + par.y0 = 6023150.; + } + + }} // namespace detail::nzmg + #endif // doxygen + + /*! + \brief New Zealand Map Grid projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Fixed Earth + \par Example + \image html ex_nzmg.gif + */ + template <typename CalculationType, typename Parameters> + struct nzmg_ellipsoid : public detail::nzmg::base_nzmg_ellipsoid<CalculationType, Parameters> + { + inline nzmg_ellipsoid(const Parameters& par) : detail::nzmg::base_nzmg_ellipsoid<CalculationType, Parameters>(par) + { + detail::nzmg::setup_nzmg(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::nzmg, nzmg_ellipsoid, nzmg_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class nzmg_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<nzmg_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void nzmg_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("nzmg", new nzmg_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_NZMG_HPP + diff --git a/boost/geometry/srs/projections/proj/ob_tran.hpp b/boost/geometry/srs/projections/proj/ob_tran.hpp new file mode 100644 index 0000000000..ae74cc27d2 --- /dev/null +++ b/boost/geometry/srs/projections/proj/ob_tran.hpp @@ -0,0 +1,575 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_OB_TRAN_HPP +#define BOOST_GEOMETRY_PROJECTIONS_OB_TRAN_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> +#include <boost/shared_ptr.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + //struct ob_tran_oblique {}; + //struct ob_tran_transverse {}; + struct ob_tran {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { + + // fwd declaration needed below + template <typename CalculationType> + inline detail::base_v<CalculationType, parameters<CalculationType> >* + create_new(parameters<CalculationType> const& parameters); + + } // namespace detail + + namespace detail { namespace ob_tran + { + + static const double TOL = 1e-10; + + template <typename Parameters> + inline Parameters o_proj_parameters(Parameters const& par) + { + Parameters pj; + + /* get name of projection to be translated */ + pj.name = pj_param(par.params, "so_proj").s; + /* copy existing header into new */ + pj.params = par.params; + pj.over = par.over; + pj.geoc = par.geoc; + pj.a = par.a; + pj.es = par.es; + pj.ra = par.ra; + pj.lam0 = par.lam0; + pj.phi0 = par.phi0; + pj.x0 = par.x0; + pj.y0 = par.y0; + pj.k0 = par.k0; + /* force spherical earth */ + pj.one_es = pj.rone_es = 1.; + pj.es = pj.e = 0.; + + return pj; + } + + template <typename CalculationType, typename Parameters> + struct par_ob_tran + { + par_ob_tran(Parameters const& par) + : link(projections::detail::create_new(o_proj_parameters(par))) + { + if (! link.get()) + BOOST_THROW_EXCEPTION( projection_exception(-26) ); + } + + template <typename T> + inline void fwd(T& lp_lon, T& lp_lat, T& xy_x, T& xy_y) const + { + link->fwd(lp_lon, lp_lat, xy_x, xy_y); + } + + template <typename T> + inline void inv(T& xy_x, T& xy_y, T& lp_lon, T& lp_lat) const + { + link->inv(xy_x, xy_y, lp_lon, lp_lat); + } + + boost::shared_ptr<base_v<CalculationType, Parameters> > link; + CalculationType lamp; + CalculationType cphip, sphip; + }; + + template <typename StaticParameters, typename CalculationType, typename Parameters> + struct par_ob_tran_static + { + typedef typename srs::par4::detail::pick_o_proj_tag + < + StaticParameters + >::type o_proj_tag; + + typedef typename projections::detail::static_projection_type + < + o_proj_tag, + srs_sphere_tag, // force spherical + StaticParameters, + CalculationType, + Parameters + >::type projection_type; + + par_ob_tran_static(Parameters const& par) + : link(o_proj_parameters(par)) + {} + + template <typename T> + inline void fwd(T& lp_lon, T& lp_lat, T& xy_x, T& xy_y) const + { + link.fwd(lp_lon, lp_lat, xy_x, xy_y); + } + + template <typename T> + inline void inv(T& xy_x, T& xy_y, T& lp_lon, T& lp_lat) const + { + link.inv(xy_x, xy_y, lp_lon, lp_lat); + } + + projection_type link; + CalculationType lamp; + CalculationType cphip, sphip; + }; + + template <typename T, typename Par> + inline void o_forward(T& lp_lon, T& lp_lat, T& xy_x, T& xy_y, Par const& proj_parm) + { + T coslam, sinphi, cosphi; + + coslam = cos(lp_lon); + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + lp_lon = adjlon(aatan2(cosphi * sin(lp_lon), proj_parm.sphip * cosphi * coslam + + proj_parm.cphip * sinphi) + proj_parm.lamp); + lp_lat = aasin(proj_parm.sphip * sinphi - proj_parm.cphip * cosphi * coslam); + + proj_parm.fwd(lp_lon, lp_lat, xy_x, xy_y); + } + + template <typename T, typename Par> + inline void o_inverse(T& xy_x, T& xy_y, T& lp_lon, T& lp_lat, Par const& proj_parm) + { + T coslam, sinphi, cosphi; + + proj_parm.inv(xy_x, xy_y, lp_lon, lp_lat); + if (lp_lon != HUGE_VAL) { + coslam = cos(lp_lon -= proj_parm.lamp); + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + lp_lat = aasin(proj_parm.sphip * sinphi + proj_parm.cphip * cosphi * coslam); + lp_lon = aatan2(cosphi * sin(lp_lon), proj_parm.sphip * cosphi * coslam - + proj_parm.cphip * sinphi); + } + } + + template <typename T, typename Par> + inline void t_forward(T& lp_lon, T& lp_lat, T& xy_x, T& xy_y, Par const& proj_parm) + { + T cosphi, coslam; + + cosphi = cos(lp_lat); + coslam = cos(lp_lon); + lp_lon = adjlon(aatan2(cosphi * sin(lp_lon), sin(lp_lat)) + proj_parm.lamp); + lp_lat = aasin(- cosphi * coslam); + proj_parm.fwd(lp_lon, lp_lat, xy_x, xy_y); + } + + template <typename T, typename Par> + inline void t_inverse(T& xy_x, T& xy_y, T& lp_lon, T& lp_lat, Par const& proj_parm) + { + T cosphi, t; + + proj_parm.inv(xy_x, xy_y, lp_lon, lp_lat); + if (lp_lon != HUGE_VAL) { + cosphi = cos(lp_lat); + t = lp_lon - proj_parm.lamp; + lp_lon = aatan2(cosphi * sin(t), - sin(lp_lat)); + lp_lat = aasin(cosphi * cos(t)); + } + } + + // General Oblique Transformation + template <typename CalculationType, typename Parameters, typename ProjParameters> + inline CalculationType setup_ob_tran(Parameters & par, ProjParameters& proj_parm) + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType phip; + + par.es = 0.; /* force to spherical */ + + // proj_parm.link should be created at this point + + if (pj_param(par.params, "to_alpha").i) { + CalculationType lamc, phic, alpha; + + lamc = pj_param(par.params, "ro_lon_c").f; + phic = pj_param(par.params, "ro_lat_c").f; + alpha = pj_param(par.params, "ro_alpha").f; + /* + if (fabs(phic) <= TOL || + fabs(fabs(phic) - HALFPI) <= TOL || + fabs(fabs(alpha) - HALFPI) <= TOL) + */ + if (fabs(fabs(phic) - HALFPI) <= TOL) + BOOST_THROW_EXCEPTION( projection_exception(-32) ); + proj_parm.lamp = lamc + aatan2(-cos(alpha), -sin(alpha) * sin(phic)); + phip = aasin(cos(phic) * sin(alpha)); + } else if (pj_param(par.params, "to_lat_p").i) { /* specified new pole */ + proj_parm.lamp = pj_param(par.params, "ro_lon_p").f; + phip = pj_param(par.params, "ro_lat_p").f; + } else { /* specified new "equator" points */ + CalculationType lam1, lam2, phi1, phi2, con; + + lam1 = pj_param(par.params, "ro_lon_1").f; + phi1 = pj_param(par.params, "ro_lat_1").f; + lam2 = pj_param(par.params, "ro_lon_2").f; + phi2 = pj_param(par.params, "ro_lat_2").f; + if (fabs(phi1 - phi2) <= TOL || + (con = fabs(phi1)) <= TOL || + fabs(con - HALFPI) <= TOL || + fabs(fabs(phi2) - HALFPI) <= TOL) + BOOST_THROW_EXCEPTION( projection_exception(-33) ); + proj_parm.lamp = atan2(cos(phi1) * sin(phi2) * cos(lam1) - + sin(phi1) * cos(phi2) * cos(lam2), + sin(phi1) * cos(phi2) * sin(lam2) - + cos(phi1) * sin(phi2) * sin(lam1)); + phip = atan(-cos(proj_parm.lamp - lam1) / tan(phi1)); + } + if (fabs(phip) > TOL) { /* oblique */ + proj_parm.cphip = cos(phip); + proj_parm.sphip = sin(phip); + } else { /* transverse */ + } + // return phip to choose model + return phip; + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_ob_tran_oblique : public base_t_fi<base_ob_tran_oblique<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_ob_tran<CalculationType, Parameters> m_proj_parm; + + inline base_ob_tran_oblique(Parameters const& par, + par_ob_tran<CalculationType, Parameters> const& proj_parm) + : base_t_fi + < + base_ob_tran_oblique<CalculationType, Parameters>, CalculationType, Parameters + >(*this, par) + , m_proj_parm(proj_parm) + {} + + // FORWARD(o_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + o_forward(lp_lon, lp_lat, xy_x, xy_y, this->m_proj_parm); + } + + // INVERSE(o_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + o_inverse(xy_x, xy_y, lp_lon, lp_lat, this->m_proj_parm); + } + + static inline std::string get_name() + { + return "ob_tran_oblique"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_ob_tran_transverse : public base_t_fi<base_ob_tran_transverse<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_ob_tran<CalculationType, Parameters> m_proj_parm; + + inline base_ob_tran_transverse(Parameters const& par, + par_ob_tran<CalculationType, Parameters> const& proj_parm) + : base_t_fi + < + base_ob_tran_transverse<CalculationType, Parameters>, CalculationType, Parameters + >(*this, par) + , m_proj_parm(proj_parm) + {} + + // FORWARD(t_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + t_forward(lp_lon, lp_lat, xy_x, xy_y, this->m_proj_parm); + } + + // INVERSE(t_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + t_inverse(xy_x, xy_y, lp_lon, lp_lat, this->m_proj_parm); + } + + static inline std::string get_name() + { + return "ob_tran_transverse"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename StaticParameters, typename CalculationType, typename Parameters> + struct base_ob_tran_static : public base_t_fi<base_ob_tran_static<StaticParameters, CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_ob_tran_static<StaticParameters, CalculationType, Parameters> m_proj_parm; + bool m_is_oblique; + + inline base_ob_tran_static(Parameters const& par) + : base_t_fi<base_ob_tran_static<StaticParameters, CalculationType, Parameters>, CalculationType, Parameters>(*this, par) + , m_proj_parm(par) + {} + + // FORWARD(o_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + if (m_is_oblique) { + o_forward(lp_lon, lp_lat, xy_x, xy_y, this->m_proj_parm); + } else { + t_forward(lp_lon, lp_lat, xy_x, xy_y, this->m_proj_parm); + } + } + + // INVERSE(o_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + if (m_is_oblique) { + o_inverse(xy_x, xy_y, lp_lon, lp_lat, this->m_proj_parm); + } else { + t_inverse(xy_x, xy_y, lp_lon, lp_lat, this->m_proj_parm); + } + } + + static inline std::string get_name() + { + return "ob_tran"; + } + + }; + + }} // namespace detail::ob_tran + #endif // doxygen + + /*! + \brief General Oblique Transformation projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + \par Projection parameters + - o_proj (string) + - Plus projection parameters + - o_lat_p (degrees) + - o_lon_p (degrees) + - New pole + - o_alpha: Alpha (degrees) + - o_lon_c (degrees) + - o_lat_c (degrees) + - o_lon_1 (degrees) + - o_lat_1: Latitude of first standard parallel (degrees) + - o_lon_2 (degrees) + - o_lat_2: Latitude of second standard parallel (degrees) + \par Example + \image html ex_ob_tran.gif + */ + template <typename CalculationType, typename Parameters> + struct ob_tran_oblique : public detail::ob_tran::base_ob_tran_oblique<CalculationType, Parameters> + { + inline ob_tran_oblique(Parameters const& par, + detail::ob_tran::par_ob_tran<CalculationType, Parameters> const& proj_parm) + : detail::ob_tran::base_ob_tran_oblique<CalculationType, Parameters>(par, proj_parm) + { + // already done + //detail::ob_tran::setup_ob_tran(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief General Oblique Transformation projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + \par Projection parameters + - o_proj (string) + - Plus projection parameters + - o_lat_p (degrees) + - o_lon_p (degrees) + - New pole + - o_alpha: Alpha (degrees) + - o_lon_c (degrees) + - o_lat_c (degrees) + - o_lon_1 (degrees) + - o_lat_1: Latitude of first standard parallel (degrees) + - o_lon_2 (degrees) + - o_lat_2: Latitude of second standard parallel (degrees) + \par Example + \image html ex_ob_tran.gif + */ + template <typename CalculationType, typename Parameters> + struct ob_tran_transverse : public detail::ob_tran::base_ob_tran_transverse<CalculationType, Parameters> + { + inline ob_tran_transverse(Parameters const& par, + detail::ob_tran::par_ob_tran<CalculationType, Parameters> const& proj_parm) + : detail::ob_tran::base_ob_tran_transverse<CalculationType, Parameters>(par, proj_parm) + { + // already done + //detail::ob_tran::setup_ob_tran(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief General Oblique Transformation projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + \par Projection parameters + - o_proj (string) + - Plus projection parameters + - o_lat_p (degrees) + - o_lon_p (degrees) + - New pole + - o_alpha: Alpha (degrees) + - o_lon_c (degrees) + - o_lat_c (degrees) + - o_lon_1 (degrees) + - o_lat_1: Latitude of first standard parallel (degrees) + - o_lon_2 (degrees) + - o_lat_2: Latitude of second standard parallel (degrees) + \par Example + \image html ex_ob_tran.gif + */ + template <typename StaticParameters, typename CalculationType, typename Parameters> + struct ob_tran_static : public detail::ob_tran::base_ob_tran_static<StaticParameters, CalculationType, Parameters> + { + inline ob_tran_static(const Parameters& par) + : detail::ob_tran::base_ob_tran_static<StaticParameters, CalculationType, Parameters>(par) + { + CalculationType phip = detail::ob_tran::setup_ob_tran<CalculationType>(this->m_par, this->m_proj_parm); + this->m_is_oblique = fabs(phip) > detail::ob_tran::TOL; + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + template <typename BGP, typename CT, typename P> + struct static_projection_type<srs::par4::ob_tran, srs_sphere_tag, BGP, CT, P> + { + typedef ob_tran_static<BGP, CT, P> type; + }; + template <typename BGP, typename CT, typename P> + struct static_projection_type<srs::par4::ob_tran, srs_spheroid_tag, BGP, CT, P> + { + typedef ob_tran_static<BGP, CT, P> type; + }; + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class ob_tran_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + Parameters params = par; + detail::ob_tran::par_ob_tran<CalculationType, Parameters> proj_parm(params); + CalculationType phip = detail::ob_tran::setup_ob_tran<CalculationType>(params, proj_parm); + + if (fabs(phip) > detail::ob_tran::TOL) + return new base_v_fi<ob_tran_oblique<CalculationType, Parameters>, CalculationType, Parameters>(params, proj_parm); + else + return new base_v_fi<ob_tran_transverse<CalculationType, Parameters>, CalculationType, Parameters>(params, proj_parm); + } + }; + + template <typename CalculationType, typename Parameters> + inline void ob_tran_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("ob_tran", new ob_tran_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_OB_TRAN_HPP + diff --git a/boost/geometry/srs/projections/proj/ocea.hpp b/boost/geometry/srs/projections/proj/ocea.hpp new file mode 100644 index 0000000000..4b8da5be6e --- /dev/null +++ b/boost/geometry/srs/projections/proj/ocea.hpp @@ -0,0 +1,231 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_OCEA_HPP +#define BOOST_GEOMETRY_PROJECTIONS_OCEA_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct ocea {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace ocea + { + template <typename T> + struct par_ocea + { + T rok; + T rtk; + T sinphi; + T cosphi; + T singam; + T cosgam; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_ocea_spheroid : public base_t_fi<base_ocea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_ocea<CalculationType> m_proj_parm; + + inline base_ocea_spheroid(const Parameters& par) + : base_t_fi<base_ocea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType ONEPI = detail::ONEPI<CalculationType>(); + + CalculationType t; + + xy_y = sin(lp_lon); + /* + xy_x = atan2((tan(lp_lat) * this->m_proj_parm.cosphi + this->m_proj_parm.sinphi * xy_y) , cos(lp_lon)); + */ + t = cos(lp_lon); + xy_x = atan((tan(lp_lat) * this->m_proj_parm.cosphi + this->m_proj_parm.sinphi * xy_y) / t); + if (t < 0.) + xy_x += ONEPI; + xy_x *= this->m_proj_parm.rtk; + xy_y = this->m_proj_parm.rok * (this->m_proj_parm.sinphi * sin(lp_lat) - this->m_proj_parm.cosphi * cos(lp_lat) * xy_y); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType t, s; + + xy_y /= this->m_proj_parm.rok; + xy_x /= this->m_proj_parm.rtk; + t = sqrt(1. - xy_y * xy_y); + lp_lat = asin(xy_y * this->m_proj_parm.sinphi + t * this->m_proj_parm.cosphi * (s = sin(xy_x))); + lp_lon = atan2(t * this->m_proj_parm.sinphi * s - xy_y * this->m_proj_parm.cosphi, + t * cos(xy_x)); + } + + static inline std::string get_name() + { + return "ocea_spheroid"; + } + + }; + + // Oblique Cylindrical Equal Area + template <typename Parameters, typename T> + inline void setup_ocea(Parameters& par, par_ocea<T>& proj_parm) + { + static const T HALFPI = detail::HALFPI<T>(); + + T phi_0=0.0, phi_1, phi_2, lam_1, lam_2, lonz, alpha; + + proj_parm.rok = 1. / par.k0; + proj_parm.rtk = par.k0; + if ( pj_param(par.params, "talpha").i) { + alpha = pj_param(par.params, "ralpha").f; + lonz = pj_param(par.params, "rlonc").f; + proj_parm.singam = atan(-cos(alpha)/(-sin(phi_0) * sin(alpha))) + lonz; + proj_parm.sinphi = asin(cos(phi_0) * sin(alpha)); + } else { + phi_1 = pj_param(par.params, "rlat_1").f; + phi_2 = pj_param(par.params, "rlat_2").f; + lam_1 = pj_param(par.params, "rlon_1").f; + lam_2 = pj_param(par.params, "rlon_2").f; + proj_parm.singam = atan2(cos(phi_1) * sin(phi_2) * cos(lam_1) - + sin(phi_1) * cos(phi_2) * cos(lam_2), + sin(phi_1) * cos(phi_2) * sin(lam_2) - + cos(phi_1) * sin(phi_2) * sin(lam_1) ); + if (lam_1 == -HALFPI) + proj_parm.singam = -proj_parm.singam; + proj_parm.sinphi = atan(-cos(proj_parm.singam - lam_1) / tan(phi_1)); + } + par.lam0 = proj_parm.singam + HALFPI; + proj_parm.cosphi = cos(proj_parm.sinphi); + proj_parm.sinphi = sin(proj_parm.sinphi); + proj_parm.cosgam = cos(proj_parm.singam); + proj_parm.singam = sin(proj_parm.singam); + par.es = 0.; + } + + }} // namespace detail::ocea + #endif // doxygen + + /*! + \brief Oblique Cylindrical Equal Area projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Projection parameters + - lonc: Longitude (only used if alpha (or gamma) is specified) (degrees) + - alpha: Alpha (degrees) + - lat_1: Latitude of first standard parallel (degrees) + - lat_2: Latitude of second standard parallel (degrees) + - lon_1 (degrees) + - lon_2 (degrees) + \par Example + \image html ex_ocea.gif + */ + template <typename CalculationType, typename Parameters> + struct ocea_spheroid : public detail::ocea::base_ocea_spheroid<CalculationType, Parameters> + { + inline ocea_spheroid(const Parameters& par) : detail::ocea::base_ocea_spheroid<CalculationType, Parameters>(par) + { + detail::ocea::setup_ocea(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::ocea, ocea_spheroid, ocea_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class ocea_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<ocea_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void ocea_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("ocea", new ocea_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_OCEA_HPP + diff --git a/boost/geometry/srs/projections/proj/oea.hpp b/boost/geometry/srs/projections/proj/oea.hpp new file mode 100644 index 0000000000..469a41a2d5 --- /dev/null +++ b/boost/geometry/srs/projections/proj/oea.hpp @@ -0,0 +1,214 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_OEA_HPP +#define BOOST_GEOMETRY_PROJECTIONS_OEA_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct oea {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace oea + { + template <typename T> + struct par_oea + { + T theta; + T m, n; + T two_r_m, two_r_n, rm, rn, hm, hn; + T cp0, sp0; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_oea_spheroid : public base_t_fi<base_oea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_oea<CalculationType> m_proj_parm; + + inline base_oea_spheroid(const Parameters& par) + : base_t_fi<base_oea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) sphere + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType Az, M, N, cp, sp, cl, shz; + + cp = cos(lp_lat); + sp = sin(lp_lat); + cl = cos(lp_lon); + Az = aatan2(cp * sin(lp_lon), this->m_proj_parm.cp0 * sp - this->m_proj_parm.sp0 * cp * cl) + this->m_proj_parm.theta; + shz = sin(0.5 * aacos(this->m_proj_parm.sp0 * sp + this->m_proj_parm.cp0 * cp * cl)); + M = aasin(shz * sin(Az)); + N = aasin(shz * cos(Az) * cos(M) / cos(M * this->m_proj_parm.two_r_m)); + xy_y = this->m_proj_parm.n * sin(N * this->m_proj_parm.two_r_n); + xy_x = this->m_proj_parm.m * sin(M * this->m_proj_parm.two_r_m) * cos(N) / cos(N * this->m_proj_parm.two_r_n); + } + + // INVERSE(s_inverse) sphere + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType N, M, xp, yp, z, Az, cz, sz, cAz; + + N = this->m_proj_parm.hn * aasin(xy_y * this->m_proj_parm.rn); + M = this->m_proj_parm.hm * aasin(xy_x * this->m_proj_parm.rm * cos(N * this->m_proj_parm.two_r_n) / cos(N)); + xp = 2. * sin(M); + yp = 2. * sin(N) * cos(M * this->m_proj_parm.two_r_m) / cos(M); + cAz = cos(Az = aatan2(xp, yp) - this->m_proj_parm.theta); + z = 2. * aasin(0.5 * boost::math::hypot(xp, yp)); + sz = sin(z); + cz = cos(z); + lp_lat = aasin(this->m_proj_parm.sp0 * cz + this->m_proj_parm.cp0 * sz * cAz); + lp_lon = aatan2(sz * sin(Az), + this->m_proj_parm.cp0 * cz - this->m_proj_parm.sp0 * sz * cAz); + } + + static inline std::string get_name() + { + return "oea_spheroid"; + } + + }; + + // Oblated Equal Area + template <typename Parameters, typename T> + inline void setup_oea(Parameters& par, par_oea<T>& proj_parm) + { + if (((proj_parm.n = pj_param(par.params, "dn").f) <= 0.) || + ((proj_parm.m = pj_param(par.params, "dm").f) <= 0.)) + BOOST_THROW_EXCEPTION( projection_exception(-39) ); + else { + proj_parm.theta = pj_param(par.params, "rtheta").f; + proj_parm.sp0 = sin(par.phi0); + proj_parm.cp0 = cos(par.phi0); + proj_parm.rn = 1./ proj_parm.n; + proj_parm.rm = 1./ proj_parm.m; + proj_parm.two_r_n = 2. * proj_parm.rn; + proj_parm.two_r_m = 2. * proj_parm.rm; + proj_parm.hm = 0.5 * proj_parm.m; + proj_parm.hn = 0.5 * proj_parm.n; + par.es = 0.; + } + } + + }} // namespace detail::oea + #endif // doxygen + + /*! + \brief Oblated Equal Area projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + \par Projection parameters + - n (real) + - m (real) + - theta: Theta (degrees) + \par Example + \image html ex_oea.gif + */ + template <typename CalculationType, typename Parameters> + struct oea_spheroid : public detail::oea::base_oea_spheroid<CalculationType, Parameters> + { + inline oea_spheroid(const Parameters& par) : detail::oea::base_oea_spheroid<CalculationType, Parameters>(par) + { + detail::oea::setup_oea(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::oea, oea_spheroid, oea_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class oea_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<oea_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void oea_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("oea", new oea_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_OEA_HPP + diff --git a/boost/geometry/srs/projections/proj/omerc.hpp b/boost/geometry/srs/projections/proj/omerc.hpp new file mode 100644 index 0000000000..4da6871d13 --- /dev/null +++ b/boost/geometry/srs/projections/proj/omerc.hpp @@ -0,0 +1,354 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_OMERC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_OMERC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Copyright (c) 2003, 2006 Gerald I. Evenden + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_phi2.hpp> +#include <boost/geometry/srs/projections/impl/pj_tsfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct omerc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace omerc + { + static const double TOL = 1.e-7; + static const double EPS = 1.e-10; + + template <typename T> + struct par_omerc + { + T A, B, E, AB, ArB, BrA, rB, singam, cosgam, sinrot, cosrot; + T v_pole_n, v_pole_s, u_0; + int no_rot; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_omerc_ellipsoid : public base_t_fi<base_omerc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_omerc<CalculationType> m_proj_parm; + + inline base_omerc_ellipsoid(const Parameters& par) + : base_t_fi<base_omerc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType Q, S, T, U, V, temp, u, v; + + if (fabs(fabs(lp_lat) - HALFPI) > EPS) { + Q = this->m_proj_parm.E / pow(pj_tsfn(lp_lat, sin(lp_lat), this->m_par.e), this->m_proj_parm.B); + temp = 1. / Q; + S = .5 * (Q - temp); + T = .5 * (Q + temp); + V = sin(this->m_proj_parm.B * lp_lon); + U = (S * this->m_proj_parm.singam - V * this->m_proj_parm.cosgam) / T; + if (fabs(fabs(U) - 1.0) < EPS) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + v = 0.5 * this->m_proj_parm.ArB * log((1. - U)/(1. + U)); + temp = cos(this->m_proj_parm.B * lp_lon); + if(fabs(temp) < TOL) { + u = this->m_proj_parm.A * lp_lon; + } else { + u = this->m_proj_parm.ArB * atan2((S * this->m_proj_parm.cosgam + V * this->m_proj_parm.singam), temp); + } + } else { + v = lp_lat > 0 ? this->m_proj_parm.v_pole_n : this->m_proj_parm.v_pole_s; + u = this->m_proj_parm.ArB * lp_lat; + } + if (this->m_proj_parm.no_rot) { + xy_x = u; + xy_y = v; + } else { + u -= this->m_proj_parm.u_0; + xy_x = v * this->m_proj_parm.cosrot + u * this->m_proj_parm.sinrot; + xy_y = u * this->m_proj_parm.cosrot - v * this->m_proj_parm.sinrot; + } + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType u, v, Qp, Sp, Tp, Vp, Up; + + if (this->m_proj_parm.no_rot) { + v = xy_y; + u = xy_x; + } else { + v = xy_x * this->m_proj_parm.cosrot - xy_y * this->m_proj_parm.sinrot; + u = xy_y * this->m_proj_parm.cosrot + xy_x * this->m_proj_parm.sinrot + this->m_proj_parm.u_0; + } + Qp = exp(- this->m_proj_parm.BrA * v); + Sp = .5 * (Qp - 1. / Qp); + Tp = .5 * (Qp + 1. / Qp); + Vp = sin(this->m_proj_parm.BrA * u); + Up = (Vp * this->m_proj_parm.cosgam + Sp * this->m_proj_parm.singam) / Tp; + if (fabs(fabs(Up) - 1.) < EPS) { + lp_lon = 0.; + lp_lat = Up < 0. ? -HALFPI : HALFPI; + } else { + lp_lat = this->m_proj_parm.E / sqrt((1. + Up) / (1. - Up)); + if ((lp_lat = pj_phi2(pow(lp_lat, 1. / this->m_proj_parm.B), this->m_par.e)) == HUGE_VAL) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + lp_lon = - this->m_proj_parm.rB * atan2((Sp * this->m_proj_parm.cosgam - + Vp * this->m_proj_parm.singam), cos(this->m_proj_parm.BrA * u)); + } + } + + static inline std::string get_name() + { + return "omerc_ellipsoid"; + } + + }; + + // Oblique Mercator + template <typename Parameters, typename T> + inline void setup_omerc(Parameters& par, par_omerc<T>& proj_parm) + { + static const T FORTPI = detail::FORTPI<T>(); + static const T HALFPI = detail::HALFPI<T>(); + static const T ONEPI = detail::ONEPI<T>(); + static const T TWOPI = detail::TWOPI<T>(); + + T con, com, cosph0, D, F, H, L, sinph0, p, J, gamma=0, + gamma0, lamc=0, lam1=0, lam2=0, phi1=0, phi2=0, alpha_c=0.0; + int alp, gam, no_off = 0; + + proj_parm.no_rot = pj_param(par.params, "tno_rot").i; + if ((alp = pj_param(par.params, "talpha").i) != 0) + alpha_c = pj_param(par.params, "ralpha").f; + if ((gam = pj_param(par.params, "tgamma").i) != 0) + gamma = pj_param(par.params, "rgamma").f; + if (alp || gam) { + lamc = pj_param(par.params, "rlonc").f; + no_off = + /* For libproj4 compatability */ + pj_param(par.params, "tno_off").i + /* for backward compatibility */ + || pj_param(par.params, "tno_uoff").i; + if( no_off ) + { + /* Mark the parameter as used, so that the pj_get_def() return them */ + pj_param(par.params, "sno_uoff"); + pj_param(par.params, "sno_off"); + } + } else { + lam1 = pj_param(par.params, "rlon_1").f; + phi1 = pj_param(par.params, "rlat_1").f; + lam2 = pj_param(par.params, "rlon_2").f; + phi2 = pj_param(par.params, "rlat_2").f; + if (fabs(phi1 - phi2) <= TOL || + (con = fabs(phi1)) <= TOL || + fabs(con - HALFPI) <= TOL || + fabs(fabs(par.phi0) - HALFPI) <= TOL || + fabs(fabs(phi2) - HALFPI) <= TOL) + BOOST_THROW_EXCEPTION( projection_exception(-33) ); + } + com = sqrt(par.one_es); + if (fabs(par.phi0) > EPS) { + sinph0 = sin(par.phi0); + cosph0 = cos(par.phi0); + con = 1. - par.es * sinph0 * sinph0; + proj_parm.B = cosph0 * cosph0; + proj_parm.B = sqrt(1. + par.es * proj_parm.B * proj_parm.B / par.one_es); + proj_parm.A = proj_parm.B * par.k0 * com / con; + D = proj_parm.B * com / (cosph0 * sqrt(con)); + if ((F = D * D - 1.) <= 0.) + F = 0.; + else { + F = sqrt(F); + if (par.phi0 < 0.) + F = -F; + } + proj_parm.E = F += D; + proj_parm.E *= pow(pj_tsfn(par.phi0, sinph0, par.e), proj_parm.B); + } else { + proj_parm.B = 1. / com; + proj_parm.A = par.k0; + proj_parm.E = D = F = 1.; + } + if (alp || gam) { + if (alp) { + gamma0 = asin(sin(alpha_c) / D); + if (!gam) + gamma = alpha_c; + } else + alpha_c = asin(D*sin(gamma0 = gamma)); + if ((con = fabs(alpha_c)) <= TOL || + fabs(con - ONEPI) <= TOL || + fabs(fabs(par.phi0) - HALFPI) <= TOL) + BOOST_THROW_EXCEPTION( projection_exception(-32) ); + par.lam0 = lamc - asin(.5 * (F - 1. / F) * + tan(gamma0)) / proj_parm.B; + } else { + H = pow(pj_tsfn(phi1, sin(phi1), par.e), proj_parm.B); + L = pow(pj_tsfn(phi2, sin(phi2), par.e), proj_parm.B); + F = proj_parm.E / H; + p = (L - H) / (L + H); + J = proj_parm.E * proj_parm.E; + J = (J - L * H) / (J + L * H); + if ((con = lam1 - lam2) < -ONEPI) + lam2 -= TWOPI; + else if (con > ONEPI) + lam2 += TWOPI; + par.lam0 = adjlon(.5 * (lam1 + lam2) - atan( + J * tan(.5 * proj_parm.B * (lam1 - lam2)) / p) / proj_parm.B); + gamma0 = atan(2. * sin(proj_parm.B * adjlon(lam1 - par.lam0)) / + (F - 1. / F)); + gamma = alpha_c = asin(D * sin(gamma0)); + } + proj_parm.singam = sin(gamma0); + proj_parm.cosgam = cos(gamma0); + proj_parm.sinrot = sin(gamma); + proj_parm.cosrot = cos(gamma); + proj_parm.BrA = 1. / (proj_parm.ArB = proj_parm.A * (proj_parm.rB = 1. / proj_parm.B)); + proj_parm.AB = proj_parm.A * proj_parm.B; + if (no_off) + proj_parm.u_0 = 0; + else { + proj_parm.u_0 = fabs(proj_parm.ArB * atan2(sqrt(D * D - 1.), cos(alpha_c))); + if (par.phi0 < 0.) + proj_parm.u_0 = - proj_parm.u_0; + } + F = 0.5 * gamma0; + proj_parm.v_pole_n = proj_parm.ArB * log(tan(FORTPI - F)); + proj_parm.v_pole_s = proj_parm.ArB * log(tan(FORTPI + F)); + } + + }} // namespace detail::omerc + #endif // doxygen + + /*! + \brief Oblique Mercator projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Ellipsoid + \par Projection parameters + - no_rot: No rotation + - alpha: Alpha (degrees) + - gamma: Gamma (degrees) + - no_off: Only for compatibility with libproj, proj4 (string) + - lonc: Longitude (only used if alpha (or gamma) is specified) (degrees) + - lon_1 (degrees) + - lat_1: Latitude of first standard parallel (degrees) + - lon_2 (degrees) + - lat_2: Latitude of second standard parallel (degrees) + - no_uoff (string) + \par Example + \image html ex_omerc.gif + */ + template <typename CalculationType, typename Parameters> + struct omerc_ellipsoid : public detail::omerc::base_omerc_ellipsoid<CalculationType, Parameters> + { + inline omerc_ellipsoid(const Parameters& par) : detail::omerc::base_omerc_ellipsoid<CalculationType, Parameters>(par) + { + detail::omerc::setup_omerc(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::omerc, omerc_ellipsoid, omerc_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class omerc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<omerc_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void omerc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("omerc", new omerc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_OMERC_HPP + diff --git a/boost/geometry/srs/projections/proj/ortho.hpp b/boost/geometry/srs/projections/proj/ortho.hpp new file mode 100644 index 0000000000..4510f9dab9 --- /dev/null +++ b/boost/geometry/srs/projections/proj/ortho.hpp @@ -0,0 +1,257 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_ORTHO_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ORTHO_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/config.hpp> +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct ortho {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace ortho + { + + static const double EPS10 = 1.e-10; + static const int N_POLE = 0; + static const int S_POLE = 1; + static const int EQUIT = 2; + static const int OBLIQ = 3; + + template <typename T> + struct par_ortho + { + T sinph0; + T cosph0; + int mode; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_ortho_spheroid : public base_t_fi<base_ortho_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_ortho<CalculationType> m_proj_parm; + + inline base_ortho_spheroid(const Parameters& par) + : base_t_fi<base_ortho_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType coslam, cosphi, sinphi; + + cosphi = cos(lp_lat); + coslam = cos(lp_lon); + switch (this->m_proj_parm.mode) { + case EQUIT: + if (cosphi * coslam < - EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_y = sin(lp_lat); + break; + case OBLIQ: + if (this->m_proj_parm.sinph0 * (sinphi = sin(lp_lat)) + + this->m_proj_parm.cosph0 * cosphi * coslam < - EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_y = this->m_proj_parm.cosph0 * sinphi - this->m_proj_parm.sinph0 * cosphi * coslam; + break; + case N_POLE: + coslam = - coslam; + BOOST_FALLTHROUGH; + case S_POLE: + if (fabs(lp_lat - this->m_par.phi0) - EPS10 > HALFPI) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_y = cosphi * coslam; + break; + } + xy_x = cosphi * sin(lp_lon); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType rh, cosc, sinc; + + if ((sinc = (rh = boost::math::hypot(xy_x, xy_y))) > 1.) { + if ((sinc - 1.) > EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + sinc = 1.; + } + cosc = sqrt(1. - sinc * sinc); /* in this range OK */ + if (fabs(rh) <= EPS10) { + lp_lat = this->m_par.phi0; + lp_lon = 0.0; + } else { + switch (this->m_proj_parm.mode) { + case N_POLE: + xy_y = -xy_y; + lp_lat = acos(sinc); + break; + case S_POLE: + lp_lat = - acos(sinc); + break; + case EQUIT: + lp_lat = xy_y * sinc / rh; + xy_x *= sinc; + xy_y = cosc * rh; + goto sinchk; + case OBLIQ: + lp_lat = cosc * this->m_proj_parm.sinph0 + xy_y * sinc * this->m_proj_parm.cosph0 /rh; + xy_y = (cosc - this->m_proj_parm.sinph0 * lp_lat) * rh; + xy_x *= sinc * this->m_proj_parm.cosph0; + sinchk: + if (fabs(lp_lat) >= 1.) + lp_lat = lp_lat < 0. ? -HALFPI : HALFPI; + else + lp_lat = asin(lp_lat); + break; + } + lp_lon = (xy_y == 0. && (this->m_proj_parm.mode == OBLIQ || this->m_proj_parm.mode == EQUIT)) + ? (xy_x == 0. ? 0. : xy_x < 0. ? -HALFPI : HALFPI) + : atan2(xy_x, xy_y); + } + } + + static inline std::string get_name() + { + return "ortho_spheroid"; + } + + }; + + // Orthographic + template <typename Parameters, typename T> + inline void setup_ortho(Parameters& par, par_ortho<T>& proj_parm) + { + if (fabs(fabs(par.phi0) - geometry::math::half_pi<T>()) <= EPS10) + proj_parm.mode = par.phi0 < 0. ? S_POLE : N_POLE; + else if (fabs(par.phi0) > EPS10) { + proj_parm.mode = OBLIQ; + proj_parm.sinph0 = sin(par.phi0); + proj_parm.cosph0 = cos(par.phi0); + } else + proj_parm.mode = EQUIT; + par.es = 0.; + } + + }} // namespace detail::ortho + #endif // doxygen + + /*! + \brief Orthographic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + \par Example + \image html ex_ortho.gif + */ + template <typename CalculationType, typename Parameters> + struct ortho_spheroid : public detail::ortho::base_ortho_spheroid<CalculationType, Parameters> + { + inline ortho_spheroid(const Parameters& par) : detail::ortho::base_ortho_spheroid<CalculationType, Parameters>(par) + { + detail::ortho::setup_ortho(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::ortho, ortho_spheroid, ortho_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class ortho_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<ortho_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void ortho_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("ortho", new ortho_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_ORTHO_HPP + diff --git a/boost/geometry/srs/projections/proj/poly.hpp b/boost/geometry/srs/projections/proj/poly.hpp new file mode 100644 index 0000000000..ff97ecadec --- /dev/null +++ b/boost/geometry/srs/projections/proj/poly.hpp @@ -0,0 +1,311 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_POLY_HPP +#define BOOST_GEOMETRY_PROJECTIONS_POLY_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_mlfn.hpp> +#include <boost/geometry/srs/projections/impl/pj_msfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct poly {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace poly + { + + static const double TOL = 1e-10; + static const double CONV = 1e-10; + static const int N_ITER = 10; + static const int I_ITER = 20; + static const double ITOL = 1.e-12; + + template <typename T> + struct par_poly + { + T ml0; + T en[EN_SIZE]; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_poly_ellipsoid : public base_t_fi<base_poly_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_poly<CalculationType> m_proj_parm; + + inline base_poly_ellipsoid(const Parameters& par) + : base_t_fi<base_poly_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType ms, sp, cp; + + if (fabs(lp_lat) <= TOL) { xy_x = lp_lon; xy_y = -this->m_proj_parm.ml0; } + else { + sp = sin(lp_lat); + ms = fabs(cp = cos(lp_lat)) > TOL ? pj_msfn(sp, cp, this->m_par.es) / sp : 0.; + xy_x = ms * sin(lp_lon *= sp); + xy_y = (pj_mlfn(lp_lat, sp, cp, this->m_proj_parm.en) - this->m_proj_parm.ml0) + ms * (1. - cos(lp_lon)); + } + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + xy_y += this->m_proj_parm.ml0; + if (fabs(xy_y) <= TOL) { + lp_lon = xy_x; + lp_lat = 0.; + } else { + CalculationType r, c, sp, cp, s2ph, ml, mlb, mlp, dPhi; + int i; + + r = xy_y * xy_y + xy_x * xy_x; + for (lp_lat = xy_y, i = I_ITER; i ; --i) { + sp = sin(lp_lat); + s2ph = sp * ( cp = cos(lp_lat)); + if (fabs(cp) < ITOL) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + c = sp * (mlp = sqrt(1. - this->m_par.es * sp * sp)) / cp; + ml = pj_mlfn(lp_lat, sp, cp, this->m_proj_parm.en); + mlb = ml * ml + r; + mlp = this->m_par.one_es / (mlp * mlp * mlp); + lp_lat += ( dPhi = + ( ml + ml + c * mlb - 2. * xy_y * (c * ml + 1.) ) / ( + this->m_par.es * s2ph * (mlb - 2. * xy_y * ml) / c + + 2.* (xy_y - ml) * (c * mlp - 1. / s2ph) - mlp - mlp )); + if (fabs(dPhi) <= ITOL) + break; + } + if (!i) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + c = sin(lp_lat); + lp_lon = asin(xy_x * tan(lp_lat) * sqrt(1. - this->m_par.es * c * c)) / sin(lp_lat); + } + } + + static inline std::string get_name() + { + return "poly_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_poly_spheroid : public base_t_fi<base_poly_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_poly<CalculationType> m_proj_parm; + + inline base_poly_spheroid(const Parameters& par) + : base_t_fi<base_poly_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType cot, E; + + if (fabs(lp_lat) <= TOL) { + xy_x = lp_lon; + xy_y = this->m_proj_parm.ml0; + } else { + cot = 1. / tan(lp_lat); + xy_x = sin(E = lp_lon * sin(lp_lat)) * cot; + xy_y = lp_lat - this->m_par.phi0 + cot * (1. - cos(E)); + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType B, dphi, tp; + int i; + + if (fabs(xy_y = this->m_par.phi0 + xy_y) <= TOL) { + lp_lon = xy_x; + lp_lat = 0.; + } else { + lp_lat = xy_y; + B = xy_x * xy_x + xy_y * xy_y; + i = N_ITER; + do { + tp = tan(lp_lat); + lp_lat -= (dphi = (xy_y * (lp_lat * tp + 1.) - lp_lat - + .5 * ( lp_lat * lp_lat + B) * tp) / + ((lp_lat - xy_y) / tp - 1.)); + } while (fabs(dphi) > CONV && --i); + if (! i) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + lp_lon = asin(xy_x * tan(lp_lat)) / sin(lp_lat); + } + } + + static inline std::string get_name() + { + return "poly_spheroid"; + } + + }; + + // Polyconic (American) + template <typename Parameters, typename T> + inline void setup_poly(Parameters& par, par_poly<T>& proj_parm) + { + if (par.es) { + if (!pj_enfn(par.es, proj_parm.en)) + BOOST_THROW_EXCEPTION( projection_exception(0) ); + proj_parm.ml0 = pj_mlfn(par.phi0, sin(par.phi0), cos(par.phi0), proj_parm.en); + } else { + proj_parm.ml0 = -par.phi0; + } + } + + }} // namespace detail::poly + #endif // doxygen + + /*! + \brief Polyconic (American) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + - Ellipsoid + \par Example + \image html ex_poly.gif + */ + template <typename CalculationType, typename Parameters> + struct poly_ellipsoid : public detail::poly::base_poly_ellipsoid<CalculationType, Parameters> + { + inline poly_ellipsoid(const Parameters& par) : detail::poly::base_poly_ellipsoid<CalculationType, Parameters>(par) + { + detail::poly::setup_poly(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Polyconic (American) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + - Ellipsoid + \par Example + \image html ex_poly.gif + */ + template <typename CalculationType, typename Parameters> + struct poly_spheroid : public detail::poly::base_poly_spheroid<CalculationType, Parameters> + { + inline poly_spheroid(const Parameters& par) : detail::poly::base_poly_spheroid<CalculationType, Parameters>(par) + { + detail::poly::setup_poly(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::poly, poly_spheroid, poly_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class poly_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<poly_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<poly_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void poly_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("poly", new poly_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_POLY_HPP + diff --git a/boost/geometry/srs/projections/proj/putp2.hpp b/boost/geometry/srs/projections/proj/putp2.hpp new file mode 100644 index 0000000000..458ee81aa3 --- /dev/null +++ b/boost/geometry/srs/projections/proj/putp2.hpp @@ -0,0 +1,193 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_PUTP2_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PUTP2_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct putp2 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace putp2 + { + + static const double C_x = 1.89490; + static const double C_y = 1.71848; + static const double C_p = 0.6141848493043784; + static const double EPS = 1e-10; + static const int NITER = 10; + //static const double PI_DIV_3 = 1.0471975511965977; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_putp2_spheroid : public base_t_fi<base_putp2_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_putp2_spheroid(const Parameters& par) + : base_t_fi<base_putp2_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType PI_DIV_3 = detail::PI_DIV_3<CalculationType>(); + + CalculationType p, c, s, V; + int i; + + p = C_p * sin(lp_lat); + s = lp_lat * lp_lat; + lp_lat *= 0.615709 + s * ( 0.00909953 + s * 0.0046292 ); + for (i = NITER; i ; --i) { + c = cos(lp_lat); + s = sin(lp_lat); + lp_lat -= V = (lp_lat + s * (c - 1.) - p) / + (1. + c * (c - 1.) - s * s); + if (fabs(V) < EPS) + break; + } + if (!i) + lp_lat = lp_lat < 0 ? - PI_DIV_3 : PI_DIV_3; + xy_x = C_x * lp_lon * (cos(lp_lat) - 0.5); + xy_y = C_y * sin(lp_lat); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType c; + + lp_lat = aasin(xy_y / C_y); + lp_lon = xy_x / (C_x * ((c = cos(lp_lat)) - 0.5)); + lp_lat = aasin((lp_lat + sin(lp_lat) * (c - 1.)) / C_p); + } + + static inline std::string get_name() + { + return "putp2_spheroid"; + } + + }; + + // Putnins P2 + template <typename Parameters> + inline void setup_putp2(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::putp2 + #endif // doxygen + + /*! + \brief Putnins P2 projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_putp2.gif + */ + template <typename CalculationType, typename Parameters> + struct putp2_spheroid : public detail::putp2::base_putp2_spheroid<CalculationType, Parameters> + { + inline putp2_spheroid(const Parameters& par) : detail::putp2::base_putp2_spheroid<CalculationType, Parameters>(par) + { + detail::putp2::setup_putp2(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::putp2, putp2_spheroid, putp2_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class putp2_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<putp2_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void putp2_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("putp2", new putp2_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_PUTP2_HPP + diff --git a/boost/geometry/srs/projections/proj/putp3.hpp b/boost/geometry/srs/projections/proj/putp3.hpp new file mode 100644 index 0000000000..91150082b8 --- /dev/null +++ b/boost/geometry/srs/projections/proj/putp3.hpp @@ -0,0 +1,227 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_PUTP3_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PUTP3_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/core/ignore_unused.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct putp3 {}; + struct putp3p {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace putp3 + { + + static const double C = 0.79788456; + static const double RPISQ = 0.1013211836; + + template <typename T> + struct par_putp3 + { + T A; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_putp3_spheroid : public base_t_fi<base_putp3_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_putp3<CalculationType> m_proj_parm; + + inline base_putp3_spheroid(const Parameters& par) + : base_t_fi<base_putp3_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = C * lp_lon * (1. - this->m_proj_parm.A * lp_lat * lp_lat); + xy_y = C * lp_lat; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = xy_y / C; + lp_lon = xy_x / (C * (1. - this->m_proj_parm.A * lp_lat * lp_lat)); + } + + static inline std::string get_name() + { + return "putp3_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_putp3<T>& proj_parm) + { + boost::ignore_unused(proj_parm); + par.es = 0.; + } + + + // Putnins P3 + template <typename Parameters, typename T> + inline void setup_putp3(Parameters& par, par_putp3<T>& proj_parm) + { + proj_parm.A = 4. * RPISQ; + setup(par, proj_parm); + } + + // Putnins P3' + template <typename Parameters, typename T> + inline void setup_putp3p(Parameters& par, par_putp3<T>& proj_parm) + { + proj_parm.A = 2. * RPISQ; + setup(par, proj_parm); + } + + }} // namespace detail::putp3 + #endif // doxygen + + /*! + \brief Putnins P3 projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_putp3.gif + */ + template <typename CalculationType, typename Parameters> + struct putp3_spheroid : public detail::putp3::base_putp3_spheroid<CalculationType, Parameters> + { + inline putp3_spheroid(const Parameters& par) : detail::putp3::base_putp3_spheroid<CalculationType, Parameters>(par) + { + detail::putp3::setup_putp3(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Putnins P3' projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_putp3p.gif + */ + template <typename CalculationType, typename Parameters> + struct putp3p_spheroid : public detail::putp3::base_putp3_spheroid<CalculationType, Parameters> + { + inline putp3p_spheroid(const Parameters& par) : detail::putp3::base_putp3_spheroid<CalculationType, Parameters>(par) + { + detail::putp3::setup_putp3p(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::putp3, putp3_spheroid, putp3_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::putp3p, putp3p_spheroid, putp3p_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class putp3_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<putp3_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class putp3p_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<putp3p_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void putp3_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("putp3", new putp3_entry<CalculationType, Parameters>); + factory.add_to_factory("putp3p", new putp3p_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_PUTP3_HPP + diff --git a/boost/geometry/srs/projections/proj/putp4p.hpp b/boost/geometry/srs/projections/proj/putp4p.hpp new file mode 100644 index 0000000000..4252b37141 --- /dev/null +++ b/boost/geometry/srs/projections/proj/putp4p.hpp @@ -0,0 +1,231 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_PUTP4P_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PUTP4P_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/core/ignore_unused.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct putp4p {}; + struct weren {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace putp4p + { + template <typename T> + struct par_putp4p + { + T C_x, C_y; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_putp4p_spheroid : public base_t_fi<base_putp4p_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_putp4p<CalculationType> m_proj_parm; + + inline base_putp4p_spheroid(const Parameters& par) + : base_t_fi<base_putp4p_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + lp_lat = aasin(0.883883476 * sin(lp_lat)); + xy_x = this->m_proj_parm.C_x * lp_lon * cos(lp_lat); + xy_x /= cos(lp_lat *= 0.333333333333333); + xy_y = this->m_proj_parm.C_y * sin(lp_lat); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = aasin(xy_y / this->m_proj_parm.C_y); + lp_lon = xy_x * cos(lp_lat) / this->m_proj_parm.C_x; + lp_lat *= 3.; + lp_lon /= cos(lp_lat); + lp_lat = aasin(1.13137085 * sin(lp_lat)); + } + + static inline std::string get_name() + { + return "putp4p_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_putp4p<T>& proj_parm) + { + boost::ignore_unused(proj_parm); + par.es = 0.; + } + + + // Putnins P4' + template <typename Parameters, typename T> + inline void setup_putp4p(Parameters& par, par_putp4p<T>& proj_parm) + { + proj_parm.C_x = 0.874038744; + proj_parm.C_y = 3.883251825; + setup(par, proj_parm); + } + + // Werenskiold I + template <typename Parameters, typename T> + inline void setup_weren(Parameters& par, par_putp4p<T>& proj_parm) + { + proj_parm.C_x = 1.; + proj_parm.C_y = 4.442882938; + setup(par, proj_parm); + } + + }} // namespace detail::putp4p + #endif // doxygen + + /*! + \brief Putnins P4' projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_putp4p.gif + */ + template <typename CalculationType, typename Parameters> + struct putp4p_spheroid : public detail::putp4p::base_putp4p_spheroid<CalculationType, Parameters> + { + inline putp4p_spheroid(const Parameters& par) : detail::putp4p::base_putp4p_spheroid<CalculationType, Parameters>(par) + { + detail::putp4p::setup_putp4p(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Werenskiold I projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_weren.gif + */ + template <typename CalculationType, typename Parameters> + struct weren_spheroid : public detail::putp4p::base_putp4p_spheroid<CalculationType, Parameters> + { + inline weren_spheroid(const Parameters& par) : detail::putp4p::base_putp4p_spheroid<CalculationType, Parameters>(par) + { + detail::putp4p::setup_weren(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::putp4p, putp4p_spheroid, putp4p_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::weren, weren_spheroid, weren_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class putp4p_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<putp4p_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class weren_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<weren_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void putp4p_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("putp4p", new putp4p_entry<CalculationType, Parameters>); + factory.add_to_factory("weren", new weren_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_PUTP4P_HPP + diff --git a/boost/geometry/srs/projections/proj/putp5.hpp b/boost/geometry/srs/projections/proj/putp5.hpp new file mode 100644 index 0000000000..652dca5231 --- /dev/null +++ b/boost/geometry/srs/projections/proj/putp5.hpp @@ -0,0 +1,229 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_PUTP5_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PUTP5_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/core/ignore_unused.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct putp5 {}; + struct putp5p {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace putp5 + { + + static const double C = 1.01346; + static const double D = 1.2158542; + + template <typename T> + struct par_putp5 + { + T A, B; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_putp5_spheroid : public base_t_fi<base_putp5_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_putp5<CalculationType> m_proj_parm; + + inline base_putp5_spheroid(const Parameters& par) + : base_t_fi<base_putp5_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = C * lp_lon * (this->m_proj_parm.A - this->m_proj_parm.B * sqrt(1. + D * lp_lat * lp_lat)); + xy_y = C * lp_lat; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = xy_y / C; + lp_lon = xy_x / (C * (this->m_proj_parm.A - this->m_proj_parm.B * sqrt(1. + D * lp_lat * lp_lat))); + } + + static inline std::string get_name() + { + return "putp5_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_putp5<T>& proj_parm) + { + boost::ignore_unused(proj_parm); + par.es = 0.; + } + + + // Putnins P5 + template <typename Parameters, typename T> + inline void setup_putp5(Parameters& par, par_putp5<T>& proj_parm) + { + proj_parm.A = 2.; + proj_parm.B = 1.; + setup(par, proj_parm); + } + + // Putnins P5' + template <typename Parameters, typename T> + inline void setup_putp5p(Parameters& par, par_putp5<T>& proj_parm) + { + proj_parm.A = 1.5; + proj_parm.B = 0.5; + setup(par, proj_parm); + } + + }} // namespace detail::putp5 + #endif // doxygen + + /*! + \brief Putnins P5 projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_putp5.gif + */ + template <typename CalculationType, typename Parameters> + struct putp5_spheroid : public detail::putp5::base_putp5_spheroid<CalculationType, Parameters> + { + inline putp5_spheroid(const Parameters& par) : detail::putp5::base_putp5_spheroid<CalculationType, Parameters>(par) + { + detail::putp5::setup_putp5(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Putnins P5' projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_putp5p.gif + */ + template <typename CalculationType, typename Parameters> + struct putp5p_spheroid : public detail::putp5::base_putp5_spheroid<CalculationType, Parameters> + { + inline putp5p_spheroid(const Parameters& par) : detail::putp5::base_putp5_spheroid<CalculationType, Parameters>(par) + { + detail::putp5::setup_putp5p(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::putp5, putp5_spheroid, putp5_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::putp5p, putp5p_spheroid, putp5p_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class putp5_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<putp5_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class putp5p_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<putp5p_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void putp5_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("putp5", new putp5_entry<CalculationType, Parameters>); + factory.add_to_factory("putp5p", new putp5p_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_PUTP5_HPP + diff --git a/boost/geometry/srs/projections/proj/putp6.hpp b/boost/geometry/srs/projections/proj/putp6.hpp new file mode 100644 index 0000000000..2dff641717 --- /dev/null +++ b/boost/geometry/srs/projections/proj/putp6.hpp @@ -0,0 +1,255 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_PUTP6_HPP +#define BOOST_GEOMETRY_PROJECTIONS_PUTP6_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/core/ignore_unused.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct putp6 {}; + struct putp6p {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace putp6 + { + + static const double EPS = 1e-10; + static const int NITER = 10; + static const double CON_POLE = 1.732050807568877; + + template <typename T> + struct par_putp6 + { + T C_x, C_y, A, B, D; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_putp6_spheroid : public base_t_fi<base_putp6_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_putp6<CalculationType> m_proj_parm; + + inline base_putp6_spheroid(const Parameters& par) + : base_t_fi<base_putp6_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType p, r, V; + int i; + + p = this->m_proj_parm.B * sin(lp_lat); + lp_lat *= 1.10265779; + for (i = NITER; i ; --i) { + r = sqrt(1. + lp_lat * lp_lat); + lp_lat -= V = ( (this->m_proj_parm.A - r) * lp_lat - log(lp_lat + r) - p ) / + (this->m_proj_parm.A - 2. * r); + if (fabs(V) < EPS) + break; + } + if (!i) + lp_lat = p < 0. ? -CON_POLE : CON_POLE; + xy_x = this->m_proj_parm.C_x * lp_lon * (this->m_proj_parm.D - sqrt(1. + lp_lat * lp_lat)); + xy_y = this->m_proj_parm.C_y * lp_lat; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType r; + + lp_lat = xy_y / this->m_proj_parm.C_y; + r = sqrt(1. + lp_lat * lp_lat); + lp_lon = xy_x / (this->m_proj_parm.C_x * (this->m_proj_parm.D - r)); + lp_lat = aasin(( (this->m_proj_parm.A - r) * lp_lat - log(lp_lat + r) ) / this->m_proj_parm.B); + } + + static inline std::string get_name() + { + return "putp6_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_putp6<T>& proj_parm) + { + boost::ignore_unused(proj_parm); + par.es = 0.; + } + + + // Putnins P6 + template <typename Parameters, typename T> + inline void setup_putp6(Parameters& par, par_putp6<T>& proj_parm) + { + proj_parm.C_x = 1.01346; + proj_parm.C_y = 0.91910; + proj_parm.A = 4.; + proj_parm.B = 2.1471437182129378784; + proj_parm.D = 2.; + setup(par, proj_parm); + } + + // Putnins P6' + template <typename Parameters, typename T> + inline void setup_putp6p(Parameters& par, par_putp6<T>& proj_parm) + { + proj_parm.C_x = 0.44329; + proj_parm.C_y = 0.80404; + proj_parm.A = 6.; + proj_parm.B = 5.61125; + proj_parm.D = 3.; + setup(par, proj_parm); + } + + }} // namespace detail::putp6 + #endif // doxygen + + /*! + \brief Putnins P6 projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_putp6.gif + */ + template <typename CalculationType, typename Parameters> + struct putp6_spheroid : public detail::putp6::base_putp6_spheroid<CalculationType, Parameters> + { + inline putp6_spheroid(const Parameters& par) : detail::putp6::base_putp6_spheroid<CalculationType, Parameters>(par) + { + detail::putp6::setup_putp6(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Putnins P6' projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_putp6p.gif + */ + template <typename CalculationType, typename Parameters> + struct putp6p_spheroid : public detail::putp6::base_putp6_spheroid<CalculationType, Parameters> + { + inline putp6p_spheroid(const Parameters& par) : detail::putp6::base_putp6_spheroid<CalculationType, Parameters>(par) + { + detail::putp6::setup_putp6p(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::putp6, putp6_spheroid, putp6_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::putp6p, putp6p_spheroid, putp6p_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class putp6_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<putp6_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class putp6p_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<putp6p_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void putp6_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("putp6", new putp6_entry<CalculationType, Parameters>); + factory.add_to_factory("putp6p", new putp6p_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_PUTP6_HPP + diff --git a/boost/geometry/srs/projections/proj/qsc.hpp b/boost/geometry/srs/projections/proj/qsc.hpp new file mode 100644 index 0000000000..4cccc29f8b --- /dev/null +++ b/boost/geometry/srs/projections/proj/qsc.hpp @@ -0,0 +1,539 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_QSC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_QSC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// This implements the Quadrilateralized Spherical Cube (QSC) projection. +// Copyright (c) 2011, 2012 Martin Lambers <marlam@marlam.de> +// The QSC projection was introduced in: +// [OL76] +// E.M. O'Neill and R.E. Laubscher, "Extended Studies of a Quadrilateralized +// Spherical Cube Earth Data Base", Naval Environmental Prediction Research +// Facility Tech. Report NEPRF 3-76 (CSC), May 1976. +// The preceding shift from an ellipsoid to a sphere, which allows to apply +// this projection to ellipsoids as used in the Ellipsoidal Cube Map model, +// is described in +// [LK12] +// M. Lambers and A. Kolb, "Ellipsoidal Cube Maps for Accurate Rendering of +// Planetary-Scale Terrain Data", Proc. Pacfic Graphics (Short Papers), Sep. +// 2012 +// You have to choose one of the following projection centers, +// corresponding to the centers of the six cube faces: +// phi0 = 0.0, lam0 = 0.0 ("front" face) +// phi0 = 0.0, lam0 = 90.0 ("right" face) +// phi0 = 0.0, lam0 = 180.0 ("back" face) +// phi0 = 0.0, lam0 = -90.0 ("left" face) +// phi0 = 90.0 ("top" face) +// phi0 = -90.0 ("bottom" face) +// Other projection centers will not work! +// In the projection code below, each cube face is handled differently. +// See the computation of the face parameter in the ENTRY0(qsc) function +// and the handling of different face values (FACE_*) in the forward and +// inverse projections. +// Furthermore, the projection is originally only defined for theta angles +// between (-1/4 * PI) and (+1/4 * PI) on the current cube face. This area +// of definition is named AREA_0 in the projection code below. The other +// three areas of a cube face are handled by rotation of AREA_0. + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/core/ignore_unused.hpp> +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct qsc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace qsc + { + static const double EPS10 = 1.e-10; + static const int FACE_FRONT = 0; + static const int FACE_RIGHT = 1; + static const int FACE_BACK = 2; + static const int FACE_LEFT = 3; + static const int FACE_TOP = 4; + static const int FACE_BOTTOM = 5; + static const int AREA_0 = 0; + static const int AREA_1 = 1; + static const int AREA_2 = 2; + static const int AREA_3 = 3; + + template <typename T> + struct par_qsc + { + int face; + T a_squared; + T b; + T one_minus_f; + T one_minus_f_squared; + }; + + /* The six cube faces. */ + + /* The four areas on a cube face. AREA_0 is the area of definition, + * the other three areas are counted counterclockwise. */ + + /* Helper function for forward projection: compute the theta angle + * and determine the area number. */ + template <typename T> + inline T qsc_fwd_equat_face_theta(T const& phi, T const& y, T const& x, int *area) + { + static const T FORTPI = detail::FORTPI<T>(); + static const T HALFPI = detail::HALFPI<T>(); + static const T ONEPI = detail::ONEPI<T>(); + + T theta; + if (phi < EPS10) { + *area = AREA_0; + theta = 0.0; + } else { + theta = atan2(y, x); + if (fabs(theta) <= FORTPI) { + *area = AREA_0; + } else if (theta > FORTPI && theta <= HALFPI + FORTPI) { + *area = AREA_1; + theta -= HALFPI; + } else if (theta > HALFPI + FORTPI || theta <= -(HALFPI + FORTPI)) { + *area = AREA_2; + theta = (theta >= 0.0 ? theta - ONEPI : theta + ONEPI); + } else { + *area = AREA_3; + theta += HALFPI; + } + } + return (theta); + } + + /* Helper function: shift the longitude. */ + template <typename T> + inline T qsc_shift_lon_origin(T const& lon, T const& offset) + { + static const T ONEPI = detail::ONEPI<T>(); + static const T TWOPI = detail::TWOPI<T>(); + + T slon = lon + offset; + if (slon < -ONEPI) { + slon += TWOPI; + } else if (slon > +ONEPI) { + slon -= TWOPI; + } + return slon; + } + + /* Forward projection, ellipsoid */ + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_qsc_ellipsoid : public base_t_fi<base_qsc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_qsc<CalculationType> m_proj_parm; + + inline base_qsc_ellipsoid(const Parameters& par) + : base_t_fi<base_qsc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType ONEPI = detail::ONEPI<CalculationType>(); + + CalculationType lat, lon; + CalculationType sinlat, coslat; + CalculationType sinlon, coslon; + CalculationType q = 0.0, r = 0.0, s = 0.0; + CalculationType theta, phi; + CalculationType t, mu, nu; + int area; + + /* Convert the geodetic latitude to a geocentric latitude. + * This corresponds to the shift from the ellipsoid to the sphere + * described in [LK12]. */ + if (this->m_par.es) { + lat = atan(this->m_proj_parm.one_minus_f_squared * tan(lp_lat)); + } else { + lat = lp_lat; + } + + /* Convert the input lat, lon into theta, phi as used by QSC. + * This depends on the cube face and the area on it. + * For the top and bottom face, we can compute theta and phi + * directly from phi, lam. For the other faces, we must use + * unit sphere cartesian coordinates as an intermediate step. */ + lon = lp_lon; + if (this->m_proj_parm.face != FACE_TOP && this->m_proj_parm.face != FACE_BOTTOM) { + if (this->m_proj_parm.face == FACE_RIGHT) { + lon = qsc_shift_lon_origin(lon, +HALFPI); + } else if (this->m_proj_parm.face == FACE_BACK) { + lon = qsc_shift_lon_origin(lon, +ONEPI); + } else if (this->m_proj_parm.face == FACE_LEFT) { + lon = qsc_shift_lon_origin(lon, -HALFPI); + } + sinlat = sin(lat); + coslat = cos(lat); + sinlon = sin(lon); + coslon = cos(lon); + q = coslat * coslon; + r = coslat * sinlon; + s = sinlat; + } + if (this->m_proj_parm.face == FACE_FRONT) { + phi = acos(q); + theta = qsc_fwd_equat_face_theta(phi, s, r, &area); + } else if (this->m_proj_parm.face == FACE_RIGHT) { + phi = acos(r); + theta = qsc_fwd_equat_face_theta(phi, s, -q, &area); + } else if (this->m_proj_parm.face == FACE_BACK) { + phi = acos(-q); + theta = qsc_fwd_equat_face_theta(phi, s, -r, &area); + } else if (this->m_proj_parm.face == FACE_LEFT) { + phi = acos(-r); + theta = qsc_fwd_equat_face_theta(phi, s, q, &area); + } else if (this->m_proj_parm.face == FACE_TOP) { + phi = HALFPI - lat; + if (lon >= FORTPI && lon <= HALFPI + FORTPI) { + area = AREA_0; + theta = lon - HALFPI; + } else if (lon > HALFPI + FORTPI || lon <= -(HALFPI + FORTPI)) { + area = AREA_1; + theta = (lon > 0.0 ? lon - ONEPI : lon + ONEPI); + } else if (lon > -(HALFPI + FORTPI) && lon <= -FORTPI) { + area = AREA_2; + theta = lon + HALFPI; + } else { + area = AREA_3; + theta = lon; + } + } else /* this->m_proj_parm.face == FACE_BOTTOM */ { + phi = HALFPI + lat; + if (lon >= FORTPI && lon <= HALFPI + FORTPI) { + area = AREA_0; + theta = -lon + HALFPI; + } else if (lon < FORTPI && lon >= -FORTPI) { + area = AREA_1; + theta = -lon; + } else if (lon < -FORTPI && lon >= -(HALFPI + FORTPI)) { + area = AREA_2; + theta = -lon - HALFPI; + } else { + area = AREA_3; + theta = (lon > 0.0 ? -lon + ONEPI : -lon - ONEPI); + } + } + + /* Compute mu and nu for the area of definition. + * For mu, see Eq. (3-21) in [OL76], but note the typos: + * compare with Eq. (3-14). For nu, see Eq. (3-38). */ + mu = atan((12.0 / ONEPI) * (theta + acos(sin(theta) * cos(FORTPI)) - HALFPI)); + t = sqrt((1.0 - cos(phi)) / (cos(mu) * cos(mu)) / (1.0 - cos(atan(1.0 / cos(theta))))); + /* nu = atan(t); We don't really need nu, just t, see below. */ + + /* Apply the result to the real area. */ + if (area == AREA_1) { + mu += HALFPI; + } else if (area == AREA_2) { + mu += ONEPI; + } else if (area == AREA_3) { + mu += HALFPI + ONEPI; + } + + /* Now compute x, y from mu and nu */ + /* t = tan(nu); */ + xy_x = t * cos(mu); + xy_y = t * sin(mu); + boost::ignore_unused(nu); + } + /* Inverse projection, ellipsoid */ + + // INVERSE(e_inverse) + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType ONEPI = detail::ONEPI<CalculationType>(); + + CalculationType mu, nu, cosmu, tannu; + CalculationType tantheta, theta, cosphi, phi; + CalculationType t; + int area; + + /* Convert the input x, y to the mu and nu angles as used by QSC. + * This depends on the area of the cube face. */ + nu = atan(sqrt(xy_x * xy_x + xy_y * xy_y)); + mu = atan2(xy_y, xy_x); + if (xy_x >= 0.0 && xy_x >= fabs(xy_y)) { + area = AREA_0; + } else if (xy_y >= 0.0 && xy_y >= fabs(xy_x)) { + area = AREA_1; + mu -= HALFPI; + } else if (xy_x < 0.0 && -xy_x >= fabs(xy_y)) { + area = AREA_2; + mu = (mu < 0.0 ? mu + ONEPI : mu - ONEPI); + } else { + area = AREA_3; + mu += HALFPI; + } + + /* Compute phi and theta for the area of definition. + * The inverse projection is not described in the original paper, but some + * good hints can be found here (as of 2011-12-14): + * http://fits.gsfc.nasa.gov/fitsbits/saf.93/saf.9302 + * (search for "Message-Id: <9302181759.AA25477 at fits.cv.nrao.edu>") */ + t = (ONEPI / 12.0) * tan(mu); + tantheta = sin(t) / (cos(t) - (1.0 / sqrt(2.0))); + theta = atan(tantheta); + cosmu = cos(mu); + tannu = tan(nu); + cosphi = 1.0 - cosmu * cosmu * tannu * tannu * (1.0 - cos(atan(1.0 / cos(theta)))); + if (cosphi < -1.0) { + cosphi = -1.0; + } else if (cosphi > +1.0) { + cosphi = +1.0; + } + + /* Apply the result to the real area on the cube face. + * For the top and bottom face, we can compute phi and lam directly. + * For the other faces, we must use unit sphere cartesian coordinates + * as an intermediate step. */ + if (this->m_proj_parm.face == FACE_TOP) { + phi = acos(cosphi); + lp_lat = HALFPI - phi; + if (area == AREA_0) { + lp_lon = theta + HALFPI; + } else if (area == AREA_1) { + lp_lon = (theta < 0.0 ? theta + ONEPI : theta - ONEPI); + } else if (area == AREA_2) { + lp_lon = theta - HALFPI; + } else /* area == AREA_3 */ { + lp_lon = theta; + } + } else if (this->m_proj_parm.face == FACE_BOTTOM) { + phi = acos(cosphi); + lp_lat = phi - HALFPI; + if (area == AREA_0) { + lp_lon = -theta + HALFPI; + } else if (area == AREA_1) { + lp_lon = -theta; + } else if (area == AREA_2) { + lp_lon = -theta - HALFPI; + } else /* area == AREA_3 */ { + lp_lon = (theta < 0.0 ? -theta - ONEPI : -theta + ONEPI); + } + } else { + /* Compute phi and lam via cartesian unit sphere coordinates. */ + CalculationType q, r, s, t; + q = cosphi; + t = q * q; + if (t >= 1.0) { + s = 0.0; + } else { + s = sqrt(1.0 - t) * sin(theta); + } + t += s * s; + if (t >= 1.0) { + r = 0.0; + } else { + r = sqrt(1.0 - t); + } + /* Rotate q,r,s into the correct area. */ + if (area == AREA_1) { + t = r; + r = -s; + s = t; + } else if (area == AREA_2) { + r = -r; + s = -s; + } else if (area == AREA_3) { + t = r; + r = s; + s = -t; + } + /* Rotate q,r,s into the correct cube face. */ + if (this->m_proj_parm.face == FACE_RIGHT) { + t = q; + q = -r; + r = t; + } else if (this->m_proj_parm.face == FACE_BACK) { + q = -q; + r = -r; + } else if (this->m_proj_parm.face == FACE_LEFT) { + t = q; + q = r; + r = -t; + } + /* Now compute phi and lam from the unit sphere coordinates. */ + lp_lat = acos(-s) - HALFPI; + lp_lon = atan2(r, q); + if (this->m_proj_parm.face == FACE_RIGHT) { + lp_lon = qsc_shift_lon_origin(lp_lon, -HALFPI); + } else if (this->m_proj_parm.face == FACE_BACK) { + lp_lon = qsc_shift_lon_origin(lp_lon, -ONEPI); + } else if (this->m_proj_parm.face == FACE_LEFT) { + lp_lon = qsc_shift_lon_origin(lp_lon, +HALFPI); + } + } + + /* Apply the shift from the sphere to the ellipsoid as described + * in [LK12]. */ + if (this->m_par.es) { + int invert_sign; + CalculationType tanphi, xa; + invert_sign = (lp_lat < 0.0 ? 1 : 0); + tanphi = tan(lp_lat); + xa = this->m_proj_parm.b / sqrt(tanphi * tanphi + this->m_proj_parm.one_minus_f_squared); + lp_lat = atan(sqrt(this->m_par.a * this->m_par.a - xa * xa) / (this->m_proj_parm.one_minus_f * xa)); + if (invert_sign) { + lp_lat = -lp_lat; + } + } + } + + static inline std::string get_name() + { + return "qsc_ellipsoid"; + } + + }; + + // Quadrilateralized Spherical Cube + template <typename Parameters, typename T> + inline void setup_qsc(Parameters& par, par_qsc<T>& proj_parm) + { + static const T FORTPI = detail::FORTPI<T>(); + static const T HALFPI = detail::HALFPI<T>(); + + /* Determine the cube face from the center of projection. */ + if (par.phi0 >= HALFPI - FORTPI / 2.0) { + proj_parm.face = FACE_TOP; + } else if (par.phi0 <= -(HALFPI - FORTPI / 2.0)) { + proj_parm.face = FACE_BOTTOM; + } else if (fabs(par.lam0) <= FORTPI) { + proj_parm.face = FACE_FRONT; + } else if (fabs(par.lam0) <= HALFPI + FORTPI) { + proj_parm.face = (par.lam0 > 0.0 ? FACE_RIGHT : FACE_LEFT); + } else { + proj_parm.face = FACE_BACK; + } + /* Fill in useful values for the ellipsoid <-> sphere shift + * described in [LK12]. */ + if (par.es) { + proj_parm.a_squared = par.a * par.a; + proj_parm.b = par.a * sqrt(1.0 - par.es); + proj_parm.one_minus_f = 1.0 - (par.a - proj_parm.b) / par.a; + proj_parm.one_minus_f_squared = proj_parm.one_minus_f * proj_parm.one_minus_f; + } + } + + }} // namespace detail::qsc + #endif // doxygen + + /*! + \brief Quadrilateralized Spherical Cube projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + \par Example + \image html ex_qsc.gif + */ + template <typename CalculationType, typename Parameters> + struct qsc_ellipsoid : public detail::qsc::base_qsc_ellipsoid<CalculationType, Parameters> + { + inline qsc_ellipsoid(const Parameters& par) : detail::qsc::base_qsc_ellipsoid<CalculationType, Parameters>(par) + { + detail::qsc::setup_qsc(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::qsc, qsc_ellipsoid, qsc_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class qsc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<qsc_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void qsc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("qsc", new qsc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_QSC_HPP + diff --git a/boost/geometry/srs/projections/proj/robin.hpp b/boost/geometry/srs/projections/proj/robin.hpp new file mode 100644 index 0000000000..52acb58e41 --- /dev/null +++ b/boost/geometry/srs/projections/proj/robin.hpp @@ -0,0 +1,298 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_ROBIN_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ROBIN_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/function_overloads.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct robin {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace robin + { + + static const double FXC = 0.8487; + static const double FYC = 1.3523; + static const double C1 = 11.45915590261646417544; + static const double RC1 = 0.08726646259971647884; + static const int NODES = 18; + static const double ONEEPS = 1.000001; + static const double EPS = 1e-8; + + /* + note: following terms based upon 5 deg. intervals in degrees. + + Some background on these coefficients is available at: + + http://article.gmane.org/gmane.comp.gis.proj-4.devel/6039 + http://trac.osgeo.org/proj/ticket/113 + */ + + template <typename T> + struct COEFS { + T c0, c1, c2, c3; + }; + + template <typename T> + inline const COEFS<T> * X() + { + static const COEFS<T> result[] = { + {1.0, 2.2199e-17, -7.15515e-05, 3.1103e-06}, + {0.9986, -0.000482243, -2.4897e-05, -1.3309e-06}, + {0.9954, -0.00083103, -4.48605e-05, -9.86701e-07}, + {0.99, -0.00135364, -5.9661e-05, 3.6777e-06}, + {0.9822, -0.00167442, -4.49547e-06, -5.72411e-06}, + {0.973, -0.00214868, -9.03571e-05, 1.8736e-08}, + {0.96, -0.00305085, -9.00761e-05, 1.64917e-06}, + {0.9427, -0.00382792, -6.53386e-05, -2.6154e-06}, + {0.9216, -0.00467746, -0.00010457, 4.81243e-06}, + {0.8962, -0.00536223, -3.23831e-05, -5.43432e-06}, + {0.8679, -0.00609363, -0.000113898, 3.32484e-06}, + {0.835, -0.00698325, -6.40253e-05, 9.34959e-07}, + {0.7986, -0.00755338, -5.00009e-05, 9.35324e-07}, + {0.7597, -0.00798324, -3.5971e-05, -2.27626e-06}, + {0.7186, -0.00851367, -7.01149e-05, -8.6303e-06}, + {0.6732, -0.00986209, -0.000199569, 1.91974e-05}, + {0.6213, -0.010418, 8.83923e-05, 6.24051e-06}, + {0.5722, -0.00906601, 0.000182, 6.24051e-06}, + {0.5322, -0.00677797, 0.000275608, 6.24051e-06} + }; + return result; + } + + template <typename T> + inline const COEFS<T> * Y() + { + static const COEFS<T> result[] = { + {-5.20417e-18, 0.0124, 1.21431e-18, -8.45284e-11}, + {0.062, 0.0124, -1.26793e-09, 4.22642e-10}, + {0.124, 0.0124, 5.07171e-09, -1.60604e-09}, + {0.186, 0.0123999, -1.90189e-08, 6.00152e-09}, + {0.248, 0.0124002, 7.10039e-08, -2.24e-08}, + {0.31, 0.0123992, -2.64997e-07, 8.35986e-08}, + {0.372, 0.0124029, 9.88983e-07, -3.11994e-07}, + {0.434, 0.0123893, -3.69093e-06, -4.35621e-07}, + {0.4958, 0.0123198, -1.02252e-05, -3.45523e-07}, + {0.5571, 0.0121916, -1.54081e-05, -5.82288e-07}, + {0.6176, 0.0119938, -2.41424e-05, -5.25327e-07}, + {0.6769, 0.011713, -3.20223e-05, -5.16405e-07}, + {0.7346, 0.0113541, -3.97684e-05, -6.09052e-07}, + {0.7903, 0.0109107, -4.89042e-05, -1.04739e-06}, + {0.8435, 0.0103431, -6.4615e-05, -1.40374e-09}, + {0.8936, 0.00969686, -6.4636e-05, -8.547e-06}, + {0.9394, 0.00840947, -0.000192841, -4.2106e-06}, + {0.9761, 0.00616527, -0.000256, -4.2106e-06}, + {1.0, 0.00328947, -0.000319159, -4.2106e-06} + }; + return result; + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_robin_spheroid : public base_t_fi<base_robin_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_robin_spheroid(const Parameters& par) + : base_t_fi<base_robin_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + template <typename T> + inline T V(COEFS<T> const& C, T const& z) const + { return (C.c0 + z * (C.c1 + z * (C.c2 + z * C.c3))); } + template <typename T> + inline T DV(COEFS<T> const& C, T const& z) const + { return (C.c1 + z * (C.c2 + C.c2 + z * 3. * C.c3)); } + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + int i; + CalculationType dphi; + + i = int_floor((dphi = fabs(lp_lat)) * C1); + if (i < 0) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + if (i >= NODES) i = NODES - 1; + dphi = geometry::math::r2d<CalculationType>() * (dphi - RC1 * i); + xy_x = V(X<CalculationType>()[i], dphi) * FXC * lp_lon; + xy_y = V(Y<CalculationType>()[i], dphi) * FYC; + if (lp_lat < 0.) xy_y = -xy_y; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + const COEFS<CalculationType> * X = robin::X<CalculationType>(); + const COEFS<CalculationType> * Y = robin::Y<CalculationType>(); + + int i; + CalculationType t, t1; + COEFS<CalculationType> T; + + lp_lon = xy_x / FXC; + lp_lat = fabs(xy_y / FYC); + if (lp_lat >= 1.) { /* simple pathologic cases */ + if (lp_lat > ONEEPS) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else { + lp_lat = xy_y < 0. ? -HALFPI : HALFPI; + lp_lon /= X[NODES].c0; + } + } else { /* general problem */ + /* in Y space, reduce to table interval */ + i = int_floor(lp_lat * NODES); + if( i < 0 || i >= NODES ) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + for (;;) { + if (Y[i].c0 > lp_lat) --i; + else if (Y[i+1].c0 <= lp_lat) ++i; + else break; + } + T = Y[i]; + /* first guess, linear interp */ + t = 5. * (lp_lat - T.c0)/(Y[i+1].c0 - T.c0); + /* make into root */ + T.c0 -= lp_lat; + for (;;) { /* Newton-Raphson reduction */ + t -= t1 = V(T,t) / DV(T,t); + if (fabs(t1) < EPS) + break; + } + lp_lat = (5 * i + t) * geometry::math::d2r<CalculationType>(); + if (xy_y < 0.) lp_lat = -lp_lat; + lp_lon /= V(X[i], t); + } + } + + static inline std::string get_name() + { + return "robin_spheroid"; + } + + }; + + // Robinson + template <typename Parameters> + inline void setup_robin(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::robin + #endif // doxygen + + /*! + \brief Robinson projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_robin.gif + */ + template <typename CalculationType, typename Parameters> + struct robin_spheroid : public detail::robin::base_robin_spheroid<CalculationType, Parameters> + { + inline robin_spheroid(const Parameters& par) : detail::robin::base_robin_spheroid<CalculationType, Parameters>(par) + { + detail::robin::setup_robin(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::robin, robin_spheroid, robin_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class robin_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<robin_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void robin_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("robin", new robin_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_ROBIN_HPP + diff --git a/boost/geometry/srs/projections/proj/rouss.hpp b/boost/geometry/srs/projections/proj/rouss.hpp new file mode 100644 index 0000000000..edad904799 --- /dev/null +++ b/boost/geometry/srs/projections/proj/rouss.hpp @@ -0,0 +1,241 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_ROUSS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_ROUSS_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Copyright (c) 2003, 2006 Gerald I. Evenden + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/proj_mdist.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct rouss {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace rouss + { + template <typename T> + struct par_rouss + { + T s0; + T A1, A2, A3, A4, A5, A6; + T B1, B2, B3, B4, B5, B6, B7, B8; + T C1, C2, C3, C4, C5, C6, C7, C8; + T D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11; + MDIST<T> en; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_rouss_ellipsoid : public base_t_fi<base_rouss_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_rouss<CalculationType> m_proj_parm; + + inline base_rouss_ellipsoid(const Parameters& par) + : base_t_fi<base_rouss_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType s, al, cp, sp, al2, s2; + + cp = cos(lp_lat); + sp = sin(lp_lat); + s = proj_mdist(lp_lat, sp, cp, this->m_proj_parm.en) - this->m_proj_parm.s0; + s2 = s * s; + al = lp_lon * cp / sqrt(1. - this->m_par.es * sp * sp); + al2 = al * al; + xy_x = this->m_par.k0 * al*(1.+s2*(this->m_proj_parm.A1+s2*this->m_proj_parm.A4)-al2*(this->m_proj_parm.A2+s*this->m_proj_parm.A3+s2*this->m_proj_parm.A5 + +al2*this->m_proj_parm.A6)); + xy_y = this->m_par.k0 * (al2*(this->m_proj_parm.B1+al2*this->m_proj_parm.B4)+ + s*(1.+al2*(this->m_proj_parm.B3-al2*this->m_proj_parm.B6)+s2*(this->m_proj_parm.B2+s2*this->m_proj_parm.B8)+ + s*al2*(this->m_proj_parm.B5+s*this->m_proj_parm.B7))); + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType s, al, x = xy_x / this->m_par.k0, y = xy_y / this->m_par.k0, x2, y2;; + + x2 = x * x; + y2 = y * y; + al = x*(1.-this->m_proj_parm.C1*y2+x2*(this->m_proj_parm.C2+this->m_proj_parm.C3*y-this->m_proj_parm.C4*x2+this->m_proj_parm.C5*y2-this->m_proj_parm.C7*x2*y) + +y2*(this->m_proj_parm.C6*y2-this->m_proj_parm.C8*x2*y)); + s = this->m_proj_parm.s0 + y*(1.+y2*(-this->m_proj_parm.D2+this->m_proj_parm.D8*y2))+ + x2*(-this->m_proj_parm.D1+y*(-this->m_proj_parm.D3+y*(-this->m_proj_parm.D5+y*(-this->m_proj_parm.D7+y*this->m_proj_parm.D11)))+ + x2*(this->m_proj_parm.D4+y*(this->m_proj_parm.D6+y*this->m_proj_parm.D10)-x2*this->m_proj_parm.D9)); + lp_lat=proj_inv_mdist(s, this->m_proj_parm.en); + s = sin(lp_lat); + lp_lon=al * sqrt(1. - this->m_par.es * s * s)/cos(lp_lat); + } + + static inline std::string get_name() + { + return "rouss_ellipsoid"; + } + + }; + + // Roussilhe Stereographic + template <typename Parameters, typename T> + inline void setup_rouss(Parameters& par, par_rouss<T>& proj_parm) + { + T N0, es2, t, t2, R_R0_2, R_R0_4; + + if (!proj_mdist_ini(par.es, proj_parm.en)) + BOOST_THROW_EXCEPTION( projection_exception(0) ); + es2 = sin(par.phi0); + proj_parm.s0 = proj_mdist(par.phi0, es2, cos(par.phi0), proj_parm.en); + t = 1. - (es2 = par.es * es2 * es2); + N0 = 1./sqrt(t); + R_R0_2 = t * t / par.one_es; + R_R0_4 = R_R0_2 * R_R0_2; + t = tan(par.phi0); + t2 = t * t; + proj_parm.C1 = proj_parm.A1 = R_R0_2 / 4.; + proj_parm.C2 = proj_parm.A2 = R_R0_2 * (2 * t2 - 1. - 2. * es2) / 12.; + proj_parm.A3 = R_R0_2 * t * (1. + 4. * t2)/ ( 12. * N0); + proj_parm.A4 = R_R0_4 / 24.; + proj_parm.A5 = R_R0_4 * ( -1. + t2 * (11. + 12. * t2))/24.; + proj_parm.A6 = R_R0_4 * ( -2. + t2 * (11. - 2. * t2))/240.; + proj_parm.B1 = t / (2. * N0); + proj_parm.B2 = R_R0_2 / 12.; + proj_parm.B3 = R_R0_2 * (1. + 2. * t2 - 2. * es2)/4.; + proj_parm.B4 = R_R0_2 * t * (2. - t2)/(24. * N0); + proj_parm.B5 = R_R0_2 * t * (5. + 4.* t2)/(8. * N0); + proj_parm.B6 = R_R0_4 * (-2. + t2 * (-5. + 6. * t2))/48.; + proj_parm.B7 = R_R0_4 * (5. + t2 * (19. + 12. * t2))/24.; + proj_parm.B8 = R_R0_4 / 120.; + proj_parm.C3 = R_R0_2 * t * (1. + t2)/(3. * N0); + proj_parm.C4 = R_R0_4 * (-3. + t2 * (34. + 22. * t2))/240.; + proj_parm.C5 = R_R0_4 * (4. + t2 * (13. + 12. * t2))/24.; + proj_parm.C6 = R_R0_4 / 16.; + proj_parm.C7 = R_R0_4 * t * (11. + t2 * (33. + t2 * 16.))/(48. * N0); + proj_parm.C8 = R_R0_4 * t * (1. + t2 * 4.)/(36. * N0); + proj_parm.D1 = t / (2. * N0); + proj_parm.D2 = R_R0_2 / 12.; + proj_parm.D3 = R_R0_2 * (2 * t2 + 1. - 2. * es2) / 4.; + proj_parm.D4 = R_R0_2 * t * (1. + t2)/(8. * N0); + proj_parm.D5 = R_R0_2 * t * (1. + t2 * 2.)/(4. * N0); + proj_parm.D6 = R_R0_4 * (1. + t2 * (6. + t2 * 6.))/16.; + proj_parm.D7 = R_R0_4 * t2 * (3. + t2 * 4.)/8.; + proj_parm.D8 = R_R0_4 / 80.; + proj_parm.D9 = R_R0_4 * t * (-21. + t2 * (178. - t2 * 26.))/720.; + proj_parm.D10 = R_R0_4 * t * (29. + t2 * (86. + t2 * 48.))/(96. * N0); + proj_parm.D11 = R_R0_4 * t * (37. + t2 * 44.)/(96. * N0); + } + + }} // namespace detail::rouss + #endif // doxygen + + /*! + \brief Roussilhe Stereographic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Ellipsoid + \par Example + \image html ex_rouss.gif + */ + template <typename CalculationType, typename Parameters> + struct rouss_ellipsoid : public detail::rouss::base_rouss_ellipsoid<CalculationType, Parameters> + { + inline rouss_ellipsoid(const Parameters& par) : detail::rouss::base_rouss_ellipsoid<CalculationType, Parameters>(par) + { + detail::rouss::setup_rouss(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::rouss, rouss_ellipsoid, rouss_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class rouss_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<rouss_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void rouss_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("rouss", new rouss_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_ROUSS_HPP + diff --git a/boost/geometry/srs/projections/proj/rpoly.hpp b/boost/geometry/srs/projections/proj/rpoly.hpp new file mode 100644 index 0000000000..fcb9f1043b --- /dev/null +++ b/boost/geometry/srs/projections/proj/rpoly.hpp @@ -0,0 +1,187 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_RPOLY_HPP +#define BOOST_GEOMETRY_PROJECTIONS_RPOLY_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct rpoly {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace rpoly + { + + static const double EPS = 1e-9; + + template <typename T> + struct par_rpoly + { + T phi1; + T fxa; + T fxb; + int mode; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_rpoly_spheroid : public base_t_f<base_rpoly_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_rpoly<CalculationType> m_proj_parm; + + inline base_rpoly_spheroid(const Parameters& par) + : base_t_f<base_rpoly_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType fa; + + if (this->m_proj_parm.mode) + fa = tan(lp_lon * this->m_proj_parm.fxb) * this->m_proj_parm.fxa; + else + fa = 0.5 * lp_lon; + if (fabs(lp_lat) < EPS) { + xy_x = fa + fa; + xy_y = - this->m_par.phi0; + } else { + xy_y = 1. / tan(lp_lat); + xy_x = sin(fa = 2. * atan(fa * sin(lp_lat))) * xy_y; + xy_y = lp_lat - this->m_par.phi0 + (1. - cos(fa)) * xy_y; + } + } + + static inline std::string get_name() + { + return "rpoly_spheroid"; + } + + }; + + // Rectangular Polyconic + template <typename Parameters, typename T> + inline void setup_rpoly(Parameters& par, par_rpoly<T>& proj_parm) + { + if ((proj_parm.mode = (proj_parm.phi1 = fabs(pj_param(par.params, "rlat_ts").f)) > EPS)) { + proj_parm.fxb = 0.5 * sin(proj_parm.phi1); + proj_parm.fxa = 0.5 / proj_parm.fxb; + } + par.es = 0.; + } + + }} // namespace detail::rpoly + #endif // doxygen + + /*! + \brief Rectangular Polyconic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + - no inverse + \par Projection parameters + - lat_ts: Latitude of true scale (degrees) + \par Example + \image html ex_rpoly.gif + */ + template <typename CalculationType, typename Parameters> + struct rpoly_spheroid : public detail::rpoly::base_rpoly_spheroid<CalculationType, Parameters> + { + inline rpoly_spheroid(const Parameters& par) : detail::rpoly::base_rpoly_spheroid<CalculationType, Parameters>(par) + { + detail::rpoly::setup_rpoly(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::rpoly, rpoly_spheroid, rpoly_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class rpoly_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<rpoly_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void rpoly_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("rpoly", new rpoly_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_RPOLY_HPP + diff --git a/boost/geometry/srs/projections/proj/sconics.hpp b/boost/geometry/srs/projections/proj/sconics.hpp new file mode 100644 index 0000000000..b5f97fa542 --- /dev/null +++ b/boost/geometry/srs/projections/proj/sconics.hpp @@ -0,0 +1,570 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_SCONICS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_SCONICS_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct euler {}; + struct murd1 {}; + struct murd2 {}; + struct murd3 {}; + struct pconic {}; + struct tissot {}; + struct vitk1 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace sconics + { + + static const int EULER = 0; + static const int MURD1 = 1; + static const int MURD2 = 2; + static const int MURD3 = 3; + static const int PCONIC = 4; + static const int TISSOT = 5; + static const int VITK1 = 6; + static const double EPS10 = 1.e-10; + static const double EPS = 1e-10; + + template <typename T> + struct par_sconics + { + T n; + T rho_c; + T rho_0; + T sig; + T c1, c2; + int type; + }; + + /* get common factors for simple conics */ + template <typename Parameters, typename T> + inline int phi12(Parameters& par, par_sconics<T>& proj_parm, T *del) + { + T p1, p2; + int err = 0; + + if (!pj_param(par.params, "tlat_1").i || + !pj_param(par.params, "tlat_2").i) { + err = -41; + } else { + p1 = pj_param(par.params, "rlat_1").f; + p2 = pj_param(par.params, "rlat_2").f; + *del = 0.5 * (p2 - p1); + proj_parm.sig = 0.5 * (p2 + p1); + err = (fabs(*del) < EPS || fabs(proj_parm.sig) < EPS) ? -42 : 0; + *del = *del; + } + return err; + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_sconics_spheroid : public base_t_fi<base_sconics_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_sconics<CalculationType> m_proj_parm; + + inline base_sconics_spheroid(const Parameters& par) + : base_t_fi<base_sconics_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType rho; + + switch (this->m_proj_parm.type) { + case MURD2: + rho = this->m_proj_parm.rho_c + tan(this->m_proj_parm.sig - lp_lat); + break; + case PCONIC: + rho = this->m_proj_parm.c2 * (this->m_proj_parm.c1 - tan(lp_lat - this->m_proj_parm.sig)); + break; + default: + rho = this->m_proj_parm.rho_c - lp_lat; + break; + } + xy_x = rho * sin( lp_lon *= this->m_proj_parm.n ); + xy_y = this->m_proj_parm.rho_0 - rho * cos(lp_lon); + } + + // INVERSE(s_inverse) ellipsoid & spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType rho; + + rho = boost::math::hypot(xy_x, xy_y = this->m_proj_parm.rho_0 - xy_y); + if (this->m_proj_parm.n < 0.) { + rho = - rho; + xy_x = - xy_x; + xy_y = - xy_y; + } + lp_lon = atan2(xy_x, xy_y) / this->m_proj_parm.n; + switch (this->m_proj_parm.type) { + case PCONIC: + lp_lat = atan(this->m_proj_parm.c1 - rho / this->m_proj_parm.c2) + this->m_proj_parm.sig; + break; + case MURD2: + lp_lat = this->m_proj_parm.sig - atan(rho - this->m_proj_parm.rho_c); + break; + default: + lp_lat = this->m_proj_parm.rho_c - rho; + } + } + + static inline std::string get_name() + { + return "sconics_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_sconics<T>& proj_parm) + { + static const T HALFPI = detail::HALFPI<T>(); + + T del, cs; + int i; + + if( (i = phi12(par, proj_parm, &del)) ) + BOOST_THROW_EXCEPTION( projection_exception(i) ); + switch (proj_parm.type) { + case TISSOT: + proj_parm.n = sin(proj_parm.sig); + cs = cos(del); + proj_parm.rho_c = proj_parm.n / cs + cs / proj_parm.n; + proj_parm.rho_0 = sqrt((proj_parm.rho_c - 2 * sin(par.phi0))/proj_parm.n); + break; + case MURD1: + proj_parm.rho_c = sin(del)/(del * tan(proj_parm.sig)) + proj_parm.sig; + proj_parm.rho_0 = proj_parm.rho_c - par.phi0; + proj_parm.n = sin(proj_parm.sig); + break; + case MURD2: + proj_parm.rho_c = (cs = sqrt(cos(del))) / tan(proj_parm.sig); + proj_parm.rho_0 = proj_parm.rho_c + tan(proj_parm.sig - par.phi0); + proj_parm.n = sin(proj_parm.sig) * cs; + break; + case MURD3: + proj_parm.rho_c = del / (tan(proj_parm.sig) * tan(del)) + proj_parm.sig; + proj_parm.rho_0 = proj_parm.rho_c - par.phi0; + proj_parm.n = sin(proj_parm.sig) * sin(del) * tan(del) / (del * del); + break; + case EULER: + proj_parm.n = sin(proj_parm.sig) * sin(del) / del; + del *= 0.5; + proj_parm.rho_c = del / (tan(del) * tan(proj_parm.sig)) + proj_parm.sig; + proj_parm.rho_0 = proj_parm.rho_c - par.phi0; + break; + case PCONIC: + proj_parm.n = sin(proj_parm.sig); + proj_parm.c2 = cos(del); + proj_parm.c1 = 1./tan(proj_parm.sig); + if (fabs(del = par.phi0 - proj_parm.sig) - EPS10 >= HALFPI) + BOOST_THROW_EXCEPTION( projection_exception(-43) ); + proj_parm.rho_0 = proj_parm.c2 * (proj_parm.c1 - tan(del)); + break; + case VITK1: + proj_parm.n = (cs = tan(del)) * sin(proj_parm.sig) / del; + proj_parm.rho_c = del / (cs * tan(proj_parm.sig)) + proj_parm.sig; + proj_parm.rho_0 = proj_parm.rho_c - par.phi0; + break; + } + par.es = 0; + } + + + // Tissot + template <typename Parameters, typename T> + inline void setup_tissot(Parameters& par, par_sconics<T>& proj_parm) + { + proj_parm.type = TISSOT; + setup(par, proj_parm); + } + + // Murdoch I + template <typename Parameters, typename T> + inline void setup_murd1(Parameters& par, par_sconics<T>& proj_parm) + { + proj_parm.type = MURD1; + setup(par, proj_parm); + } + + // Murdoch II + template <typename Parameters, typename T> + inline void setup_murd2(Parameters& par, par_sconics<T>& proj_parm) + { + proj_parm.type = MURD2; + setup(par, proj_parm); + } + + // Murdoch III + template <typename Parameters, typename T> + inline void setup_murd3(Parameters& par, par_sconics<T>& proj_parm) + { + proj_parm.type = MURD3; + setup(par, proj_parm); + } + + // Euler + template <typename Parameters, typename T> + inline void setup_euler(Parameters& par, par_sconics<T>& proj_parm) + { + proj_parm.type = EULER; + setup(par, proj_parm); + } + + // Perspective Conic + template <typename Parameters, typename T> + inline void setup_pconic(Parameters& par, par_sconics<T>& proj_parm) + { + proj_parm.type = PCONIC; + setup(par, proj_parm); + } + + // Vitkovsky I + template <typename Parameters, typename T> + inline void setup_vitk1(Parameters& par, par_sconics<T>& proj_parm) + { + proj_parm.type = VITK1; + setup(par, proj_parm); + } + + }} // namespace detail::sconics + #endif // doxygen + + /*! + \brief Tissot projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + \par Projection parameters + - lat_1: Latitude of first standard parallel + - lat_2: Latitude of second standard parallel + \par Example + \image html ex_tissot.gif + */ + template <typename CalculationType, typename Parameters> + struct tissot_spheroid : public detail::sconics::base_sconics_spheroid<CalculationType, Parameters> + { + inline tissot_spheroid(const Parameters& par) : detail::sconics::base_sconics_spheroid<CalculationType, Parameters>(par) + { + detail::sconics::setup_tissot(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Murdoch I projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + \par Projection parameters + - lat_1: Latitude of first standard parallel + - lat_2: Latitude of second standard parallel + \par Example + \image html ex_murd1.gif + */ + template <typename CalculationType, typename Parameters> + struct murd1_spheroid : public detail::sconics::base_sconics_spheroid<CalculationType, Parameters> + { + inline murd1_spheroid(const Parameters& par) : detail::sconics::base_sconics_spheroid<CalculationType, Parameters>(par) + { + detail::sconics::setup_murd1(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Murdoch II projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + \par Projection parameters + - lat_1: Latitude of first standard parallel + - lat_2: Latitude of second standard parallel + \par Example + \image html ex_murd2.gif + */ + template <typename CalculationType, typename Parameters> + struct murd2_spheroid : public detail::sconics::base_sconics_spheroid<CalculationType, Parameters> + { + inline murd2_spheroid(const Parameters& par) : detail::sconics::base_sconics_spheroid<CalculationType, Parameters>(par) + { + detail::sconics::setup_murd2(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Murdoch III projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + \par Projection parameters + - lat_1: Latitude of first standard parallel + - lat_2: Latitude of second standard parallel + \par Example + \image html ex_murd3.gif + */ + template <typename CalculationType, typename Parameters> + struct murd3_spheroid : public detail::sconics::base_sconics_spheroid<CalculationType, Parameters> + { + inline murd3_spheroid(const Parameters& par) : detail::sconics::base_sconics_spheroid<CalculationType, Parameters>(par) + { + detail::sconics::setup_murd3(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Euler projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + \par Projection parameters + - lat_1: Latitude of first standard parallel + - lat_2: Latitude of second standard parallel + \par Example + \image html ex_euler.gif + */ + template <typename CalculationType, typename Parameters> + struct euler_spheroid : public detail::sconics::base_sconics_spheroid<CalculationType, Parameters> + { + inline euler_spheroid(const Parameters& par) : detail::sconics::base_sconics_spheroid<CalculationType, Parameters>(par) + { + detail::sconics::setup_euler(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Perspective Conic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + \par Projection parameters + - lat_1: Latitude of first standard parallel + - lat_2: Latitude of second standard parallel + \par Example + \image html ex_pconic.gif + */ + template <typename CalculationType, typename Parameters> + struct pconic_spheroid : public detail::sconics::base_sconics_spheroid<CalculationType, Parameters> + { + inline pconic_spheroid(const Parameters& par) : detail::sconics::base_sconics_spheroid<CalculationType, Parameters>(par) + { + detail::sconics::setup_pconic(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Vitkovsky I projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Conic + - Spheroid + \par Projection parameters + - lat_1: Latitude of first standard parallel + - lat_2: Latitude of second standard parallel + \par Example + \image html ex_vitk1.gif + */ + template <typename CalculationType, typename Parameters> + struct vitk1_spheroid : public detail::sconics::base_sconics_spheroid<CalculationType, Parameters> + { + inline vitk1_spheroid(const Parameters& par) : detail::sconics::base_sconics_spheroid<CalculationType, Parameters>(par) + { + detail::sconics::setup_vitk1(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::euler, euler_spheroid, euler_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::murd1, murd1_spheroid, murd1_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::murd2, murd2_spheroid, murd2_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::murd3, murd3_spheroid, murd3_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::pconic, pconic_spheroid, pconic_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::tissot, tissot_spheroid, tissot_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::vitk1, vitk1_spheroid, vitk1_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class tissot_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<tissot_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class murd1_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<murd1_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class murd2_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<murd2_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class murd3_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<murd3_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class euler_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<euler_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class pconic_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<pconic_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class vitk1_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<vitk1_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void sconics_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("tissot", new tissot_entry<CalculationType, Parameters>); + factory.add_to_factory("murd1", new murd1_entry<CalculationType, Parameters>); + factory.add_to_factory("murd2", new murd2_entry<CalculationType, Parameters>); + factory.add_to_factory("murd3", new murd3_entry<CalculationType, Parameters>); + factory.add_to_factory("euler", new euler_entry<CalculationType, Parameters>); + factory.add_to_factory("pconic", new pconic_entry<CalculationType, Parameters>); + factory.add_to_factory("vitk1", new vitk1_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_SCONICS_HPP + diff --git a/boost/geometry/srs/projections/proj/somerc.hpp b/boost/geometry/srs/projections/proj/somerc.hpp new file mode 100644 index 0000000000..e67d09719e --- /dev/null +++ b/boost/geometry/srs/projections/proj/somerc.hpp @@ -0,0 +1,227 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_SOMERC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_SOMERC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct somerc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace somerc + { + static const double EPS = 1.e-10; + static const int NITER = 6; + + template <typename T> + struct par_somerc + { + T K, c, hlf_e, kR, cosp0, sinp0; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_somerc_ellipsoid : public base_t_fi<base_somerc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_somerc<CalculationType> m_proj_parm; + + inline base_somerc_ellipsoid(const Parameters& par) + : base_t_fi<base_somerc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType phip, lamp, phipp, lampp, sp, cp; + + sp = this->m_par.e * sin(lp_lat); + phip = 2.* atan( exp( this->m_proj_parm.c * ( + log(tan(FORTPI + 0.5 * lp_lat)) - this->m_proj_parm.hlf_e * log((1. + sp)/(1. - sp))) + + this->m_proj_parm.K)) - HALFPI; + lamp = this->m_proj_parm.c * lp_lon; + cp = cos(phip); + phipp = aasin(this->m_proj_parm.cosp0 * sin(phip) - this->m_proj_parm.sinp0 * cp * cos(lamp)); + lampp = aasin(cp * sin(lamp) / cos(phipp)); + xy_x = this->m_proj_parm.kR * lampp; + xy_y = this->m_proj_parm.kR * log(tan(FORTPI + 0.5 * phipp)); + } + + // INVERSE(e_inverse) ellipsoid & spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + + CalculationType phip, lamp, phipp, lampp, cp, esp, con, delp; + int i; + + phipp = 2. * (atan(exp(xy_y / this->m_proj_parm.kR)) - FORTPI); + lampp = xy_x / this->m_proj_parm.kR; + cp = cos(phipp); + phip = aasin(this->m_proj_parm.cosp0 * sin(phipp) + this->m_proj_parm.sinp0 * cp * cos(lampp)); + lamp = aasin(cp * sin(lampp) / cos(phip)); + con = (this->m_proj_parm.K - log(tan(FORTPI + 0.5 * phip)))/this->m_proj_parm.c; + for (i = NITER; i ; --i) { + esp = this->m_par.e * sin(phip); + delp = (con + log(tan(FORTPI + 0.5 * phip)) - this->m_proj_parm.hlf_e * + log((1. + esp)/(1. - esp)) ) * + (1. - esp * esp) * cos(phip) * this->m_par.rone_es; + phip -= delp; + if (fabs(delp) < EPS) + break; + } + if (i) { + lp_lat = phip; + lp_lon = lamp / this->m_proj_parm.c; + } else + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + } + + static inline std::string get_name() + { + return "somerc_ellipsoid"; + } + + }; + + // Swiss. Obl. Mercator + template <typename Parameters, typename T> + inline void setup_somerc(Parameters& par, par_somerc<T>& proj_parm) + { + static const T FORTPI = detail::FORTPI<T>(); + + T cp, phip0, sp; + + proj_parm.hlf_e = 0.5 * par.e; + cp = cos(par.phi0); + cp *= cp; + proj_parm.c = sqrt(1 + par.es * cp * cp * par.rone_es); + sp = sin(par.phi0); + proj_parm.cosp0 = cos( phip0 = aasin(proj_parm.sinp0 = sp / proj_parm.c) ); + sp *= par.e; + proj_parm.K = log(tan(FORTPI + 0.5 * phip0)) - proj_parm.c * ( + log(tan(FORTPI + 0.5 * par.phi0)) - proj_parm.hlf_e * + log((1. + sp) / (1. - sp))); + proj_parm.kR = par.k0 * sqrt(par.one_es) / (1. - sp * sp); + } + + }} // namespace detail::somerc + #endif // doxygen + + /*! + \brief Swiss. Obl. Mercator projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Ellipsoid + - For CH1903 + \par Example + \image html ex_somerc.gif + */ + template <typename CalculationType, typename Parameters> + struct somerc_ellipsoid : public detail::somerc::base_somerc_ellipsoid<CalculationType, Parameters> + { + inline somerc_ellipsoid(const Parameters& par) : detail::somerc::base_somerc_ellipsoid<CalculationType, Parameters>(par) + { + detail::somerc::setup_somerc(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::somerc, somerc_ellipsoid, somerc_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class somerc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<somerc_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void somerc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("somerc", new somerc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_SOMERC_HPP + diff --git a/boost/geometry/srs/projections/proj/stere.hpp b/boost/geometry/srs/projections/proj/stere.hpp new file mode 100644 index 0000000000..9278902e34 --- /dev/null +++ b/boost/geometry/srs/projections/proj/stere.hpp @@ -0,0 +1,545 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_STERE_HPP +#define BOOST_GEOMETRY_PROJECTIONS_STERE_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/config.hpp> +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_tsfn.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct stere {}; + struct ups {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace stere + { + static const double EPS10 = 1.e-10; + static const double TOL = 1.e-8; + static const int NITER = 8; + static const double CONV = 1.e-10; + static const int S_POLE = 0; + static const int N_POLE = 1; + static const int OBLIQ = 2; + static const int EQUIT = 3; + + template <typename T> + struct par_stere + { + T phits; + T sinX1; + T cosX1; + T akm1; + int mode; + }; + + template <typename T> + inline T ssfn_(T const& phit, T sinphi, T const& eccen) + { + sinphi *= eccen; + return (tan (.5 * (geometry::math::half_pi<T>() + phit)) * + pow((1. - sinphi) / (1. + sinphi), .5 * eccen)); + } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_stere_ellipsoid : public base_t_fi<base_stere_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_stere<CalculationType> m_proj_parm; + + inline base_stere_ellipsoid(const Parameters& par) + : base_t_fi<base_stere_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType coslam, sinlam, sinX=0.0, cosX=0.0, X, A, sinphi; + + coslam = cos(lp_lon); + sinlam = sin(lp_lon); + sinphi = sin(lp_lat); + if (this->m_proj_parm.mode == OBLIQ || this->m_proj_parm.mode == EQUIT) { + sinX = sin(X = 2. * atan(ssfn_(lp_lat, sinphi, this->m_par.e)) - HALFPI); + cosX = cos(X); + } + switch (this->m_proj_parm.mode) { + case OBLIQ: + A = this->m_proj_parm.akm1 / (this->m_proj_parm.cosX1 * (1. + this->m_proj_parm.sinX1 * sinX + + this->m_proj_parm.cosX1 * cosX * coslam)); + xy_y = A * (this->m_proj_parm.cosX1 * sinX - this->m_proj_parm.sinX1 * cosX * coslam); + goto xmul; + case EQUIT: + A = this->m_proj_parm.akm1 / (1. + cosX * coslam); + xy_y = A * sinX; + xmul: + xy_x = A * cosX; + break; + case S_POLE: + lp_lat = -lp_lat; + coslam = - coslam; + sinphi = -sinphi; + BOOST_FALLTHROUGH; + case N_POLE: + xy_x = this->m_proj_parm.akm1 * pj_tsfn(lp_lat, sinphi, this->m_par.e); + xy_y = - xy_x * coslam; + break; + } + xy_x = xy_x * sinlam; + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType cosphi, sinphi, tp=0.0, phi_l=0.0, rho, halfe=0.0, halfpi=0.0; + int i; + + rho = boost::math::hypot(xy_x, xy_y); + switch (this->m_proj_parm.mode) { + case OBLIQ: + case EQUIT: + cosphi = cos( tp = 2. * atan2(rho * this->m_proj_parm.cosX1 , this->m_proj_parm.akm1) ); + sinphi = sin(tp); + if( rho == 0.0 ) + phi_l = asin(cosphi * this->m_proj_parm.sinX1); + else + phi_l = asin(cosphi * this->m_proj_parm.sinX1 + (xy_y * sinphi * this->m_proj_parm.cosX1 / rho)); + + tp = tan(.5 * (HALFPI + phi_l)); + xy_x *= sinphi; + xy_y = rho * this->m_proj_parm.cosX1 * cosphi - xy_y * this->m_proj_parm.sinX1* sinphi; + halfpi = HALFPI; + halfe = .5 * this->m_par.e; + break; + case N_POLE: + xy_y = -xy_y; + BOOST_FALLTHROUGH; + case S_POLE: + phi_l = HALFPI - 2. * atan(tp = - rho / this->m_proj_parm.akm1); + halfpi = -HALFPI; + halfe = -.5 * this->m_par.e; + break; + } + for (i = NITER; i--; phi_l = lp_lat) { + sinphi = this->m_par.e * sin(phi_l); + lp_lat = 2. * atan(tp * pow((1.+sinphi)/(1.-sinphi), halfe)) - halfpi; + if (fabs(phi_l - lp_lat) < CONV) { + if (this->m_proj_parm.mode == S_POLE) + lp_lat = -lp_lat; + lp_lon = (xy_x == 0. && xy_y == 0.) ? 0. : atan2(xy_x, xy_y); + return; + } + } + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + } + + static inline std::string get_name() + { + return "stere_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_stere_spheroid : public base_t_fi<base_stere_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_stere<CalculationType> m_proj_parm; + + inline base_stere_spheroid(const Parameters& par) + : base_t_fi<base_stere_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType sinphi, cosphi, coslam, sinlam; + + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + coslam = cos(lp_lon); + sinlam = sin(lp_lon); + switch (this->m_proj_parm.mode) { + case EQUIT: + xy_y = 1. + cosphi * coslam; + goto oblcon; + case OBLIQ: + xy_y = 1. + this->m_proj_parm.sinX1 * sinphi + this->m_proj_parm.cosX1 * cosphi * coslam; + oblcon: + if (xy_y <= EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_x = (xy_y = this->m_proj_parm.akm1 / xy_y) * cosphi * sinlam; + xy_y *= (this->m_proj_parm.mode == EQUIT) ? sinphi : + this->m_proj_parm.cosX1 * sinphi - this->m_proj_parm.sinX1 * cosphi * coslam; + break; + case N_POLE: + coslam = - coslam; + lp_lat = - lp_lat; + BOOST_FALLTHROUGH; + case S_POLE: + if (fabs(lp_lat - HALFPI) < TOL) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_x = sinlam * ( xy_y = this->m_proj_parm.akm1 * tan(FORTPI + .5 * lp_lat) ); + xy_y *= coslam; + break; + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType c, rh, sinc, cosc; + + sinc = sin(c = 2. * atan((rh = boost::math::hypot(xy_x, xy_y)) / this->m_proj_parm.akm1)); + cosc = cos(c); + lp_lon = 0.; + switch (this->m_proj_parm.mode) { + case EQUIT: + if (fabs(rh) <= EPS10) + lp_lat = 0.; + else + lp_lat = asin(xy_y * sinc / rh); + if (cosc != 0. || xy_x != 0.) + lp_lon = atan2(xy_x * sinc, cosc * rh); + break; + case OBLIQ: + if (fabs(rh) <= EPS10) + lp_lat = this->m_par.phi0; + else + lp_lat = asin(cosc * this->m_proj_parm.sinX1 + xy_y * sinc * this->m_proj_parm.cosX1 / rh); + if ((c = cosc - this->m_proj_parm.sinX1 * sin(lp_lat)) != 0. || xy_x != 0.) + lp_lon = atan2(xy_x * sinc * this->m_proj_parm.cosX1, c * rh); + break; + case N_POLE: + xy_y = -xy_y; + BOOST_FALLTHROUGH; + case S_POLE: + if (fabs(rh) <= EPS10) + lp_lat = this->m_par.phi0; + else + lp_lat = asin(this->m_proj_parm.mode == S_POLE ? - cosc : cosc); + lp_lon = (xy_x == 0. && xy_y == 0.) ? 0. : atan2(xy_x, xy_y); + break; + } + } + + static inline std::string get_name() + { + return "stere_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_stere<T>& proj_parm) /* general initialization */ + { + static const T FORTPI = detail::FORTPI<T>(); + static const T HALFPI = detail::HALFPI<T>(); + + T t; + + if (fabs((t = fabs(par.phi0)) - HALFPI) < EPS10) + proj_parm.mode = par.phi0 < 0. ? S_POLE : N_POLE; + else + proj_parm.mode = t > EPS10 ? OBLIQ : EQUIT; + proj_parm.phits = fabs(proj_parm.phits); + if (par.es != 0.0) { + T X; + + switch (proj_parm.mode) { + case N_POLE: + case S_POLE: + if (fabs(proj_parm.phits - HALFPI) < EPS10) + proj_parm.akm1 = 2. * par.k0 / + sqrt(pow(1+par.e,1+par.e)*pow(1-par.e,1-par.e)); + else { + proj_parm.akm1 = cos(proj_parm.phits) / + pj_tsfn(proj_parm.phits, t = sin(proj_parm.phits), par.e); + t *= par.e; + proj_parm.akm1 /= sqrt(1. - t * t); + } + break; + case EQUIT: + //proj_parm.akm1 = 2. * par.k0; + //break; + case OBLIQ: + t = sin(par.phi0); + X = 2. * atan(ssfn_(par.phi0, t, par.e)) - HALFPI; + t *= par.e; + proj_parm.akm1 = 2. * par.k0 * cos(par.phi0) / sqrt(1. - t * t); + proj_parm.sinX1 = sin(X); + proj_parm.cosX1 = cos(X); + break; + } + } else { + switch (proj_parm.mode) { + case OBLIQ: + proj_parm.sinX1 = sin(par.phi0); + proj_parm.cosX1 = cos(par.phi0); + BOOST_FALLTHROUGH; + case EQUIT: + proj_parm.akm1 = 2. * par.k0; + break; + case S_POLE: + case N_POLE: + proj_parm.akm1 = fabs(proj_parm.phits - HALFPI) >= EPS10 ? + cos(proj_parm.phits) / tan(FORTPI - .5 * proj_parm.phits) : + 2. * par.k0 ; + break; + } + } + } + + + // Stereographic + template <typename Parameters, typename T> + inline void setup_stere(Parameters& par, par_stere<T>& proj_parm) + { + static const T HALFPI = detail::HALFPI<T>(); + + proj_parm.phits = pj_param(par.params, "tlat_ts").i ? + pj_param(par.params, "rlat_ts").f : HALFPI; + setup(par, proj_parm); + } + + // Universal Polar Stereographic + template <typename Parameters, typename T> + inline void setup_ups(Parameters& par, par_stere<T>& proj_parm) + { + static const T HALFPI = detail::HALFPI<T>(); + + /* International Ellipsoid */ + par.phi0 = pj_param(par.params, "bsouth").i ? -HALFPI: HALFPI; + if (!par.es) + BOOST_THROW_EXCEPTION( projection_exception(-34) ); + par.k0 = .994; + par.x0 = 2000000.; + par.y0 = 2000000.; + proj_parm.phits = HALFPI; + par.lam0 = 0.; + setup(par, proj_parm); + } + + }} // namespace detail::stere + #endif // doxygen + + /*! + \brief Stereographic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_ts: Latitude of true scale (degrees) + \par Example + \image html ex_stere.gif + */ + template <typename CalculationType, typename Parameters> + struct stere_ellipsoid : public detail::stere::base_stere_ellipsoid<CalculationType, Parameters> + { + inline stere_ellipsoid(const Parameters& par) : detail::stere::base_stere_ellipsoid<CalculationType, Parameters>(par) + { + detail::stere::setup_stere(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Stereographic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Projection parameters + - lat_ts: Latitude of true scale (degrees) + \par Example + \image html ex_stere.gif + */ + template <typename CalculationType, typename Parameters> + struct stere_spheroid : public detail::stere::base_stere_spheroid<CalculationType, Parameters> + { + inline stere_spheroid(const Parameters& par) : detail::stere::base_stere_spheroid<CalculationType, Parameters>(par) + { + detail::stere::setup_stere(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Universal Polar Stereographic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Projection parameters + - south: Denotes southern hemisphere UTM zone (boolean) + \par Example + \image html ex_ups.gif + */ + template <typename CalculationType, typename Parameters> + struct ups_ellipsoid : public detail::stere::base_stere_ellipsoid<CalculationType, Parameters> + { + inline ups_ellipsoid(const Parameters& par) : detail::stere::base_stere_ellipsoid<CalculationType, Parameters>(par) + { + detail::stere::setup_ups(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Universal Polar Stereographic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Projection parameters + - south: Denotes southern hemisphere UTM zone (boolean) + \par Example + \image html ex_ups.gif + */ + template <typename CalculationType, typename Parameters> + struct ups_spheroid : public detail::stere::base_stere_spheroid<CalculationType, Parameters> + { + inline ups_spheroid(const Parameters& par) : detail::stere::base_stere_spheroid<CalculationType, Parameters>(par) + { + detail::stere::setup_ups(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::stere, stere_spheroid, stere_ellipsoid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::ups, ups_spheroid, ups_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class stere_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<stere_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<stere_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class ups_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<ups_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<ups_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void stere_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("stere", new stere_entry<CalculationType, Parameters>); + factory.add_to_factory("ups", new ups_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_STERE_HPP + diff --git a/boost/geometry/srs/projections/proj/sterea.hpp b/boost/geometry/srs/projections/proj/sterea.hpp new file mode 100644 index 0000000000..f9de2c6896 --- /dev/null +++ b/boost/geometry/srs/projections/proj/sterea.hpp @@ -0,0 +1,210 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_STEREA_HPP +#define BOOST_GEOMETRY_PROJECTIONS_STEREA_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Copyright (c) 2003 Gerald I. Evenden + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/pj_gauss.hpp> + + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct sterea {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace sterea + { + + static const double DEL_TOL = 1.e-14; + static const int MAX_ITER = 10; + + template <typename T> + struct par_sterea + { + T phic0; + T cosc0, sinc0; + T R2; + gauss::GAUSS<T> en; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_sterea_ellipsoid : public base_t_fi<base_sterea_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_sterea<CalculationType> m_proj_parm; + + inline base_sterea_ellipsoid(const Parameters& par) + : base_t_fi<base_sterea_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipsoid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType cosc, sinc, cosl_, k; + + detail::gauss::gauss(m_proj_parm.en, lp_lon, lp_lat); + sinc = sin(lp_lat); + cosc = cos(lp_lat); + cosl_ = cos(lp_lon); + k = this->m_par.k0 * this->m_proj_parm.R2 / (1. + this->m_proj_parm.sinc0 * sinc + this->m_proj_parm.cosc0 * cosc * cosl_); + xy_x = k * cosc * sin(lp_lon); + xy_y = k * (this->m_proj_parm.cosc0 * sinc - this->m_proj_parm.sinc0 * cosc * cosl_); + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType rho, c, sinc, cosc; + + xy_x /= this->m_par.k0; + xy_y /= this->m_par.k0; + if((rho = boost::math::hypot(xy_x, xy_y))) { + c = 2. * atan2(rho, this->m_proj_parm.R2); + sinc = sin(c); + cosc = cos(c); + lp_lat = asin(cosc * this->m_proj_parm.sinc0 + xy_y * sinc * this->m_proj_parm.cosc0 / rho); + lp_lon = atan2(xy_x * sinc, rho * this->m_proj_parm.cosc0 * cosc - + xy_y * this->m_proj_parm.sinc0 * sinc); + } else { + lp_lat = this->m_proj_parm.phic0; + lp_lon = 0.; + } + detail::gauss::inv_gauss(m_proj_parm.en, lp_lon, lp_lat); + } + + static inline std::string get_name() + { + return "sterea_ellipsoid"; + } + + }; + + // Oblique Stereographic Alternative + template <typename Parameters, typename T> + inline void setup_sterea(Parameters& par, par_sterea<T>& proj_parm) + { + T R; + + proj_parm.en = detail::gauss::gauss_ini(par.e, par.phi0, proj_parm.phic0, R); + proj_parm.sinc0 = sin(proj_parm.phic0); + proj_parm.cosc0 = cos(proj_parm.phic0); + proj_parm.R2 = 2. * R; + } + + }} // namespace detail::sterea + #endif // doxygen + + /*! + \brief Oblique Stereographic Alternative projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Azimuthal + - Spheroid + - Ellipsoid + \par Example + \image html ex_sterea.gif + */ + template <typename CalculationType, typename Parameters> + struct sterea_ellipsoid : public detail::sterea::base_sterea_ellipsoid<CalculationType, Parameters> + { + inline sterea_ellipsoid(const Parameters& par) : detail::sterea::base_sterea_ellipsoid<CalculationType, Parameters>(par) + { + detail::sterea::setup_sterea(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::sterea, sterea_ellipsoid, sterea_ellipsoid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class sterea_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<sterea_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void sterea_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("sterea", new sterea_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_STEREA_HPP + diff --git a/boost/geometry/srs/projections/proj/sts.hpp b/boost/geometry/srs/projections/proj/sts.hpp new file mode 100644 index 0000000000..ca0d3f0cd1 --- /dev/null +++ b/boost/geometry/srs/projections/proj/sts.hpp @@ -0,0 +1,325 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_STS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_STS_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct kav5 {}; + struct qua_aut {}; + struct mbt_s {}; + struct fouc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace sts + { + template <typename T> + struct par_sts + { + T C_x, C_y, C_p; + int tan_mode; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_sts_spheroid : public base_t_fi<base_sts_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_sts<CalculationType> m_proj_parm; + + inline base_sts_spheroid(const Parameters& par) + : base_t_fi<base_sts_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType c; + + xy_x = this->m_proj_parm.C_x * lp_lon * cos(lp_lat); + xy_y = this->m_proj_parm.C_y; + lp_lat *= this->m_proj_parm.C_p; + c = cos(lp_lat); + if (this->m_proj_parm.tan_mode) { + xy_x *= c * c; + xy_y *= tan(lp_lat); + } else { + xy_x /= c; + xy_y *= sin(lp_lat); + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType c; + + xy_y /= this->m_proj_parm.C_y; + c = cos(lp_lat = this->m_proj_parm.tan_mode ? atan(xy_y) : aasin(xy_y)); + lp_lat /= this->m_proj_parm.C_p; + lp_lon = xy_x / (this->m_proj_parm.C_x * cos(lp_lat)); + if (this->m_proj_parm.tan_mode) + lp_lon /= c * c; + else + lp_lon *= c; + } + + static inline std::string get_name() + { + return "sts_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_sts<T>& proj_parm, T const& p, T const& q, int mode) + { + par.es = 0.; + proj_parm.C_x = q / p; + proj_parm.C_y = p; + proj_parm.C_p = 1/ q; + proj_parm.tan_mode = mode; + } + + + // Kavraisky V + template <typename Parameters, typename T> + inline void setup_kav5(Parameters& par, par_sts<T>& proj_parm) + { + setup(par, proj_parm, 1.50488, 1.35439, 0); + } + + // Quartic Authalic + template <typename Parameters, typename T> + inline void setup_qua_aut(Parameters& par, par_sts<T>& proj_parm) + { + setup(par, proj_parm, 2., 2., 0); + } + + // McBryde-Thomas Flat-Polar Sine (No. 1) + template <typename Parameters, typename T> + inline void setup_mbt_s(Parameters& par, par_sts<T>& proj_parm) + { + setup(par, proj_parm, 1.48875, 1.36509, 0); + } + + // Foucaut + template <typename Parameters, typename T> + inline void setup_fouc(Parameters& par, par_sts<T>& proj_parm) + { + setup(par, proj_parm, 2., 2., 1); + } + + }} // namespace detail::sts + #endif // doxygen + + /*! + \brief Kavraisky V projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_kav5.gif + */ + template <typename CalculationType, typename Parameters> + struct kav5_spheroid : public detail::sts::base_sts_spheroid<CalculationType, Parameters> + { + inline kav5_spheroid(const Parameters& par) : detail::sts::base_sts_spheroid<CalculationType, Parameters>(par) + { + detail::sts::setup_kav5(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Quartic Authalic projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_qua_aut.gif + */ + template <typename CalculationType, typename Parameters> + struct qua_aut_spheroid : public detail::sts::base_sts_spheroid<CalculationType, Parameters> + { + inline qua_aut_spheroid(const Parameters& par) : detail::sts::base_sts_spheroid<CalculationType, Parameters>(par) + { + detail::sts::setup_qua_aut(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief McBryde-Thomas Flat-Polar Sine (No. 1) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_mbt_s.gif + */ + template <typename CalculationType, typename Parameters> + struct mbt_s_spheroid : public detail::sts::base_sts_spheroid<CalculationType, Parameters> + { + inline mbt_s_spheroid(const Parameters& par) : detail::sts::base_sts_spheroid<CalculationType, Parameters>(par) + { + detail::sts::setup_mbt_s(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Foucaut projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_fouc.gif + */ + template <typename CalculationType, typename Parameters> + struct fouc_spheroid : public detail::sts::base_sts_spheroid<CalculationType, Parameters> + { + inline fouc_spheroid(const Parameters& par) : detail::sts::base_sts_spheroid<CalculationType, Parameters>(par) + { + detail::sts::setup_fouc(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::kav5, kav5_spheroid, kav5_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::qua_aut, qua_aut_spheroid, qua_aut_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::mbt_s, mbt_s_spheroid, mbt_s_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::fouc, fouc_spheroid, fouc_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class kav5_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<kav5_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class qua_aut_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<qua_aut_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class mbt_s_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<mbt_s_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class fouc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<fouc_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void sts_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("kav5", new kav5_entry<CalculationType, Parameters>); + factory.add_to_factory("qua_aut", new qua_aut_entry<CalculationType, Parameters>); + factory.add_to_factory("mbt_s", new mbt_s_entry<CalculationType, Parameters>); + factory.add_to_factory("fouc", new fouc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_STS_HPP + diff --git a/boost/geometry/srs/projections/proj/tcc.hpp b/boost/geometry/srs/projections/proj/tcc.hpp new file mode 100644 index 0000000000..26cb62b3e8 --- /dev/null +++ b/boost/geometry/srs/projections/proj/tcc.hpp @@ -0,0 +1,163 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_TCC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_TCC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct tcc {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace tcc + { + + static const double EPS10 = 1.e-10; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_tcc_spheroid : public base_t_f<base_tcc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + inline base_tcc_spheroid(const Parameters& par) + : base_t_f<base_tcc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType b, bt; + + b = cos(lp_lat) * sin(lp_lon); + if ((bt = 1. - b * b) < EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + xy_x = b / sqrt(bt); + xy_y = atan2(tan(lp_lat) , cos(lp_lon)); + } + + static inline std::string get_name() + { + return "tcc_spheroid"; + } + + }; + + // Transverse Central Cylindrical + template <typename Parameters> + inline void setup_tcc(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::tcc + #endif // doxygen + + /*! + \brief Transverse Central Cylindrical projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - no inverse + \par Example + \image html ex_tcc.gif + */ + template <typename CalculationType, typename Parameters> + struct tcc_spheroid : public detail::tcc::base_tcc_spheroid<CalculationType, Parameters> + { + inline tcc_spheroid(const Parameters& par) : detail::tcc::base_tcc_spheroid<CalculationType, Parameters>(par) + { + detail::tcc::setup_tcc(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::tcc, tcc_spheroid, tcc_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class tcc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<tcc_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void tcc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("tcc", new tcc_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_TCC_HPP + diff --git a/boost/geometry/srs/projections/proj/tcea.hpp b/boost/geometry/srs/projections/proj/tcea.hpp new file mode 100644 index 0000000000..b87574e947 --- /dev/null +++ b/boost/geometry/srs/projections/proj/tcea.hpp @@ -0,0 +1,176 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_TCEA_HPP +#define BOOST_GEOMETRY_PROJECTIONS_TCEA_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct tcea {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace tcea + { + template <typename T> + struct par_tcea + { + T rk0; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_tcea_spheroid : public base_t_fi<base_tcea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_tcea<CalculationType> m_proj_parm; + + inline base_tcea_spheroid(const Parameters& par) + : base_t_fi<base_tcea_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = this->m_proj_parm.rk0 * cos(lp_lat) * sin(lp_lon); + xy_y = this->m_par.k0 * (atan2(tan(lp_lat), cos(lp_lon)) - this->m_par.phi0); + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType t; + + xy_y = xy_y * this->m_proj_parm.rk0 + this->m_par.phi0; + xy_x *= this->m_par.k0; + t = sqrt(1. - xy_x * xy_x); + lp_lat = asin(t * sin(xy_y)); + lp_lon = atan2(xy_x, t * cos(xy_y)); + } + + static inline std::string get_name() + { + return "tcea_spheroid"; + } + + }; + + // Transverse Cylindrical Equal Area + template <typename Parameters, typename T> + inline void setup_tcea(Parameters& par, par_tcea<T>& proj_parm) + { + proj_parm.rk0 = 1 / par.k0; + par.es = 0.; + } + + }} // namespace detail::tcea + #endif // doxygen + + /*! + \brief Transverse Cylindrical Equal Area projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Example + \image html ex_tcea.gif + */ + template <typename CalculationType, typename Parameters> + struct tcea_spheroid : public detail::tcea::base_tcea_spheroid<CalculationType, Parameters> + { + inline tcea_spheroid(const Parameters& par) : detail::tcea::base_tcea_spheroid<CalculationType, Parameters>(par) + { + detail::tcea::setup_tcea(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::tcea, tcea_spheroid, tcea_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class tcea_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<tcea_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void tcea_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("tcea", new tcea_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_TCEA_HPP + diff --git a/boost/geometry/srs/projections/proj/tmerc.hpp b/boost/geometry/srs/projections/proj/tmerc.hpp new file mode 100644 index 0000000000..6ed2902142 --- /dev/null +++ b/boost/geometry/srs/projections/proj/tmerc.hpp @@ -0,0 +1,495 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_TMERC_HPP +#define BOOST_GEOMETRY_PROJECTIONS_TMERC_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/function_overloads.hpp> +#include <boost/geometry/srs/projections/impl/pj_mlfn.hpp> + + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct tmerc {}; + struct utm {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace tmerc + { + + static const double EPS10 = 1.e-10; + //static const double FC1 = 1.; + //static const double FC2 = .5; + //static const double FC3 = .16666666666666666666; + //static const double FC4 = .08333333333333333333; + //static const double FC5 = .05; + //static const double FC6 = .03333333333333333333; + //static const double FC7 = .02380952380952380952; + //static const double FC8 = .01785714285714285714; + + template <typename T> + inline T FC1() { return 1.; } + template <typename T> + inline T FC2() { return .5; } + template <typename T> + inline T FC3() { return .16666666666666666666666666666666666666; } + template <typename T> + inline T FC4() { return .08333333333333333333333333333333333333; } + template <typename T> + inline T FC5() { return .05; } + template <typename T> + inline T FC6() { return .03333333333333333333333333333333333333; } + template <typename T> + inline T FC7() { return .02380952380952380952380952380952380952; } + template <typename T> + inline T FC8() { return .01785714285714285714285714285714285714; } + + template <typename T> + struct par_tmerc + { + T esp; + T ml0; + T en[EN_SIZE]; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_tmerc_ellipsoid : public base_t_fi<base_tmerc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_tmerc<CalculationType> m_proj_parm; + + inline base_tmerc_ellipsoid(const Parameters& par) + : base_t_fi<base_tmerc_ellipsoid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(e_forward) ellipse + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType FC1 = tmerc::FC1<CalculationType>(); + static const CalculationType FC2 = tmerc::FC2<CalculationType>(); + static const CalculationType FC3 = tmerc::FC3<CalculationType>(); + static const CalculationType FC4 = tmerc::FC4<CalculationType>(); + static const CalculationType FC5 = tmerc::FC5<CalculationType>(); + static const CalculationType FC6 = tmerc::FC6<CalculationType>(); + static const CalculationType FC7 = tmerc::FC7<CalculationType>(); + static const CalculationType FC8 = tmerc::FC8<CalculationType>(); + + CalculationType al, als, n, cosphi, sinphi, t; + + /* + * Fail if our longitude is more than 90 degrees from the + * central meridian since the results are essentially garbage. + * Is error -20 really an appropriate return value? + * + * http://trac.osgeo.org/proj/ticket/5 + */ + if( lp_lon < -HALFPI || lp_lon > HALFPI ) + { + xy_x = HUGE_VAL; + xy_y = HUGE_VAL; + BOOST_THROW_EXCEPTION( projection_exception(-14) ); + return; + } + + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + t = fabs(cosphi) > 1e-10 ? sinphi/cosphi : 0.; + t *= t; + al = cosphi * lp_lon; + als = al * al; + al /= sqrt(1. - this->m_par.es * sinphi * sinphi); + n = this->m_proj_parm.esp * cosphi * cosphi; + xy_x = this->m_par.k0 * al * (FC1 + + FC3 * als * (1. - t + n + + FC5 * als * (5. + t * (t - 18.) + n * (14. - 58. * t) + + FC7 * als * (61. + t * ( t * (179. - t) - 479. ) ) + ))); + xy_y = this->m_par.k0 * (pj_mlfn(lp_lat, sinphi, cosphi, this->m_proj_parm.en) - this->m_proj_parm.ml0 + + sinphi * al * lp_lon * FC2 * ( 1. + + FC4 * als * (5. - t + n * (9. + 4. * n) + + FC6 * als * (61. + t * (t - 58.) + n * (270. - 330 * t) + + FC8 * als * (1385. + t * ( t * (543. - t) - 3111.) ) + )))); + } + + // INVERSE(e_inverse) ellipsoid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType FC1 = tmerc::FC1<CalculationType>(); + static const CalculationType FC2 = tmerc::FC2<CalculationType>(); + static const CalculationType FC3 = tmerc::FC3<CalculationType>(); + static const CalculationType FC4 = tmerc::FC4<CalculationType>(); + static const CalculationType FC5 = tmerc::FC5<CalculationType>(); + static const CalculationType FC6 = tmerc::FC6<CalculationType>(); + static const CalculationType FC7 = tmerc::FC7<CalculationType>(); + static const CalculationType FC8 = tmerc::FC8<CalculationType>(); + + CalculationType n, con, cosphi, d, ds, sinphi, t; + + lp_lat = pj_inv_mlfn(this->m_proj_parm.ml0 + xy_y / this->m_par.k0, this->m_par.es, this->m_proj_parm.en); + if (fabs(lp_lat) >= HALFPI) { + lp_lat = xy_y < 0. ? -HALFPI : HALFPI; + lp_lon = 0.; + } else { + sinphi = sin(lp_lat); + cosphi = cos(lp_lat); + t = fabs(cosphi) > 1e-10 ? sinphi/cosphi : 0.; + n = this->m_proj_parm.esp * cosphi * cosphi; + d = xy_x * sqrt(con = 1. - this->m_par.es * sinphi * sinphi) / this->m_par.k0; + con *= t; + t *= t; + ds = d * d; + lp_lat -= (con * ds / (1.-this->m_par.es)) * FC2 * (1. - + ds * FC4 * (5. + t * (3. - 9. * n) + n * (1. - 4 * n) - + ds * FC6 * (61. + t * (90. - 252. * n + + 45. * t) + 46. * n + - ds * FC8 * (1385. + t * (3633. + t * (4095. + 1574. * t)) ) + ))); + lp_lon = d*(FC1 - + ds*FC3*( 1. + 2.*t + n - + ds*FC5*(5. + t*(28. + 24.*t + 8.*n) + 6.*n + - ds * FC7 * (61. + t * (662. + t * (1320. + 720. * t)) ) + ))) / cosphi; + } + } + + static inline std::string get_name() + { + return "tmerc_ellipsoid"; + } + + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_tmerc_spheroid : public base_t_fi<base_tmerc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_tmerc<CalculationType> m_proj_parm; + + inline base_tmerc_spheroid(const Parameters& par) + : base_t_fi<base_tmerc_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) sphere + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + + CalculationType b, cosphi; + + /* + * Fail if our longitude is more than 90 degrees from the + * central meridian since the results are essentially garbage. + * Is error -20 really an appropriate return value? + * + * http://trac.osgeo.org/proj/ticket/5 + */ + if( lp_lon < -HALFPI || lp_lon > HALFPI ) + { + xy_x = HUGE_VAL; + xy_y = HUGE_VAL; + BOOST_THROW_EXCEPTION( projection_exception(-14) ); + return; + } + + cosphi = cos(lp_lat); + b = cosphi * sin(lp_lon); + if (fabs(fabs(b) - 1.) <= EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + + xy_x = this->m_proj_parm.ml0 * log((1. + b) / (1. - b)); + xy_y = cosphi * cos(lp_lon) / sqrt(1. - b * b); + + b = fabs( xy_y ); + if (b >= 1.) { + if ((b - 1.) > EPS10) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + else xy_y = 0.; + } else + xy_y = acos(xy_y); + + if (lp_lat < 0.) + xy_y = -xy_y; + xy_y = this->m_proj_parm.esp * (xy_y - this->m_par.phi0); + } + + // INVERSE(s_inverse) sphere + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType h, g; + + h = exp(xy_x / this->m_proj_parm.esp); + g = .5 * (h - 1. / h); + h = cos(this->m_par.phi0 + xy_y / this->m_proj_parm.esp); + lp_lat = asin(sqrt((1. - h * h) / (1. + g * g))); + if (xy_y < 0.) lp_lat = -lp_lat; + lp_lon = (g || h) ? atan2(g, h) : 0.; + } + + static inline std::string get_name() + { + return "tmerc_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_tmerc<T>& proj_parm) /* general initialization */ + { + if (par.es) { + if (!pj_enfn(par.es, proj_parm.en)) + BOOST_THROW_EXCEPTION( projection_exception(0) ); + proj_parm.ml0 = pj_mlfn(par.phi0, sin(par.phi0), cos(par.phi0), proj_parm.en); + proj_parm.esp = par.es / (1. - par.es); + } else { + proj_parm.esp = par.k0; + proj_parm.ml0 = .5 * proj_parm.esp; + } + } + + + // Transverse Mercator + template <typename Parameters, typename T> + inline void setup_tmerc(Parameters& par, par_tmerc<T>& proj_parm) + { + setup(par, proj_parm); + } + + // Universal Transverse Mercator (UTM) + template <typename Parameters, typename T> + inline void setup_utm(Parameters& par, par_tmerc<T>& proj_parm) + { + static const T ONEPI = detail::ONEPI<T>(); + + int zone; + + par.y0 = pj_param(par.params, "bsouth").i ? 10000000. : 0.; + par.x0 = 500000.; + if (pj_param(par.params, "tzone").i) /* zone input ? */ + if ((zone = pj_param(par.params, "izone").i) > 0 && zone <= 60) + --zone; + else + BOOST_THROW_EXCEPTION( projection_exception(-35) ); + else /* nearest central meridian input */ + if ((zone = int_floor((adjlon(par.lam0) + ONEPI) * 30. / ONEPI)) < 0) + zone = 0; + else if (zone >= 60) + zone = 59; + par.lam0 = (zone + .5) * ONEPI / 30. - ONEPI; + par.k0 = 0.9996; + par.phi0 = 0.; + setup(par, proj_parm); + } + + }} // namespace detail::tmerc + #endif // doxygen + + /*! + \brief Transverse Mercator projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Ellipsoid + \par Example + \image html ex_tmerc.gif + */ + template <typename CalculationType, typename Parameters> + struct tmerc_ellipsoid : public detail::tmerc::base_tmerc_ellipsoid<CalculationType, Parameters> + { + inline tmerc_ellipsoid(const Parameters& par) : detail::tmerc::base_tmerc_ellipsoid<CalculationType, Parameters>(par) + { + detail::tmerc::setup_tmerc(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Transverse Mercator projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + - Ellipsoid + \par Example + \image html ex_tmerc.gif + */ + template <typename CalculationType, typename Parameters> + struct tmerc_spheroid : public detail::tmerc::base_tmerc_spheroid<CalculationType, Parameters> + { + inline tmerc_spheroid(const Parameters& par) : detail::tmerc::base_tmerc_spheroid<CalculationType, Parameters>(par) + { + detail::tmerc::setup_tmerc(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Universal Transverse Mercator (UTM) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Projection parameters + - zone: UTM Zone (integer) + - south: Denotes southern hemisphere UTM zone (boolean) + \par Example + \image html ex_utm.gif + */ + template <typename CalculationType, typename Parameters> + struct utm_ellipsoid : public detail::tmerc::base_tmerc_ellipsoid<CalculationType, Parameters> + { + inline utm_ellipsoid(const Parameters& par) : detail::tmerc::base_tmerc_ellipsoid<CalculationType, Parameters>(par) + { + detail::tmerc::setup_utm(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Universal Transverse Mercator (UTM) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Cylindrical + - Spheroid + \par Projection parameters + - zone: UTM Zone (integer) + - south: Denotes southern hemisphere UTM zone (boolean) + \par Example + \image html ex_utm.gif + */ + template <typename CalculationType, typename Parameters> + struct utm_spheroid : public detail::tmerc::base_tmerc_spheroid<CalculationType, Parameters> + { + inline utm_spheroid(const Parameters& par) : detail::tmerc::base_tmerc_spheroid<CalculationType, Parameters>(par) + { + detail::tmerc::setup_utm(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::tmerc, tmerc_spheroid, tmerc_ellipsoid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::utm, utm_spheroid, utm_ellipsoid) + + // Factory entry(s) - dynamic projection + template <typename CalculationType, typename Parameters> + class tmerc_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<tmerc_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<tmerc_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class utm_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + if (par.es) + return new base_v_fi<utm_ellipsoid<CalculationType, Parameters>, CalculationType, Parameters>(par); + else + return new base_v_fi<utm_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void tmerc_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("tmerc", new tmerc_entry<CalculationType, Parameters>); + factory.add_to_factory("utm", new utm_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_TMERC_HPP + diff --git a/boost/geometry/srs/projections/proj/tpeqd.hpp b/boost/geometry/srs/projections/proj/tpeqd.hpp new file mode 100644 index 0000000000..2d08d49bde --- /dev/null +++ b/boost/geometry/srs/projections/proj/tpeqd.hpp @@ -0,0 +1,235 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_TPEQD_HPP +#define BOOST_GEOMETRY_PROJECTIONS_TPEQD_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> +#include <boost/math/special_functions/hypot.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct tpeqd {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace tpeqd + { + template <typename T> + struct par_tpeqd + { + T cp1, sp1, cp2, sp2, ccs, cs, sc, r2z0, z02, dlam2; + T hz0, thz0, rhshz0, ca, sa, lp, lamc; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_tpeqd_spheroid : public base_t_fi<base_tpeqd_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_tpeqd<CalculationType> m_proj_parm; + + inline base_tpeqd_spheroid(const Parameters& par) + : base_t_fi<base_tpeqd_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) sphere + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType t, z1, z2, dl1, dl2, sp, cp; + + sp = sin(lp_lat); + cp = cos(lp_lat); + z1 = aacos(this->m_proj_parm.sp1 * sp + this->m_proj_parm.cp1 * cp * cos(dl1 = lp_lon + this->m_proj_parm.dlam2)); + z2 = aacos(this->m_proj_parm.sp2 * sp + this->m_proj_parm.cp2 * cp * cos(dl2 = lp_lon - this->m_proj_parm.dlam2)); + z1 *= z1; + z2 *= z2; + xy_x = this->m_proj_parm.r2z0 * (t = z1 - z2); + t = this->m_proj_parm.z02 - t; + xy_y = this->m_proj_parm.r2z0 * asqrt(4. * this->m_proj_parm.z02 * z2 - t * t); + if ((this->m_proj_parm.ccs * sp - cp * (this->m_proj_parm.cs * sin(dl1) - this->m_proj_parm.sc * sin(dl2))) < 0.) + xy_y = -xy_y; + } + + // INVERSE(s_inverse) sphere + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + CalculationType cz1, cz2, s, d, cp, sp; + + cz1 = cos(boost::math::hypot(xy_y, xy_x + this->m_proj_parm.hz0)); + cz2 = cos(boost::math::hypot(xy_y, xy_x - this->m_proj_parm.hz0)); + s = cz1 + cz2; + d = cz1 - cz2; + lp_lon = - atan2(d, (s * this->m_proj_parm.thz0)); + lp_lat = aacos(boost::math::hypot(this->m_proj_parm.thz0 * s, d) * this->m_proj_parm.rhshz0); + if ( xy_y < 0. ) + lp_lat = - lp_lat; + /* lam--phi now in system relative to P1--P2 base equator */ + sp = sin(lp_lat); + cp = cos(lp_lat); + lp_lat = aasin(this->m_proj_parm.sa * sp + this->m_proj_parm.ca * cp * (s = cos(lp_lon -= this->m_proj_parm.lp))); + lp_lon = atan2(cp * sin(lp_lon), this->m_proj_parm.sa * cp * s - this->m_proj_parm.ca * sp) + this->m_proj_parm.lamc; + } + + static inline std::string get_name() + { + return "tpeqd_spheroid"; + } + + }; + + // Two Point Equidistant + template <typename Parameters, typename T> + inline void setup_tpeqd(Parameters& par, par_tpeqd<T>& proj_parm) + { + T lam_1, lam_2, phi_1, phi_2, A12, pp; + + /* get control point locations */ + phi_1 = pj_param(par.params, "rlat_1").f; + lam_1 = pj_param(par.params, "rlon_1").f; + phi_2 = pj_param(par.params, "rlat_2").f; + lam_2 = pj_param(par.params, "rlon_2").f; + if (phi_1 == phi_2 && lam_1 == lam_2) + BOOST_THROW_EXCEPTION( projection_exception(-25) ); + par.lam0 = adjlon(0.5 * (lam_1 + lam_2)); + proj_parm.dlam2 = adjlon(lam_2 - lam_1); + proj_parm.cp1 = cos(phi_1); + proj_parm.cp2 = cos(phi_2); + proj_parm.sp1 = sin(phi_1); + proj_parm.sp2 = sin(phi_2); + proj_parm.cs = proj_parm.cp1 * proj_parm.sp2; + proj_parm.sc = proj_parm.sp1 * proj_parm.cp2; + proj_parm.ccs = proj_parm.cp1 * proj_parm.cp2 * sin(proj_parm.dlam2); + proj_parm.z02 = aacos(proj_parm.sp1 * proj_parm.sp2 + proj_parm.cp1 * proj_parm.cp2 * cos(proj_parm.dlam2)); + proj_parm.hz0 = .5 * proj_parm.z02; + A12 = atan2(proj_parm.cp2 * sin(proj_parm.dlam2), + proj_parm.cp1 * proj_parm.sp2 - proj_parm.sp1 * proj_parm.cp2 * cos(proj_parm.dlam2)); + proj_parm.ca = cos(pp = aasin(proj_parm.cp1 * sin(A12))); + proj_parm.sa = sin(pp); + proj_parm.lp = adjlon(atan2(proj_parm.cp1 * cos(A12), proj_parm.sp1) - proj_parm.hz0); + proj_parm.dlam2 *= .5; + proj_parm.lamc = geometry::math::half_pi<T>() - atan2(sin(A12) * proj_parm.sp1, cos(A12)) - proj_parm.dlam2; + proj_parm.thz0 = tan(proj_parm.hz0); + proj_parm.rhshz0 = .5 / sin(proj_parm.hz0); + proj_parm.r2z0 = 0.5 / proj_parm.z02; + proj_parm.z02 *= proj_parm.z02; + par.es = 0.; + } + + }} // namespace detail::tpeqd + #endif // doxygen + + /*! + \brief Two Point Equidistant projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + \par Projection parameters + - lat_1: Latitude of first standard parallel (degrees) + - lon_1 (degrees) + - lat_2: Latitude of second standard parallel (degrees) + - lon_2 (degrees) + \par Example + \image html ex_tpeqd.gif + */ + template <typename CalculationType, typename Parameters> + struct tpeqd_spheroid : public detail::tpeqd::base_tpeqd_spheroid<CalculationType, Parameters> + { + inline tpeqd_spheroid(const Parameters& par) : detail::tpeqd::base_tpeqd_spheroid<CalculationType, Parameters>(par) + { + detail::tpeqd::setup_tpeqd(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::tpeqd, tpeqd_spheroid, tpeqd_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class tpeqd_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<tpeqd_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void tpeqd_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("tpeqd", new tpeqd_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_TPEQD_HPP + diff --git a/boost/geometry/srs/projections/proj/urm5.hpp b/boost/geometry/srs/projections/proj/urm5.hpp new file mode 100644 index 0000000000..96b541f4ea --- /dev/null +++ b/boost/geometry/srs/projections/proj/urm5.hpp @@ -0,0 +1,185 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_URM5_HPP +#define BOOST_GEOMETRY_PROJECTIONS_URM5_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct urm5 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace urm5 + { + template <typename T> + struct par_urm5 + { + T m, rmn, q3, n; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_urm5_spheroid : public base_t_f<base_urm5_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_urm5<CalculationType> m_proj_parm; + + inline base_urm5_spheroid(const Parameters& par) + : base_t_f<base_urm5_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType t; + + t = lp_lat = aasin(this->m_proj_parm.n * sin(lp_lat)); + xy_x = this->m_proj_parm.m * lp_lon * cos(lp_lat); + t *= t; + xy_y = lp_lat * (1. + t * this->m_proj_parm.q3) * this->m_proj_parm.rmn; + } + + static inline std::string get_name() + { + return "urm5_spheroid"; + } + + }; + + // Urmaev V + template <typename Parameters, typename T> + inline void setup_urm5(Parameters& par, par_urm5<T>& proj_parm) + { + T alpha, t; + + if (pj_param(par.params, "tn").i) { + proj_parm.n = pj_param(par.params, "dn").f; + if (proj_parm.n <= 0. || proj_parm.n > 1.) + BOOST_THROW_EXCEPTION( projection_exception(-40) ); + } else + BOOST_THROW_EXCEPTION( projection_exception(-40) ); + proj_parm.q3 = pj_param(par.params, "dq").f / 3.; + alpha = pj_param(par.params, "ralpha").f; + t = proj_parm.n * sin(alpha); + proj_parm.m = cos(alpha) / sqrt(1. - t * t); + proj_parm.rmn = 1. / (proj_parm.m * proj_parm.n); + par.es = 0.; + } + + }} // namespace detail::urm5 + #endif // doxygen + + /*! + \brief Urmaev V projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + - no inverse + \par Projection parameters + - n (real) + - q (real) + - alpha: Alpha (degrees) + \par Example + \image html ex_urm5.gif + */ + template <typename CalculationType, typename Parameters> + struct urm5_spheroid : public detail::urm5::base_urm5_spheroid<CalculationType, Parameters> + { + inline urm5_spheroid(const Parameters& par) : detail::urm5::base_urm5_spheroid<CalculationType, Parameters>(par) + { + detail::urm5::setup_urm5(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::urm5, urm5_spheroid, urm5_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class urm5_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<urm5_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void urm5_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("urm5", new urm5_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_URM5_HPP + diff --git a/boost/geometry/srs/projections/proj/urmfps.hpp b/boost/geometry/srs/projections/proj/urmfps.hpp new file mode 100644 index 0000000000..14840057dc --- /dev/null +++ b/boost/geometry/srs/projections/proj/urmfps.hpp @@ -0,0 +1,235 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_URMFPS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_URMFPS_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct urmfps {}; + struct wag1 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace urmfps + { + + static const double C_x = 0.8773826753; + static const double Cy = 1.139753528477; + + template <typename T> + struct par_urmfps + { + T n, C_y; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_urmfps_spheroid : public base_t_fi<base_urmfps_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_urmfps<CalculationType> m_proj_parm; + + inline base_urmfps_spheroid(const Parameters& par) + : base_t_fi<base_urmfps_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) sphere + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + lp_lat = aasin(this->m_proj_parm.n * sin(lp_lat)); + xy_x = C_x * lp_lon * cos(lp_lat); + xy_y = this->m_proj_parm.C_y * lp_lat; + } + + // INVERSE(s_inverse) sphere + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + xy_y /= this->m_proj_parm.C_y; + lp_lat = aasin(sin(xy_y) / this->m_proj_parm.n); + lp_lon = xy_x / (C_x * cos(xy_y)); + } + + static inline std::string get_name() + { + return "urmfps_spheroid"; + } + + }; + + template <typename Parameters, typename T> + inline void setup(Parameters& par, par_urmfps<T>& proj_parm) + { + proj_parm.C_y = Cy / proj_parm.n; + par.es = 0.; + } + + + // Urmaev Flat-Polar Sinusoidal + template <typename Parameters, typename T> + inline void setup_urmfps(Parameters& par, par_urmfps<T>& proj_parm) + { + if (pj_param(par.params, "tn").i) { + proj_parm.n = pj_param(par.params, "dn").f; + if (proj_parm.n <= 0. || proj_parm.n > 1.) + BOOST_THROW_EXCEPTION( projection_exception(-40) ); + } else + BOOST_THROW_EXCEPTION( projection_exception(-40) ); + setup(par, proj_parm); + } + + // Wagner I (Kavraisky VI) + template <typename Parameters, typename T> + inline void setup_wag1(Parameters& par, par_urmfps<T>& proj_parm) + { + proj_parm.n = 0.8660254037844386467637231707; + setup(par, proj_parm); + } + + }} // namespace detail::urmfps + #endif // doxygen + + /*! + \brief Urmaev Flat-Polar Sinusoidal projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Projection parameters + - n (real) + \par Example + \image html ex_urmfps.gif + */ + template <typename CalculationType, typename Parameters> + struct urmfps_spheroid : public detail::urmfps::base_urmfps_spheroid<CalculationType, Parameters> + { + inline urmfps_spheroid(const Parameters& par) : detail::urmfps::base_urmfps_spheroid<CalculationType, Parameters>(par) + { + detail::urmfps::setup_urmfps(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief Wagner I (Kavraisky VI) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_wag1.gif + */ + template <typename CalculationType, typename Parameters> + struct wag1_spheroid : public detail::urmfps::base_urmfps_spheroid<CalculationType, Parameters> + { + inline wag1_spheroid(const Parameters& par) : detail::urmfps::base_urmfps_spheroid<CalculationType, Parameters>(par) + { + detail::urmfps::setup_wag1(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::urmfps, urmfps_spheroid, urmfps_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::wag1, wag1_spheroid, wag1_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class urmfps_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<urmfps_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class wag1_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<wag1_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void urmfps_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("urmfps", new urmfps_entry<CalculationType, Parameters>); + factory.add_to_factory("wag1", new wag1_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_URMFPS_HPP + diff --git a/boost/geometry/srs/projections/proj/vandg.hpp b/boost/geometry/srs/projections/proj/vandg.hpp new file mode 100644 index 0000000000..1fd95285ea --- /dev/null +++ b/boost/geometry/srs/projections/proj/vandg.hpp @@ -0,0 +1,257 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_VANDG_HPP +#define BOOST_GEOMETRY_PROJECTIONS_VANDG_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct vandg {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace vandg + { + + static const double TOL = 1.e-10; + //static const double THIRD = .33333333333333333333; + //static const double TWO_THRD = .66666666666666666666; + //static const double C2_27 = .07407407407407407407; + //static const double PI4_3 = 4.18879020478639098458; + //static const double PISQ = 9.86960440108935861869; + //static const double TPISQ = 19.73920880217871723738; + //static const double HPISQ = 4.93480220054467930934; + + template <typename T> + inline T C2_27() { return .07407407407407407407407407407407; } + template <typename T> + inline T PI4_3() { return boost::math::constants::four_thirds_pi<T>(); } + template <typename T> + inline T TPISQ() { return 19.739208802178717237668981999752; } + template <typename T> + inline T HPISQ() { return 4.9348022005446793094172454999381; } + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_vandg_spheroid : public base_t_fi<base_vandg_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_vandg_spheroid(const Parameters& par) + : base_t_fi<base_vandg_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType ONEPI = detail::ONEPI<CalculationType>(); + + CalculationType al, al2, g, g2, p2; + + p2 = fabs(lp_lat / HALFPI); + if ((p2 - TOL) > 1.) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + if (p2 > 1.) + p2 = 1.; + if (fabs(lp_lat) <= TOL) { + xy_x = lp_lon; + xy_y = 0.; + } else if (fabs(lp_lon) <= TOL || fabs(p2 - 1.) < TOL) { + xy_x = 0.; + xy_y = ONEPI * tan(.5 * asin(p2)); + if (lp_lat < 0.) xy_y = -xy_y; + } else { + al = .5 * fabs(ONEPI / lp_lon - lp_lon / ONEPI); + al2 = al * al; + g = sqrt(1. - p2 * p2); + g = g / (p2 + g - 1.); + g2 = g * g; + p2 = g * (2. / p2 - 1.); + p2 = p2 * p2; + xy_x = g - p2; g = p2 + al2; + xy_x = ONEPI * (al * xy_x + sqrt(al2 * xy_x * xy_x - g * (g2 - p2))) / g; + if (lp_lon < 0.) xy_x = -xy_x; + xy_y = fabs(xy_x / ONEPI); + xy_y = 1. - xy_y * (xy_y + 2. * al); + if (xy_y < -TOL) + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + if (xy_y < 0.) + xy_y = 0.; + else + xy_y = sqrt(xy_y) * (lp_lat < 0. ? -ONEPI : ONEPI); + } + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType ONEPI = detail::ONEPI<CalculationType>(); + static const CalculationType PISQ = detail::PI_SQR<CalculationType>(); + static const CalculationType THIRD = detail::THIRD<CalculationType>(); + static const CalculationType TWOPI = detail::TWOPI<CalculationType>(); + + static const CalculationType C2_27 = vandg::C2_27<CalculationType>(); + static const CalculationType PI4_3 = vandg::PI4_3<CalculationType>(); + static const CalculationType TPISQ = vandg::TPISQ<CalculationType>(); + static const CalculationType HPISQ = vandg::HPISQ<CalculationType>(); + + CalculationType t, c0, c1, c2, c3, al, r2, r, m, d, ay, x2, y2; + + x2 = xy_x * xy_x; + if ((ay = fabs(xy_y)) < TOL) { + lp_lat = 0.; + t = x2 * x2 + TPISQ * (x2 + HPISQ); + lp_lon = fabs(xy_x) <= TOL ? 0. : + .5 * (x2 - PISQ + sqrt(t)) / xy_x; + return; + } + y2 = xy_y * xy_y; + r = x2 + y2; r2 = r * r; + c1 = - ONEPI * ay * (r + PISQ); + c3 = r2 + TWOPI * (ay * r + ONEPI * (y2 + ONEPI * (ay + HALFPI))); + c2 = c1 + PISQ * (r - 3. * y2); + c0 = ONEPI * ay; + c2 /= c3; + al = c1 / c3 - THIRD * c2 * c2; + m = 2. * sqrt(-THIRD * al); + d = C2_27 * c2 * c2 * c2 + (c0 * c0 - THIRD * c2 * c1) / c3; + if (((t = fabs(d = 3. * d / (al * m))) - TOL) <= 1.) { + d = t > 1. ? (d > 0. ? 0. : ONEPI) : acos(d); + lp_lat = ONEPI * (m * cos(d * THIRD + PI4_3) - THIRD * c2); + if (xy_y < 0.) lp_lat = -lp_lat; + t = r2 + TPISQ * (x2 - y2 + HPISQ); + lp_lon = fabs(xy_x) <= TOL ? 0. : + .5 * (r - PISQ + (t <= 0. ? 0. : sqrt(t))) / xy_x; + } else + BOOST_THROW_EXCEPTION( projection_exception(-20) ); + } + + static inline std::string get_name() + { + return "vandg_spheroid"; + } + + }; + + // van der Grinten (I) + template <typename Parameters> + inline void setup_vandg(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::vandg + #endif // doxygen + + /*! + \brief van der Grinten (I) projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + \par Example + \image html ex_vandg.gif + */ + template <typename CalculationType, typename Parameters> + struct vandg_spheroid : public detail::vandg::base_vandg_spheroid<CalculationType, Parameters> + { + inline vandg_spheroid(const Parameters& par) : detail::vandg::base_vandg_spheroid<CalculationType, Parameters>(par) + { + detail::vandg::setup_vandg(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::vandg, vandg_spheroid, vandg_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class vandg_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<vandg_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void vandg_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("vandg", new vandg_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_VANDG_HPP + diff --git a/boost/geometry/srs/projections/proj/vandg2.hpp b/boost/geometry/srs/projections/proj/vandg2.hpp new file mode 100644 index 0000000000..650a64f432 --- /dev/null +++ b/boost/geometry/srs/projections/proj/vandg2.hpp @@ -0,0 +1,237 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_VANDG2_HPP +#define BOOST_GEOMETRY_PROJECTIONS_VANDG2_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017, 2018. +// Modifications copyright (c) 2017-2018, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct vandg2 {}; + struct vandg3 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace vandg2 + { + + static const double TOL = 1e-10; + //static const double TWORPI = 0.63661977236758134308; + + struct par_vandg2 + { + int vdg3; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_vandg2_spheroid : public base_t_f<base_vandg2_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_vandg2 m_proj_parm; + + inline base_vandg2_spheroid(const Parameters& par) + : base_t_f<base_vandg2_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType ONEPI = detail::ONEPI<CalculationType>(); + static const CalculationType TWORPI = detail::TWO_D_PI<CalculationType>(); + + CalculationType x1, at, bt, ct; + + bt = fabs(TWORPI * lp_lat); + if ((ct = 1. - bt * bt) < 0.) + ct = 0.; + else + ct = sqrt(ct); + if (fabs(lp_lon) < TOL) { + xy_x = 0.; + xy_y = ONEPI * (lp_lat < 0. ? -bt : bt) / (1. + ct); + } else { + at = 0.5 * fabs(ONEPI / lp_lon - lp_lon / ONEPI); + if (this->m_proj_parm.vdg3) { + x1 = bt / (1. + ct); + xy_x = ONEPI * (sqrt(at * at + 1. - x1 * x1) - at); + xy_y = ONEPI * x1; + } else { + x1 = (ct * sqrt(1. + at * at) - at * ct * ct) / + (1. + at * at * bt * bt); + xy_x = ONEPI * x1; + xy_y = ONEPI * sqrt(1. - x1 * (x1 + 2. * at) + TOL); + } + if ( lp_lon < 0.) xy_x = -xy_x; + if ( lp_lat < 0.) xy_y = -xy_y; + } + } + + static inline std::string get_name() + { + return "vandg2_spheroid"; + } + + }; + + // van der Grinten II + template <typename Parameters> + inline void setup_vandg2(Parameters& /*par*/, par_vandg2& proj_parm) + { + proj_parm.vdg3 = 0; + } + + // van der Grinten III + template <typename Parameters> + inline void setup_vandg3(Parameters& par, par_vandg2& proj_parm) + { + proj_parm.vdg3 = 1; + par.es = 0.; + } + + }} // namespace detail::vandg2 + #endif // doxygen + + /*! + \brief van der Grinten II projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Example + \image html ex_vandg2.gif + */ + template <typename CalculationType, typename Parameters> + struct vandg2_spheroid : public detail::vandg2::base_vandg2_spheroid<CalculationType, Parameters> + { + inline vandg2_spheroid(const Parameters& par) : detail::vandg2::base_vandg2_spheroid<CalculationType, Parameters>(par) + { + detail::vandg2::setup_vandg2(this->m_par, this->m_proj_parm); + } + }; + + /*! + \brief van der Grinten III projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Example + \image html ex_vandg3.gif + */ + template <typename CalculationType, typename Parameters> + struct vandg3_spheroid : public detail::vandg2::base_vandg2_spheroid<CalculationType, Parameters> + { + inline vandg3_spheroid(const Parameters& par) : detail::vandg2::base_vandg2_spheroid<CalculationType, Parameters>(par) + { + detail::vandg2::setup_vandg3(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::vandg2, vandg2_spheroid, vandg2_spheroid) + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::vandg3, vandg3_spheroid, vandg3_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class vandg2_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<vandg2_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + class vandg3_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<vandg3_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void vandg2_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("vandg2", new vandg2_entry<CalculationType, Parameters>); + factory.add_to_factory("vandg3", new vandg3_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_VANDG2_HPP + diff --git a/boost/geometry/srs/projections/proj/vandg4.hpp b/boost/geometry/srs/projections/proj/vandg4.hpp new file mode 100644 index 0000000000..0b85fedef4 --- /dev/null +++ b/boost/geometry/srs/projections/proj/vandg4.hpp @@ -0,0 +1,194 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_VANDG4_HPP +#define BOOST_GEOMETRY_PROJECTIONS_VANDG4_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct vandg4 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace vandg4 + { + + static const double TOL = 1e-10; + //static const double TWORPI = 0.63661977236758134308; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_vandg4_spheroid : public base_t_f<base_vandg4_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_vandg4_spheroid(const Parameters& par) + : base_t_f<base_vandg4_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType TWORPI = detail::TWO_D_PI<CalculationType>(); + + CalculationType x1, t, bt, ct, ft, bt2, ct2, dt, dt2; + + if (fabs(lp_lat) < TOL) { + xy_x = lp_lon; + xy_y = 0.; + } else if (fabs(lp_lon) < TOL || fabs(fabs(lp_lat) - HALFPI) < TOL) { + xy_x = 0.; + xy_y = lp_lat; + } else { + bt = fabs(TWORPI * lp_lat); + bt2 = bt * bt; + ct = 0.5 * (bt * (8. - bt * (2. + bt2)) - 5.) + / (bt2 * (bt - 1.)); + ct2 = ct * ct; + dt = TWORPI * lp_lon; + dt = dt + 1. / dt; + dt = sqrt(dt * dt - 4.); + if ((fabs(lp_lon) - HALFPI) < 0.) dt = -dt; + dt2 = dt * dt; + x1 = bt + ct; x1 *= x1; + t = bt + 3.*ct; + ft = x1 * (bt2 + ct2 * dt2 - 1.) + (1.-bt2) * ( + bt2 * (t * t + 4. * ct2) + + ct2 * (12. * bt * ct + 4. * ct2) ); + x1 = (dt*(x1 + ct2 - 1.) + 2.*sqrt(ft)) / + (4.* x1 + dt2); + xy_x = HALFPI * x1; + xy_y = HALFPI * sqrt(1. + dt * fabs(x1) - x1 * x1); + if (lp_lon < 0.) xy_x = -xy_x; + if (lp_lat < 0.) xy_y = -xy_y; + } + } + + static inline std::string get_name() + { + return "vandg4_spheroid"; + } + + }; + + // van der Grinten IV + template <typename Parameters> + inline void setup_vandg4(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::vandg4 + #endif // doxygen + + /*! + \brief van der Grinten IV projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Example + \image html ex_vandg4.gif + */ + template <typename CalculationType, typename Parameters> + struct vandg4_spheroid : public detail::vandg4::base_vandg4_spheroid<CalculationType, Parameters> + { + inline vandg4_spheroid(const Parameters& par) : detail::vandg4::base_vandg4_spheroid<CalculationType, Parameters>(par) + { + detail::vandg4::setup_vandg4(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::vandg4, vandg4_spheroid, vandg4_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class vandg4_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<vandg4_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void vandg4_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("vandg4", new vandg4_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_VANDG4_HPP + diff --git a/boost/geometry/srs/projections/proj/wag2.hpp b/boost/geometry/srs/projections/proj/wag2.hpp new file mode 100644 index 0000000000..2d16892a9d --- /dev/null +++ b/boost/geometry/srs/projections/proj/wag2.hpp @@ -0,0 +1,172 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_WAG2_HPP +#define BOOST_GEOMETRY_PROJECTIONS_WAG2_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> +#include <boost/geometry/srs/projections/impl/aasincos.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct wag2 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace wag2 + { + + static const double C_x = 0.92483; + static const double C_y = 1.38725; + static const double C_p1 = 0.88022; + static const double C_p2 = 0.88550; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_wag2_spheroid : public base_t_fi<base_wag2_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_wag2_spheroid(const Parameters& par) + : base_t_fi<base_wag2_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + lp_lat = aasin(C_p1 * sin(C_p2 * lp_lat)); + xy_x = C_x * lp_lon * cos(lp_lat); + xy_y = C_y * lp_lat; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = xy_y / C_y; + lp_lon = xy_x / (C_x * cos(lp_lat)); + lp_lat = aasin(sin(lp_lat) / C_p1) / C_p2; + } + + static inline std::string get_name() + { + return "wag2_spheroid"; + } + + }; + + // Wagner II + template <typename Parameters> + inline void setup_wag2(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::wag2 + #endif // doxygen + + /*! + \brief Wagner II projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Example + \image html ex_wag2.gif + */ + template <typename CalculationType, typename Parameters> + struct wag2_spheroid : public detail::wag2::base_wag2_spheroid<CalculationType, Parameters> + { + inline wag2_spheroid(const Parameters& par) : detail::wag2::base_wag2_spheroid<CalculationType, Parameters>(par) + { + detail::wag2::setup_wag2(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::wag2, wag2_spheroid, wag2_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class wag2_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<wag2_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void wag2_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("wag2", new wag2_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_WAG2_HPP + diff --git a/boost/geometry/srs/projections/proj/wag3.hpp b/boost/geometry/srs/projections/proj/wag3.hpp new file mode 100644 index 0000000000..3ddbfe8258 --- /dev/null +++ b/boost/geometry/srs/projections/proj/wag3.hpp @@ -0,0 +1,180 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_WAG3_HPP +#define BOOST_GEOMETRY_PROJECTIONS_WAG3_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct wag3 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace wag3 + { + template <typename T> + struct par_wag3 + { + T C_x; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_wag3_spheroid : public base_t_fi<base_wag3_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_wag3<CalculationType> m_proj_parm; + + inline base_wag3_spheroid(const Parameters& par) + : base_t_fi<base_wag3_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType TWOTHIRD = detail::TWOTHIRD<CalculationType>(); + + xy_x = this->m_proj_parm.C_x * lp_lon * cos(TWOTHIRD * lp_lat); + xy_y = lp_lat; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + static const CalculationType TWOTHIRD = detail::TWOTHIRD<CalculationType>(); + + lp_lat = xy_y; + lp_lon = xy_x / (this->m_proj_parm.C_x * cos(TWOTHIRD * lp_lat)); + } + + static inline std::string get_name() + { + return "wag3_spheroid"; + } + + }; + + // Wagner III + template <typename Parameters, typename T> + inline void setup_wag3(Parameters& par, par_wag3<T>& proj_parm) + { + T ts; + + ts = pj_param(par.params, "rlat_ts").f; + proj_parm.C_x = cos(ts) / cos(2.*ts/3.); + par.es = 0.; + } + + }} // namespace detail::wag3 + #endif // doxygen + + /*! + \brief Wagner III projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Projection parameters + - lat_ts: Latitude of true scale (degrees) + \par Example + \image html ex_wag3.gif + */ + template <typename CalculationType, typename Parameters> + struct wag3_spheroid : public detail::wag3::base_wag3_spheroid<CalculationType, Parameters> + { + inline wag3_spheroid(const Parameters& par) : detail::wag3::base_wag3_spheroid<CalculationType, Parameters>(par) + { + detail::wag3::setup_wag3(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::wag3, wag3_spheroid, wag3_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class wag3_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<wag3_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void wag3_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("wag3", new wag3_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_WAG3_HPP + diff --git a/boost/geometry/srs/projections/proj/wag7.hpp b/boost/geometry/srs/projections/proj/wag7.hpp new file mode 100644 index 0000000000..c752ff33ee --- /dev/null +++ b/boost/geometry/srs/projections/proj/wag7.hpp @@ -0,0 +1,161 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_WAG7_HPP +#define BOOST_GEOMETRY_PROJECTIONS_WAG7_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct wag7 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace wag7 + { + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_wag7_spheroid : public base_t_f<base_wag7_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + + inline base_wag7_spheroid(const Parameters& par) + : base_t_f<base_wag7_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) sphere + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + CalculationType theta, ct, D; + + theta = asin(xy_y = 0.90630778703664996 * sin(lp_lat)); + xy_x = 2.66723 * (ct = cos(theta)) * sin(lp_lon /= 3.); + xy_y *= 1.24104 * (D = 1/(sqrt(0.5 * (1 + ct * cos(lp_lon))))); + xy_x *= D; + } + + static inline std::string get_name() + { + return "wag7_spheroid"; + } + + }; + + // Wagner VII + template <typename Parameters> + inline void setup_wag7(Parameters& par) + { + par.es = 0.; + } + + }} // namespace detail::wag7 + #endif // doxygen + + /*! + \brief Wagner VII projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Miscellaneous + - Spheroid + - no inverse + \par Example + \image html ex_wag7.gif + */ + template <typename CalculationType, typename Parameters> + struct wag7_spheroid : public detail::wag7::base_wag7_spheroid<CalculationType, Parameters> + { + inline wag7_spheroid(const Parameters& par) : detail::wag7::base_wag7_spheroid<CalculationType, Parameters>(par) + { + detail::wag7::setup_wag7(this->m_par); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::wag7, wag7_spheroid, wag7_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class wag7_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<wag7_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void wag7_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("wag7", new wag7_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_WAG7_HPP + diff --git a/boost/geometry/srs/projections/proj/wink1.hpp b/boost/geometry/srs/projections/proj/wink1.hpp new file mode 100644 index 0000000000..36ecc95500 --- /dev/null +++ b/boost/geometry/srs/projections/proj/wink1.hpp @@ -0,0 +1,174 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_WINK1_HPP +#define BOOST_GEOMETRY_PROJECTIONS_WINK1_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct wink1 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace wink1 + { + + template <typename T> + struct par_wink1 + { + T cosphi1; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_wink1_spheroid : public base_t_fi<base_wink1_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_wink1<CalculationType> m_proj_parm; + + inline base_wink1_spheroid(const Parameters& par) + : base_t_fi<base_wink1_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + xy_x = .5 * lp_lon * (this->m_proj_parm.cosphi1 + cos(lp_lat)); + xy_y = lp_lat; + } + + // INVERSE(s_inverse) spheroid + // Project coordinates from cartesian (x, y) to geographic (lon, lat) + inline void inv(cartesian_type& xy_x, cartesian_type& xy_y, geographic_type& lp_lon, geographic_type& lp_lat) const + { + lp_lat = xy_y; + lp_lon = 2. * xy_x / (this->m_proj_parm.cosphi1 + cos(lp_lat)); + } + + static inline std::string get_name() + { + return "wink1_spheroid"; + } + + }; + + // Winkel I + template <typename Parameters, typename T> + inline void setup_wink1(Parameters& par, par_wink1<T>& proj_parm) + { + proj_parm.cosphi1 = cos(pj_param(par.params, "rlat_ts").f); + par.es = 0.; + } + + }} // namespace detail::wink1 + #endif // doxygen + + /*! + \brief Winkel I projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + \par Projection parameters + - lat_ts: Latitude of true scale (degrees) + \par Example + \image html ex_wink1.gif + */ + template <typename CalculationType, typename Parameters> + struct wink1_spheroid : public detail::wink1::base_wink1_spheroid<CalculationType, Parameters> + { + inline wink1_spheroid(const Parameters& par) : detail::wink1::base_wink1_spheroid<CalculationType, Parameters>(par) + { + detail::wink1::setup_wink1(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::wink1, wink1_spheroid, wink1_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class wink1_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_fi<wink1_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void wink1_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("wink1", new wink1_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_WINK1_HPP + diff --git a/boost/geometry/srs/projections/proj/wink2.hpp b/boost/geometry/srs/projections/proj/wink2.hpp new file mode 100644 index 0000000000..9c90d42481 --- /dev/null +++ b/boost/geometry/srs/projections/proj/wink2.hpp @@ -0,0 +1,195 @@ +#ifndef BOOST_GEOMETRY_PROJECTIONS_WINK2_HPP +#define BOOST_GEOMETRY_PROJECTIONS_WINK2_HPP + +// Boost.Geometry - extensions-gis-projections (based on PROJ4) +// This file is automatically generated. DO NOT EDIT. + +// Copyright (c) 2008-2015 Barend Gehrels, Amsterdam, the Netherlands. + +// This file was modified by Oracle on 2017. +// Modifications copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// This file is converted from PROJ4, http://trac.osgeo.org/proj +// PROJ4 is originally written by Gerald Evenden (then of the USGS) +// PROJ4 is maintained by Frank Warmerdam +// PROJ4 is converted to Boost.Geometry by Barend Gehrels + +// Last updated version of proj: 4.9.1 + +// Original copyright notice: + +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +#include <boost/geometry/util/math.hpp> + +#include <boost/geometry/srs/projections/impl/base_static.hpp> +#include <boost/geometry/srs/projections/impl/base_dynamic.hpp> +#include <boost/geometry/srs/projections/impl/projects.hpp> +#include <boost/geometry/srs/projections/impl/factory_entry.hpp> + +namespace boost { namespace geometry +{ + +namespace srs { namespace par4 +{ + struct wink2 {}; + +}} //namespace srs::par4 + +namespace projections +{ + #ifndef DOXYGEN_NO_DETAIL + namespace detail { namespace wink2 + { + + static const int MAX_ITER = 10; + + static const double LOOP_TOL = 1e-7; + //static const double TWO_D_PI = 0.636619772367581343; + + template <typename T> + struct par_wink2 + { + T cosphi1; + }; + + // template class, using CRTP to implement forward/inverse + template <typename CalculationType, typename Parameters> + struct base_wink2_spheroid : public base_t_f<base_wink2_spheroid<CalculationType, Parameters>, + CalculationType, Parameters> + { + + typedef CalculationType geographic_type; + typedef CalculationType cartesian_type; + + par_wink2<CalculationType> m_proj_parm; + + inline base_wink2_spheroid(const Parameters& par) + : base_t_f<base_wink2_spheroid<CalculationType, Parameters>, + CalculationType, Parameters>(*this, par) {} + + // FORWARD(s_forward) spheroid + // Project coordinates from geographic (lon, lat) to cartesian (x, y) + inline void fwd(geographic_type& lp_lon, geographic_type& lp_lat, cartesian_type& xy_x, cartesian_type& xy_y) const + { + static const CalculationType ONEPI = detail::ONEPI<CalculationType>(); + static const CalculationType HALFPI = detail::HALFPI<CalculationType>(); + static const CalculationType FORTPI = detail::FORTPI<CalculationType>(); + static const CalculationType TWO_D_PI = detail::TWO_D_PI<CalculationType>(); + + CalculationType k, V; + int i; + + xy_y = lp_lat * TWO_D_PI; + k = ONEPI * sin(lp_lat); + lp_lat *= 1.8; + for (i = MAX_ITER; i ; --i) { + lp_lat -= V = (lp_lat + sin(lp_lat) - k) / + (1. + cos(lp_lat)); + if (fabs(V) < LOOP_TOL) + break; + } + if (!i) + lp_lat = (lp_lat < 0.) ? -HALFPI : HALFPI; + else + lp_lat *= 0.5; + xy_x = 0.5 * lp_lon * (cos(lp_lat) + this->m_proj_parm.cosphi1); + xy_y = FORTPI * (sin(lp_lat) + xy_y); + } + + static inline std::string get_name() + { + return "wink2_spheroid"; + } + + }; + + // Winkel II + template <typename Parameters, typename T> + inline void setup_wink2(Parameters& par, par_wink2<T>& proj_parm) + { + proj_parm.cosphi1 = cos(pj_param(par.params, "rlat_1").f); + par.es = 0.; + } + + }} // namespace detail::wink2 + #endif // doxygen + + /*! + \brief Winkel II projection + \ingroup projections + \tparam Geographic latlong point type + \tparam Cartesian xy point type + \tparam Parameters parameter type + \par Projection characteristics + - Pseudocylindrical + - Spheroid + - no inverse + \par Projection parameters + - lat_1: Latitude of first standard parallel (degrees) + \par Example + \image html ex_wink2.gif + */ + template <typename CalculationType, typename Parameters> + struct wink2_spheroid : public detail::wink2::base_wink2_spheroid<CalculationType, Parameters> + { + inline wink2_spheroid(const Parameters& par) : detail::wink2::base_wink2_spheroid<CalculationType, Parameters>(par) + { + detail::wink2::setup_wink2(this->m_par, this->m_proj_parm); + } + }; + + #ifndef DOXYGEN_NO_DETAIL + namespace detail + { + + // Static projection + BOOST_GEOMETRY_PROJECTIONS_DETAIL_STATIC_PROJECTION(srs::par4::wink2, wink2_spheroid, wink2_spheroid) + + // Factory entry(s) + template <typename CalculationType, typename Parameters> + class wink2_entry : public detail::factory_entry<CalculationType, Parameters> + { + public : + virtual base_v<CalculationType, Parameters>* create_new(const Parameters& par) const + { + return new base_v_f<wink2_spheroid<CalculationType, Parameters>, CalculationType, Parameters>(par); + } + }; + + template <typename CalculationType, typename Parameters> + inline void wink2_init(detail::base_factory<CalculationType, Parameters>& factory) + { + factory.add_to_factory("wink2", new wink2_entry<CalculationType, Parameters>); + } + + } // namespace detail + #endif // doxygen + +} // namespace projections + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_PROJECTIONS_WINK2_HPP + diff --git a/boost/geometry/srs/projections/proj4.hpp b/boost/geometry/srs/projections/proj4.hpp new file mode 100644 index 0000000000..7b44679f31 --- /dev/null +++ b/boost/geometry/srs/projections/proj4.hpp @@ -0,0 +1,123 @@ +// Boost.Geometry + +// Copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_SRS_PROJECTIONS_PROJ4_HPP +#define BOOST_GEOMETRY_SRS_PROJECTIONS_PROJ4_HPP + + +#include <string> + +#include <boost/tuple/tuple.hpp> + + +namespace boost { namespace geometry { namespace srs +{ + + +struct dynamic {}; + + +struct proj4 +{ + explicit proj4(const char* s) + : str(s) + {} + + explicit proj4(std::string const& s) + : str(s) + {} + + std::string str; +}; + + +template +< + // null_type -> void? + typename P0 = boost::tuples::null_type, + typename P1 = boost::tuples::null_type, + typename P2 = boost::tuples::null_type, + typename P3 = boost::tuples::null_type, + typename P4 = boost::tuples::null_type, + typename P5 = boost::tuples::null_type, + typename P6 = boost::tuples::null_type, + typename P7 = boost::tuples::null_type, + typename P8 = boost::tuples::null_type, + typename P9 = boost::tuples::null_type +> +struct static_proj4 + : boost::tuple<P0, P1, P2, P3, P4, P5, P6, P7, P8, P9> +{ + typedef boost::tuple<P0, P1, P2, P3, P4, P5, P6, P7, P8, P9> base_type; + + static_proj4() + {} + + explicit static_proj4(P0 const& p0) + : base_type(p0) + {} + + static_proj4(P0 const& p0, P1 const& p1) + : base_type(p0, p1) + {} + + static_proj4(P0 const& p0, P1 const& p1, P2 const& p2) + : base_type(p0, p1, p2) + {} + + static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3) + : base_type(p0, p1, p2, p3) + {} + + static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4) + : base_type(p0, p1, p2, p3, p4) + {} + + static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5) + : base_type(p0, p1, p2, p3, p4, p5) + {} + + static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5, P6 const& p6) + : base_type(p0, p1, p2, p3, p4, p5, p6) + {} + + static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5, P6 const& p6, P7 const& p7) + : base_type(p0, p1, p2, p3, p4, p5, p6, p7) + {} + + static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5, P6 const& p6, P7 const& p7, P8 const& p8) + : base_type(p0, p1, p2, p3, p4, p5, p6, p7, p8) + {} + + static_proj4(P0 const& p0, P1 const& p1, P2 const& p2, P3 const& p3, P4 const& p4, P5 const& p5, P6 const& p6, P7 const& p7, P8 const& p8, P9 const& p9) + : base_type(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9) + {} +}; + +#define BOOST_GEOMETRY_PROJECTIONS_DETAIL_TYPENAME_PX \ +typename P0, typename P1, typename P2, typename P3, typename P4, \ +typename P5, typename P6, typename P7, typename P8, typename P9 + +#define BOOST_GEOMETRY_PROJECTIONS_DETAIL_PX \ +P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 + + +}}} // namespace boost::geometry::srs + +#ifndef DOXYGEN_NO_DETAIL +namespace boost { namespace geometry { namespace projections { namespace detail +{ + +template<typename R> struct function_argument_type; +template<typename R, typename A> struct function_argument_type<R(A)> { typedef A type; }; + +}}}} // namespace boost::geometry::projections::detail +#endif // DOXYGEN_NO_DETAIL + +#endif // BOOST_GEOMETRY_SRS_PROJECTIONS_PROJ4_HPP diff --git a/boost/geometry/srs/projections/srid_traits.hpp b/boost/geometry/srs/projections/srid_traits.hpp new file mode 100644 index 0000000000..c2270f2542 --- /dev/null +++ b/boost/geometry/srs/projections/srid_traits.hpp @@ -0,0 +1,101 @@ +// Boost.Geometry + +// Copyright (c) 2017, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_GEOMETRY_PROJECTIONS_SRID_TRAITS_HPP +#define BOOST_GEOMETRY_PROJECTIONS_SRID_TRAITS_HPP + + +#include <boost/geometry/srs/projections/par4.hpp> +#include <boost/geometry/srs/projections/proj4.hpp> +#include <boost/geometry/srs/sphere.hpp> +#include <boost/geometry/srs/spheroid.hpp> + + +#define BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_ED(AUTH, CODE, PROJ, ELLPS, DATUM, PROJ4_STR) \ +template<> \ +struct AUTH##_traits<CODE> \ +{ \ + typedef srs::static_proj4 \ + < \ + srs::par4::proj<srs::par4::PROJ>, \ + srs::par4::ellps<srs::par4::ELLPS>, \ + srs::par4::datum<srs::par4::DATUM> \ + > static_parameters_type; \ + static inline static_parameters_type s_par() \ + { \ + return static_parameters_type(); \ + } \ + static inline srs::proj4 par() \ + { \ + return srs::proj4(PROJ4_STR); \ + } \ +}; \ + +#define BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_E(AUTH, CODE, PROJ, ELLPS, PROJ4_STR) \ +template<> \ +struct AUTH##_traits<CODE> \ +{ \ + typedef srs::static_proj4 \ + < \ + srs::par4::proj<srs::par4::PROJ>, \ + srs::par4::ellps<srs::par4::ELLPS> \ + > static_parameters_type; \ + static inline static_parameters_type s_par() \ + { \ + return static_parameters_type(); \ + } \ + static inline srs::proj4 par() \ + { \ + return srs::proj4(PROJ4_STR); \ + } \ +}; \ + +#define BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_AB(AUTH, CODE, PROJ, A, B, PROJ4_STR) \ +template<> \ +struct AUTH##_traits<CODE> \ +{ \ + typedef srs::static_proj4 \ + < \ + srs::par4::proj<srs::par4::PROJ>, \ + srs::par4::ellps<srs::spheroid<double> > \ + > static_parameters_type; \ + static inline static_parameters_type s_par() \ + { \ + return static_parameters_type(srs::par4::proj<srs::par4::PROJ>(), \ + srs::par4::ellps<srs::spheroid<double> >(srs::spheroid<double>(A, B))); \ + } \ + static inline srs::proj4 par() \ + { \ + return srs::proj4(PROJ4_STR); \ + } \ +}; \ + +#define BOOST_GEOMETRY_PROJECTIONS_DETAIL_SRID_TRAITS_S(AUTH, CODE, PROJ, R, PROJ4_STR) \ +template<> \ +struct AUTH##_traits<CODE> \ +{ \ + typedef srs::static_proj4 \ + < \ + srs::par4::proj<srs::par4::PROJ>, \ + srs::par4::ellps<srs::sphere<double> > \ + > static_parameters_type; \ + static inline static_parameters_type s_par() \ + { \ + return static_parameters_type(srs::par4::proj<srs::par4::PROJ>(), \ + srs::par4::ellps<srs::sphere<double> >(srs::sphere<double>(R))); \ + } \ + static inline srs::proj4 par() \ + { \ + return srs::proj4(PROJ4_STR); \ + } \ +}; \ + + +#endif // BOOST_GEOMETRY_PROJECTIONS_SRID_TRAITS_HPP + |