Commit Graph

6487 Commits

Author SHA1 Message Date
Adam Wulkiewicz
abfaae26d3 [srs] Support all geometries (besides Box) in transformation. 2017-10-08 03:00:36 +02:00
Adam Wulkiewicz
b75c22b567 [test][srs] Add projection<> interface test including geometries other than point. 2017-05-19 15:15:56 +02:00
Adam Wulkiewicz
3c1fa1e316 [srs] Support all geometries in projection<>, add concepts and dimension check. 2017-05-19 15:14:50 +02:00
Adam Wulkiewicz
d755045f45 [test][srs] Catch projection_exception instead of proj_exception. 2017-05-17 21:44:18 +02:00
Adam Wulkiewicz
048d3fe53b [srs] Rename proj_exception to projection_exception and use BOOST_THROW_EXCEPTION.
- Rename exception
- Replace throw keyword with BOOST_THROW_EXCEPTION.
- Rethrow with BOOST_RETHROW
2017-05-17 21:39:33 +02:00
Adam Wulkiewicz
4b46351890 [srs] Add missing proj_exception codes in projections.
In some places reformat code around to match Proj4 code.
2017-05-17 20:35:23 +02:00
Adam Wulkiewicz
6002b55607 [srs] Add return statement in base_t_f::inverse to suppress warning. 2017-05-17 20:33:05 +02:00
Adam Wulkiewicz
5a7650b3b5 [test][srs] Add error handling cases to projection_interface test. 2017-05-17 17:43:46 +02:00
Adam Wulkiewicz
d9cd15e94f [srs] Improve compile- and run-time error handling.
- Show static mpl assert message if static projection is not invertible.
- Throw exception in dynamic not implemented inverse projection.
- Add 3 new exception types and throw them if:
  - projection id is not specified
  - unkown projection id is passed
  - projection is not invertable
2017-05-17 17:38:25 +02:00
Adam Wulkiewicz
7be1af9cbc [test][srs] Update expected coordinates in projections test wrt recent fixes. 2017-05-17 01:43:16 +02:00
Adam Wulkiewicz
51c1c5c4d4 [test][srs] Add cases for projections p* - w* (converted selftests from Proj4).
Add code checking difference between Boost.Geometry and Proj4, guarded by ifdef.
2017-05-17 01:21:24 +02:00
Adam Wulkiewicz
08500cfc18 [srs] Check validity of +n parameter in urm5 projection. 2017-05-17 01:20:10 +02:00
Adam Wulkiewicz
32a8a0a451 [srs] Fix bug with stereographic projection at equator that multiplied equatorial coordinates by 2 (after Proj4). 2017-05-17 01:18:44 +02:00
Adam Wulkiewicz
b4aab6bccd [srs] Add exceptions in robin projection and pass error code to existing ones. 2017-05-17 01:17:10 +02:00
Adam Wulkiewicz
52a6e508a8 [srs] In pj_inv() replace fabs() with bg::math::abs(). 2017-05-17 01:15:04 +02:00
Adam Wulkiewicz
02d57ff52c [srs] Differentiate between proj. not specified and unknown (different exception code/msg). 2017-05-17 01:14:04 +02:00
Adam Wulkiewicz
267da8d557 [test][srs] Add cases for projections m*, n*, o* (converted selftests from Proj4). 2017-05-16 15:13:40 +02:00
Adam Wulkiewicz
bbad83ea5d [srs] Fix scaling bug in ocea projection, as fixed in Proj4. 2017-05-16 15:12:41 +02:00
Adam Wulkiewicz
959d6e7a2e [test][srs] Add cases for projections i*, k*, l* (converted selftests from Proj4). 2017-05-16 02:29:15 +02:00
Adam Wulkiewicz
9e3c314aa7 [test][srs] Add cases for projections f*, g*, h* (converted selftests from Proj4). 2017-05-16 01:36:25 +02:00
Adam Wulkiewicz
59f4800d79 [srs] Add missing inverse to hammer projection. 2017-05-16 01:34:51 +02:00
Adam Wulkiewicz
2f25e5af13 [test][srs] Add projection selftest cases converted from original Proj4 (projections c*, d*, e*). 2017-05-16 00:36:27 +02:00
Adam Wulkiewicz
c2b45bd9ab [test][srs] Add projection selftest cases converted from original Proj4 (currently only for projections a*, b*). 2017-05-15 22:46:01 +02:00
Adam Wulkiewicz
70d3cf13ea [srs] Support various calc. types in projections p*, q*, r*, s*, u*, v*.
Add needed constants.
2017-05-15 01:02:31 +02:00
Adam Wulkiewicz
f20f3a4a51 [srs] Support arbitrary calc. type in projections n*, o*.
Add const keywords to arguments of pj_zpoly1*.
2017-05-14 21:40:31 +02:00
Adam Wulkiewicz
6e4f66e0f4 [srs] Support various calc. types in projections k*, l*.
Add needed constants.
2017-05-14 17:57:21 +02:00
Adam Wulkiewicz
c2141ad367 [srs] Support arbitrary calc. type in projections i*, m*, t*, w*.
Add proj_exception ctor taking message.
Add needed constants.
2017-05-14 17:15:00 +02:00
Adam Wulkiewicz
086f26650e [srs] Support arbitrary calc. type in projections starting at letters a-h.
Also add/remove common constants.
2017-05-13 04:22:54 +02:00
Adam Wulkiewicz
dcb3e6096f [srs] Add math constants (function templates) used in projections to common file projects.hpp 2017-05-12 18:26:13 +02:00
Adam Wulkiewicz
7ac3094416 [srs] Support arbitrary calc. type in all projections/impl functions. 2017-05-11 23:13:11 +02:00
Adam Wulkiewicz
10b3cf81ca [test][srs] Update static projections test WRT recent changes (templated parameters). 2017-05-11 18:15:13 +02:00
Adam Wulkiewicz
12e07074bd [srs] Support any calculation type in projection parameters and several other internals. 2017-05-11 18:14:38 +02:00
Adam Wulkiewicz
1dad53a4b6 [srs] Fix implicit int to bool warning in aeqd projection. 2017-05-10 21:03:20 +02:00
Adam Wulkiewicz
528270a68f [srs] Finish boostifying recently added code (add inline keywords, change macros to functions, etc.). 2017-05-10 21:02:50 +02:00
Adam Wulkiewicz
358e22d4f6 [srs] Add support for Proj4 vunits/vto_meter (vertical scaling) and lon_wrap. 2017-05-10 19:29:24 +02:00
Adam Wulkiewicz
f4e7f95ea7 [test][srs] Add transformation_interface test. 2017-05-10 04:24:43 +02:00
Adam Wulkiewicz
b73cff1a7c [srs] Implement transformation.
- Convert geocent.hpp and pj_transform.hpp from Proj4 to Boost.Geometry.
- Not all features are supported yet (Axes, NAD grids, Height/Z scaling
  missing).
- Add missing Proj4 error codes.
2017-05-10 04:21:12 +02:00
Adam Wulkiewicz
2a657f488a [srs] Divide projection<> into public and detail part allowing to use detail functionality in other parts of the library. 2017-05-10 04:20:38 +02:00
Adam Wulkiewicz
4be7b31d86 [srs] Store error message in proj_exception, convert pj_sterrno from Proj4 to Boost.Geometry. 2017-05-10 04:18:48 +02:00
Adam Wulkiewicz
d8bebf0a6a [test][srs] Move projections tests from extensions to main part of the library (srs). 2017-05-05 03:55:49 +02:00
Adam Wulkiewicz
d133efe071 [srs] Move projections from extensions to main part of the library.
Move files from geometry/extensions/gis/projections to geometry/srs and
geometry/srs/projections.
Move project_transformer to strategies/transform.

Change namespace of bg::projection<> to bg::srs::projection<>.

Move dms_parser from extensions/gis/geographic/strategies to
srs/projections/impl and from strategy::parse namespace to
projections::detail namespace.
2017-05-05 03:46:55 +02:00
Adam Wulkiewicz
577080d0c9 [test][projections] Add project_transformer test. 2017-04-23 03:53:38 +02:00
Adam Wulkiewicz
312476bfbc [projections][strategies] Update/improve project_transformer strategy.
- Implement 3 transformers:
  * project_transformer automatically choosing forward/inverse projection.
  * project_forward_transformer
  * project_inverse_transformer
- Use new projection<> interface and support the same parameters.
- Move all transform strategies into one file and put them in
  bg::strategy::transform namespace.
2017-04-23 03:48:05 +02:00
Adam Wulkiewicz
d9fe6d7cd3 [projections] Copy higher dimensions in projection<> forward/inverse. 2017-04-23 03:47:45 +02:00
Adam Wulkiewicz
fc88955d94 [projections] Revert comments to original format, broken by autoformatting. 2017-04-23 00:06:42 +02:00
Adam Wulkiewicz
e3922dd781 [test][projections] Update namespaces. 2017-04-22 23:38:34 +02:00
Adam Wulkiewicz
ddce41f2c5 [projections] Move back the internal projections representations into bg::projections namespace from bg::projections::detail namespace. 2017-04-22 23:37:47 +02:00
Adam Wulkiewicz
46b3b33618 [test][projections] Update tests WRT recent changes in the interface (namespaces). 2017-04-22 03:48:53 +02:00
Adam Wulkiewicz
29853b4b91 [projections] Change the interface (namespaces) and relocate parts of the code.
The interface:
- boost::geometry::projection<>
- boost::geometry::proj_exception
- boost::geometry::srs::dynamic
- boost::geometry::srs::proj4
- boost::geometry::srs::epsg
- boost::geometry::srs::static_proj4<>
- boost::geometry::srs::static_epsg<>
- boost::geoemtry::srs::proj::*
- boost::geometry::srs::ellps::*
2017-04-22 03:42:31 +02:00
Adam Wulkiewicz
207549e474 [test][strategies] Add test cases for distance::geographic and side::geographic strategies. 2017-04-22 02:21:42 +02:00