Commit Graph

5259 Commits

Author SHA1 Message Date
Barend Gehrels
c418492e4d [get_turn_info] remove pi,qj / qi,qj from end_points and other analyses
This also removes some debug code
2018-12-03 19:38:04 +01:00
Barend Gehrels
e7ff373b73 [get_turn_info] remove pi,pj / qi,qj from crosses 2018-12-03 19:35:39 +01:00
Barend Gehrels
812dc416ed [get_turn_info] incorporate pi/pj qi/qj into retriever
as suggested by Adam during review
2018-12-03 19:14:40 +01:00
Edward Diener
394f425746 Removed executable permission. 2018-12-03 07:59:11 -05:00
Barend Gehrels
f1b9c19402 [get_turn_info] bugfix, never return false for has_k for areal features 2018-12-01 13:23:14 +01:00
Barend Gehrels
5bf8066f36 [get_turn_info] process review remarks, rename policies, methods
Postpone getting pk/qk in collinear_opposite
2018-12-01 13:22:03 +01:00
Adam Wulkiewicz
eb419836f3 Merge branch 'develop' into bg-prepare 2018-11-29 19:23:53 +01:00
Adam Wulkiewicz
fc34634c08 Merge branch 'develop' into feature/undefined_cs 2018-11-29 17:38:13 +01:00
Adam Wulkiewicz
2e04d7d1a8
[algorithms][doc] Fix discrete_frechet_distance() description. 2018-11-29 14:11:25 +01:00
Adam Wulkiewicz
fbac327ca9
[algorithms][doc] Fix Hausdorff's name. 2018-11-29 13:57:54 +01:00
Adam Wulkiewicz
18ee92853e [io][doc] Add documentation for DSV stream output. 2018-11-29 02:20:01 +01:00
Adam Wulkiewicz
3554207182 [algorithms][doc] Fix description of distance(). 2018-11-29 02:17:19 +01:00
Adam Wulkiewicz
5a1cd9d3aa [algorithms][doc] Fix discrete_hausdorff_distance() arguments' names. 2018-11-29 02:13:37 +01:00
Barend Gehrels
5cb39aa5c6 [get_turn_info] changes in side calculator 2018-11-28 18:53:54 +01:00
Barend Gehrels
2a4777e017 [get_turn_info] undo making side strategy a const reference 2018-11-28 18:13:33 +01:00
Barend Gehrels
065489a1c5 [get_turn_info] don't precalculate pk/qk in robust points 2018-11-28 17:08:08 +01:00
Barend Gehrels
a9dc805c15 [get_turn_info] make methods const& (needed) and remove pk/pq
Therefore the robust_retriever should store its result
2018-11-28 16:38:34 +01:00
Barend Gehrels
ea7ab83bb2 [get_turn_info] retrieve pk/qk on demand 2018-11-28 15:56:55 +01:00
Barend Gehrels
02971ec301 [get_turn_info] remove redundant methods, use robust point methods
for spike calculation
2018-11-28 13:48:33 +01:00
Barend Gehrels
e198744825 [get_turn_info] pass retrieve policies i/o pk/qk 2018-11-28 13:35:36 +01:00
Adam Wulkiewicz
d19254842c Merge branch 'develop' into feature/undefined_cs 2018-11-28 02:35:38 +01:00
Barend Gehrels
e24041efbb [get_turn_info] pass retrieve policy template argument 2018-11-27 21:57:20 +01:00
Barend Gehrels
51c4e277e7 [get_turn_info] call get_swapped_sides for linear/linear 2018-11-27 21:51:48 +01:00
Barend Gehrels
a47fee925c [get_turn_info] Make specific side calculator for other calculations
done in non typical order
2018-11-27 21:50:58 +01:00
Barend Gehrels
dcc6550c1f [get_turn_info] replace real intersection (for the sake of counting)
by direction code (made for that purpose)
2018-11-27 20:23:56 +01:00
Barend Gehrels
c61c15e1db [relate] create specific strategy for relate l/a
Because it is not called from specific get_turn_info context
And uses all points in non typical order (e.g. qi, pj, pk i/o pi, pj, pk)
2018-11-27 20:02:38 +01:00
Barend Gehrels
4fd598395f [get_turn_info] let the base itself return the swapped side calculator
(preparation step for removal of *k methods)
2018-11-27 20:00:53 +01:00
Barend Gehrels
c1a035332a [get_turns] propagate retrieve polices to endpoint function 2018-11-26 23:08:01 +01:00
Adam Wulkiewicz
3ea4043fa0 Merge branch 'develop' into bg-prepare 2018-11-26 18:48:43 +01:00
Barend Gehrels
4484b0e141 [get_turn] remove pk/qk from turn handlers,
replacing it with retrieve policy (only where necessary)
2018-11-25 14:59:04 +01:00
Barend Gehrels
15b0c48eab [get_turns] make retrieve policy for view, replacing the null_policy
which is now redundant.
2018-11-25 13:27:56 +01:00
Barend Gehrels
a51713867b [get_turns] create specific policy for box and pass box as array.
Also pass retrieve policy for ring
2018-11-25 13:14:30 +01:00
Barend Gehrels
d5cc998339 [buffer] move functionality to retrieve next point into retrieve policy 2018-11-25 12:18:00 +01:00
Barend Gehrels
a556829348 [is_valid] revert part of commit 465e487b8c 2018-11-25 11:17:28 +01:00
Barend Gehrels
007414587b [get_turns] let retrieve_policy get point pk and qk 2018-11-24 21:51:00 +01:00
Adam Wulkiewicz
e23b72180b [srs] Fix 'enumeration value not handled in switch' warnings in isea proj. 2018-11-21 22:27:27 +01:00
Barend Gehrels
edac2ef665 [buffer] adapt call to get_turn_info 2018-11-21 19:35:28 +01:00
Barend Gehrels
4d00b88bd8 [overlay] split retrieve policy in two, because they are completely
independent w.r.t. p/q and, when retrieving the *k points, it is
way more convenient if splitted.
2018-11-21 18:24:47 +01:00
Barend Gehrels
8afd678439 [overlay] propagate retrieve_policy to end points 2018-11-21 17:41:47 +01:00
Barend Gehrels
83ccebdfaa [overlay] replace 4 booleans is_p/q_first/last by a RetrievePolicy,
which will later also retrieve pk/qk and next point
2018-11-21 17:03:29 +01:00
Adam Wulkiewicz
a99bcc6f25 [srs] Add workaround for msvc-15 erroreous compilation of member less-comparison. 2018-11-20 21:58:36 +01:00
Adam Wulkiewicz
3825650689 Merge branch 'develop' into bg-prepare 2018-11-07 13:26:01 +01:00
Vissarion Fysikopoulos
a7f5f7eece [algorithms] Add variant support for line_interpolate_point algorithm 2018-10-29 15:47:54 +02:00
Vissarion Fysikopoulos
87dfbe07a8 [doc] Line interpolate point algorithm and strategies 2018-10-26 17:03:24 +03:00
Vissarion Fysikopoulos
d8b95f0e94 Merge branch 'develop' into feature/line_interpolate_point_2 2018-10-24 16:50:53 +03:00
Vissarion Fysikopoulos
bad7897e4a [doc] Line interpolate points algorithm 2018-10-24 10:40:05 +03:00
Vissarion Fysikopoulos
c323850b1f [strategies] Spherical strategy optimization; remove distance strategy getters 2018-10-22 16:31:40 +03:00
Xavier Ventura Simon
3b67dea805 [append] avoid passing temporaries to functions expecting L-value references 2018-10-19 13:07:13 +02:00
Vissarion Fysikopoulos
69a9c9e758 [algorithms] [strategies] Optimize geo strategy for line interpolate points; do not compute distance twice 2018-10-18 17:00:01 +03:00
Vissarion Fysikopoulos
133177a620 [algorithms] Compute length using correct strategy in line interpolate points 2018-10-17 12:38:53 +03:00
Adam Wulkiewicz
4d2c60d23f [algorithms][strategies] Propagate disjoint(P,B) and expand(B,B) strategies into algorithms. 2018-10-15 01:26:17 +02:00
Adam Wulkiewicz
37569190db [formulas] Replace coordinate_system<>::type::units with cs_angular_units<>::type. 2018-10-15 01:24:46 +02:00
Adam Wulkiewicz
6c879b78ac [algorithms][strategies] Implement separate cart/sph P/B within strategies. Change P/B within strategy concept (no struct template parameters). 2018-10-15 01:22:28 +02:00
Adam Wulkiewicz
12ff7a6b8e [is_valid] Fix unused variable warning. 2018-10-14 00:50:04 +02:00
Adam Wulkiewicz
80ffb22901 [strategies][envelope] Simplify envelope::cartesian_point strategy. This also makes template keywords unnecessary. 2018-10-14 00:41:12 +02:00
Adam Wulkiewicz
99293c814f [is_valid] Fix unused variable warning. 2018-10-14 00:33:26 +02:00
Adam Wulkiewicz
fe63e8e27b [index] In intersection_content() explicitly use disjoint B/B strategy. 2018-10-14 00:10:21 +02:00
Adam Wulkiewicz
7dc81a98dd [algorithms] Add missing typename keywords. 2018-10-14 00:09:31 +02:00
Adam Wulkiewicz
7af8085f75 [algorithms][strategies] Move CS-specific code of envelope_segment from algorithms details to strategies.
This fixes circular dependencies.
2018-10-13 22:43:21 +02:00
Adam Wulkiewicz
7d45cae67b [algorithms][strategies] Fix several compilation errors.
Shadowing of template parameters, missing typename keywords, missing
includes.
2018-10-13 13:04:58 +02:00
Adam Wulkiewicz
4ac1f450ff [algorithms][strategies] Move disjoint Box/Box CS- specific code to strategies and use these strategies in algorithms. 2018-10-13 12:46:01 +02:00
Adam Wulkiewicz
d29acd1a2c Merge branch 'develop' into feature/undefined_cs 2018-10-12 22:12:13 +02:00
Adam Wulkiewicz
1564d12b99 [similarity] Fix unused variable warning, formatting and naming in discrete_hausdorff_distance. 2018-10-12 22:10:54 +02:00
Adam Wulkiewicz
ef432a7fd2 Merge branch 'develop' into feature/undefined_cs 2018-10-12 21:19:22 +02:00
Adam Wulkiewicz
fbe8f51cd1 [is_valid] Fix overlapping interiors condition (replace 2x point_on_border with relate). 2018-10-12 19:39:28 +02:00
Adam Wulkiewicz
5847581734 [algorithms] Fix copyright date. 2018-10-12 17:35:47 +02:00
Mateusz Łoskot
f2d5fae490
Replace boost::ignore_unused_variable_warning with boost::ignore_unused
The former is provided by Boost.ConceptCheck.
The latter is an improved equivalent provided by Boost.Core.

Related to #513
2018-10-12 15:16:46 +02:00
Adam Wulkiewicz
38cbc162a0 Merge branch 'develop' into feature/undefined_cs 2018-10-12 03:52:06 +02:00
Adam Wulkiewicz
c7e8540926 [io] In wkt read/write use default P/P equals strategy. 2018-10-12 03:32:58 +02:00
Adam Wulkiewicz
6c322e6625 [algorithms] Update various algorithms after recent changes:
- use equals P/P in equals_point_point extracted from strategy passed to
  algorithm
- remove Midpoint of point_on_border (this exposes an error in is_valid)
- use envelope and expand strategies extracted from strategy passed to
  algorithm
- change union's default strategy (relate v.s. intersection).
2018-10-12 03:26:10 +02:00
Adam Wulkiewicz
203618b404 [algorithms] Remove point_on_border Midpoint parameter as unneeded, cartesian-only hack.
If using this parameter changes the result it means that a different
method should be used. Using it does not solve the real problem, it only
hides it. Consider a polygon in another, touching at the first vertex.
Checking the midpoint of the first segment of contained polygon could
result in finding out that the polygon is inside. However if the segment
was collinear to the containing polygon's segment or this polygon had
vertex exactly at the checked midpoint the result would be the same as
using the first point of the contained polygon.
2018-10-12 03:19:21 +02:00
Adam Wulkiewicz
64863cceeb [strategies] Update WRT recent changes:
- use CS-specific normalization strategies instead of algorithm.
- add lower-level strategies getters (point in point, envelope, expand).
- pass strategy to equals_point_point()
2018-10-12 03:12:34 +02:00
Adam Wulkiewicz
2a93705271 [disjoint][equals][strategies] Move CS-specific code of P/P disjoint/equals to strategies. 2018-10-12 03:12:03 +02:00
Adam Wulkiewicz
17017e4328 [envelope][expand][strategies] Move CS-specific code of envelope and expand to strategies. 2018-10-12 03:05:59 +02:00
Adam Wulkiewicz
94c7c810aa [normalize][strategies] Move CS-specific part of normalization code to strategies. 2018-10-12 03:00:24 +02:00
Adam Wulkiewicz
5b6651d588 [formulas] Fix coordinates comparison warning. 2018-10-12 02:58:53 +02:00
Adam Wulkiewicz
96115158d3 [area][distance] Dispatch on struct level by strategy at resolve_strategy step. 2018-10-12 02:36:37 +02:00
Adam Wulkiewicz
0be273f605 [core][geometries][srs] Add cs::undefined and detail::cs_angular_units.
Remove is_radian and units typedef from non-cartesian cs structs.
2018-10-12 02:27:55 +02:00
Vissarion Fysikopoulos
020be50d58 [tests] Add tests for line interpolate points algorithm with multipoints 2018-10-10 17:08:36 +03:00
Vissarion Fysikopoulos
62ee805cec [algorithms] Use segment as range in line interpolate point 2018-10-05 16:08:25 +03:00
Vissarion Fysikopoulos
bcf2f97237 [algorithms] Add support for multipoint in line_interpolate_point 2018-10-05 14:28:15 +03:00
Vissarion Fysikopoulos
c1625e3134 [algorithms] Change the interface of line_interpolate_point 2018-09-28 10:34:45 +03:00
Vissarion Fysikopoulos
c36a4c29f1 [algorithms] [strategies] [tests] Rename strategy for interpolation of points. 2018-09-25 13:00:34 +03:00
Barend Gehrels
465e487b8c [spike] Fix order problem in is_valid by providing a new overload with
an intuitive order which should replace the original one
2018-09-21 15:05:28 +02:00
Barend Gehrels
50691def6b [sort_by_side] Undo commit 0d78de5 which caused several regressions
in all intersection code. Fix the underlying reason for it (potential
overflow) in another way, by changing rank type to signed_size_type
2018-09-20 15:48:57 +02:00
Vissarion Fysikopoulos
53c5dc1e27 [algorithms] [tests] Add special cases for line_interpolate_point algorithm and tests 2018-09-20 15:56:50 +03:00
Vissarion Fysikopoulos
7740f3282e [algorithms] Calculation types in line_interpolate_point algorithm 2018-09-19 16:53:32 +03:00
Vissarion Fysikopoulos
3fb91edbf8 [algorithms] Change loop in line_interpolate_point for linestrings 2018-09-19 16:46:42 +03:00
Vissarion Fysikopoulos
3de61f311c [algoritms] [tests] Add tests for cartesian line_interpolate_point and fix bug in algorithm. 2018-09-19 16:33:32 +03:00
Vissarion Fysikopoulos
6c68f427dd [algorithms] Add line_interpolate_point algorithm for linestrings 2018-09-19 15:49:11 +03:00
Vissarion Fysikopoulos
b2090ed448 [strategy] Add cartesian strategy for line interpolate point algorithm 2018-09-17 15:23:42 +03:00
Adam Wulkiewicz
651b3dba77 [similarity] Add missing #ifdefs for headers. 2018-09-15 14:01:30 +02:00
Adam Wulkiewicz
0ca58b8176 [similarity][doc] Uncomment examples in qbk sections. 2018-09-15 00:50:55 +02:00
Adam Wulkiewicz
6b7272495b [geometry] Add similarity algorithms includes to the main header geometry.hpp 2018-09-15 00:39:49 +02:00
Adam Wulkiewicz
bf62e05e23
Merge pull request #496 from awulkiew/feature/projections_interface
Add run-time and compile-time projections/transformations parameters.
2018-09-14 23:37:42 +02:00
Adam Wulkiewicz
37e6eeaceb
Merge pull request #490 from yaghya/feature/similarity
Adding Frechet distance And Hausdorff distance algorithms to calculate Simmilarity Between Geometries
2018-09-14 23:35:46 +02:00
Yaghyavardhan singh khangarot
5ee034702b [doc][similarity] updated 2018-08-31 02:57:17 +05:30
Yaghyavardhan singh khangarot
329652bdec [doc][similarity] Updated for geographic strategies 2018-08-30 23:21:33 +05:30
Barend Gehrels
f7c2da0a0f [DISSOLVE] Avoid compiler warning for area type / coordinate type 2018-08-30 13:53:51 +02:00
Barend Gehrels
faad8e3294 [DISSOLVE] Fix dereferencing elements from collection being modified 2018-08-30 13:52:55 +02:00
Adam Wulkiewicz
5eb599eae9 [strategies] Add commented code in geo inters. strategy (for future experiments). 2018-08-27 23:47:26 +02:00
Adam Wulkiewicz
ece82259a1 [formulas] Handle division by 0 in Sjoberg formula. 2018-08-27 23:45:09 +02:00
Yaghyavardhan singh khangarot
475e53b870 [doc][similarity] updated 2018-08-26 20:50:56 +05:30
Adam Wulkiewicz
8c4ba19f11 [srs] Make function input arguments const in healpix projection. 2018-08-16 15:55:27 +02:00
yaghyavardhan singh khangarot
f526bb8f54
Merge branch 'develop' into feature/similarity 2018-08-15 20:15:42 +05:30
Yaghyavardhan singh khangarot
54b71c1581 [doc][similarity] Added Strategies in the documentation 2018-08-14 16:31:43 +05:30
Yaghyavardhan singh khangarot
da3ecd4c6d [doc][similarity] Updated documentation for the similarity algorithms for different distance strategies 2018-08-13 17:07:52 +05:30
Yaghyavardhan singh khangarot
50ca27ebb9 [doc][similarity] Updated documentation for the similarity algorithms 2018-08-12 05:07:16 +05:30
Dane Springmeyer
0d78de5974
Fix potential unsigned integer overflow in find_polygons_for_source
An invalid polygon will trigger overflow when `previous_rank` is `0` as `previous_rank - 1` will overflow. This can be detected by passing an invalid polygon like `[[8128,3600],[8224,3664],[8128,3600]]` into `boost::geometry::intersection` and compiling with `-fsanitize=undefined`
2018-08-11 09:01:40 -07:00
Adam Wulkiewicz
5357c4f15c [srs] Disable str_cast specializations with C++11 features in MSVC<=12. 2018-08-01 15:15:02 +02:00
Adam Wulkiewicz
319ee31d6a [srs] Disable str_cast specializations with C++11 features in MSVC<=12. 2018-08-01 14:09:58 +02:00
Yaghyavardhan singh khangarot
a9ac6d87b9 [algorithms]Rename Hausdorff Distance and Frechet Distance algorithms 2018-07-31 22:03:21 +05:30
Adam Wulkiewicz
3c8714c600 [algorithms][formulas][strategies] Fix unused variable warnings. 2018-07-30 04:58:06 +02:00
Adam Wulkiewicz
e2ad044720 [algorithms][formulas][strategies] Fix unused variable warnings. 2018-07-29 22:17:40 +02:00
Adam Wulkiewicz
7f27a9f995 Merge branch 'develop' into feature/projections_interface 2018-07-25 17:07:38 +02:00
Adam Wulkiewicz
79ef70f37b
Merge pull request #486 from BoostGSoC18/feature/geodesic_direct
Introduce formula for Karney's direct geodesic method
2018-07-25 14:59:48 +02:00
Adam Wulkiewicz
d3fd9e6d61 Merge branch 'develop' into bg-prepare 2018-07-23 03:09:22 +02:00
Adeel Ahmad
1bfeba16aa
[strategies] Add distance strategy for Karney's inverse formula 2018-07-20 13:52:20 +05:00
Vissarion Fysikopoulos
142ea74cb7 [strategies] Line interpolate point spherical strategy 2018-07-19 14:36:46 +03:00
Adam Wulkiewicz
01c7c4b6e9 [srs] Fix gcc8 warnings (catching polymorphic type by value). 2018-07-19 02:01:00 +02:00
Adeel Ahmad
2ff1824683
[formulas][test] Update copyright information 2018-07-16 19:06:20 +05:00
Adam Wulkiewicz
1b3cab85bd [srs] Add workaround for msvc-12 faulty array initialization. 2018-07-16 05:21:06 +02:00
Adam Wulkiewicz
f3e12546a0 [srs] Attempt to fix invalid constant expression preventing compilation with some versions of GCC. 2018-07-15 19:14:34 +02:00
Adam Wulkiewicz
3f75284e24 Merge branch 'develop' into bg-prepare 2018-07-15 18:35:01 +02:00
Adeel Ahmad
b44e3aed59
[formulas] Remove unused variable a12 in karney_inverse 2018-07-13 12:15:35 +05:00
Adeel Ahmad
55c1691ddc
[formulas] Fix incorrect argument to meridian_length() function 2018-07-13 12:08:00 +05:00
Vissarion Fysikopoulos
b768e811c1 [algorithms] [strategies] Line interpolate point geographic strategy 2018-07-12 15:32:57 +03:00
Vissarion Fysikopoulos
bcfe022338 [Algorithms] Interface of line_interpolate_point algorithm 2018-07-11 16:21:56 +03:00
Yaghyavardhan singh khangarot
ff68b40cad [algorithms] Updated 2018-07-10 15:18:49 +05:30
Adeel Ahmad
daf03b4888
[formulas] Use namespace alias se for series_expansion in karney_inverse 2018-07-10 11:52:20 +05:00
Adeel Ahmad
6432dfe96c
[formulas][util] Reformat code in karney_inverse to use coefficient containers 2018-07-10 11:36:33 +05:00
Adam Wulkiewicz
50dcb6d4ae
Merge pull request #488 from jonasdmentia/fix/closing_iterator_returns_reference_to_temp
Fix/closing iterator returns reference to temp
2018-07-09 13:43:46 +02:00
Adam Wulkiewicz
9d763b9e52
Merge pull request #499 from vissarion/fix/expand_make_inverse
Fix make_inverse and expand issue
2018-07-09 13:39:36 +02:00
Adeel Ahmad
73a2e2b8a4 Merge branch 'feature/geodesic_direct' into feature/karney_inverse 2018-07-09 16:15:41 +05:00
Vissarion Fysikopoulos
f04c25f43d [algorithms] [util] Rename is_inverse utility and update copyright notes 2018-07-09 12:58:34 +03:00
Yaghyavardhan singh khangarot
dcae80d481 [algorithms] Updated hausdorff_distance.hpp 2018-07-09 10:14:22 +05:30
Yaghyavardhan singh khangarot
3e9f52773d [algorithms] Updated hausdorff distance algorithm using R-tree 2018-07-08 18:41:21 +05:30
Vissarion Fysikopoulos
65084bb854 [util] Use exact coordinate check for inverse box 2018-07-06 16:43:43 +03:00
Adeel Ahmad
1a52eaca9c
[formulas] Resolve inaccuracy in starting point for Newton's method 2018-07-06 18:27:49 +05:00
Vissarion Fysikopoulos
9efcb83bb3 [algorithms] [tests] Move include for make.hpp to correct place 2018-07-06 16:08:01 +03:00
Vissarion Fysikopoulos
7072ef0212 [util] Use is_inverse utility to detect inverse boxes 2018-07-06 16:03:56 +03:00
Yaghyavardhan singh khangarot
dde8666d16 [algorithms] Updated frechet and hausdorff distance algorithm 2018-07-06 03:51:02 +05:30
Phillip Palk
5a0964886a [iterators] fix calculation of range's const reference type inside closing_iterator and ever_circling_iterator. 2018-07-05 23:07:36 +10:00
Yaghyavardhan singh khangarot
a34d4a0eb7 [algorithms] Updated hausdorff distance algorithm 2018-07-04 20:28:20 +05:30
Adam Wulkiewicz
7a5e208b37 Merge branch 'develop' into bg-prepare 2018-07-04 16:54:48 +02:00
Adam Wulkiewicz
81ab3a1e7c [distance] Fix std::min() call with msvc. 2018-07-04 16:54:02 +02:00
Vissarion Fysikopoulos
fbc79c807b Merge remote-tracking branch 'origin/develop' into feature_test_distance_any_geo 2018-07-04 16:16:51 +03:00
Vissarion Fysikopoulos
c1dd9278b9 Fix conflicts by merging to develop 2018-07-04 15:55:09 +03:00
Vissarion Fysikopoulos
38c77cf435 [algorithms] Avoid normalization for boxes created by make_inverse 2018-07-04 14:52:41 +03:00
Adeel Ahmad
4f04310859
[formulas][test] Add Karney's inverse method in inverse test cases
The compilation is successful with gcc version (7.2.0),
but not with version (5.4.1). The accepted tolerance
is set to (0.0000001). Currently, all tests are not
passing, which indicates an error in the calculation.

Additionally, some changes have been made in
karney_inverse.hpp
2018-07-03 11:02:48 +05:00
Adeel Ahmad
12bd41fd5d
[formulas] Store values from Karney's inverse method in result_inverse structure
The computed values from inverse method include distance, azimuth,
reverse_azimuth, reduced_length, and geodesic_scale.
2018-07-02 13:47:58 +05:00
Adam Wulkiewicz
be7ae5b27a Merge branch 'develop' into bg-prepare 2018-07-02 04:55:26 +02:00
Adeel Ahmad
687df8e18a
Merge branch 'develop' into feature/geodesic_direct
Conflicts:
	include/boost/geometry/util/math.hpp
	test/formulas/direct.cpp

The conflicting files have been updated.
2018-06-29 14:31:15 +05:00
Adam Wulkiewicz
5729e6f410 Merge branch 'develop' into feature/projections_interface 2018-06-28 23:40:13 +02:00
Adeel Ahmad
621950329a
[util] Pass range into math::polyval() instead of std::vector
This is done to avoid creating a separate container in each
iteration.
2018-06-28 10:57:21 +05:00
Adeel Ahmad
1fe3b3bd75
[util] Pass SeriesOrder as template parameter in evaluate_coeffs_C3x() function
The coefficient container structs are moved to the
bottom of the file.
2018-06-28 10:56:11 +05:00
Adeel Ahmad
b86a93bc5a
[util] Rename math::normalize_values to math::normalize_unit_vector 2018-06-28 09:51:25 +05:00
Adam Wulkiewicz
7a832916ba [srs] Fix compilation errors in projections/grids.hpp
Wrong ifstream.open() argument and shadowing of template argument.
2018-06-28 04:06:37 +02:00
Adam Wulkiewicz
1f0d25300f [srs] Add default ctor to projection_unknown_id_exception. 2018-06-28 04:01:14 +02:00
Adam Wulkiewicz
d3cc2e6201 [srs] Use newly implemented parameters to define predefined SRID parameters.
Run-time and compile-time EPSG, ESRI and IAU2000 codes.
2018-06-28 03:58:12 +02:00
Adam Wulkiewicz
6f963b2117 [srs] Support new parameters in srs::projection and srs::transformation classes. 2018-06-28 03:55:13 +02:00
Adam Wulkiewicz
d6700a8865 [srs] Support new parameters in projections. 2018-06-28 03:52:56 +02:00
Adam Wulkiewicz
a5ad85cfae [srs] Support new interfaces in run-time factory and projection base classes. 2018-06-28 03:51:32 +02:00
Adam Wulkiewicz
345ad92e5b [srs] Implement new static and dynamic transformation parameters.
There are 3 ways of defining parameters:

// run-time Proj4 string
srs::proj4("+proj=tmerc +ellps=WGS84 +units=m")

// run-time
using namespace srs::dpar;
parameters<>(proj_tmerc)(ellps_wgs84)(units_m)

// compile-time
using namespace srs::spar;
parameters<proj_tmerc, ellps_wgs84, units_m>
2018-06-28 03:44:15 +02:00
Adeel Ahmad
9ff4fbe94a
[util] Use functions from math namespace instead of std 2018-06-27 10:46:27 +05:00
Adeel Ahmad
9699b49098
[util][formulas] Rename normalize_angle function to normalize_azimuth
For normalizing longitudes, the normalize_longitude function is
used instead.
2018-06-27 10:34:18 +05:00
Adeel Ahmad
c26483b9fc
[util] Change static inline to inline in series_expansion.hpp file 2018-06-26 17:11:35 +05:00
Adeel Ahmad
4d39eae2b6
[util] Add BOOST_GEOMETRY_ASSERT in series expansion and normalization function
Modified functions are:
- evaluate_coeffs_C3x
- normalize_values
2018-06-26 17:07:59 +05:00
Adeel Ahmad
9c96bec2bf
[util] Avoid passing array size using std::vector
Previously, the array size was passed in as a
separate parameter.
2018-06-26 13:20:12 +05:00
Yaghyavardhan singh khangarot
3019282634 [algorihtms] Updated frechet_distance.hpp 2018-06-26 00:47:57 +05:30
Adeel Ahmad
06eb057fa9
[formulas] Use assignment operator on the same line for consistency
Other changes include the update of series expansion function
calls, as the template arguments are reversed.
2018-06-25 18:44:37 +05:00
Adeel Ahmad
19f06fa04e
[util] Reverse template argument order for series expansion functions
In some cases, this allows the caller to ignore the CT template
argument, as it is deduced from the argument list.
2018-06-25 18:39:43 +05:00
Adeel Ahmad
cc7e9e05c1
[formulas] Use namespace alias se for series_expansion 2018-06-25 17:59:32 +05:00
Adeel Ahmad
dedccdbdae
[formaulas][util] Define coefficient containers for computing series expansions
The coefficient containers are defined as structs in
series_expansion.hpp file. They allow the caller to
compute expansions without specifying the size
for the output array.
2018-06-25 17:19:44 +05:00
Yaghyavardhan singh khangarot
95218f3a17 [algorihtms] Extended algorihtm for point-MultiPoint and Multi-Point 2018-06-24 05:02:28 +05:30
Yaghyavardhan singh khangarot
495f82d9c8 Extended Hausdorff Distance for MultiLinestring_MultiLinestring 2018-06-23 23:40:08 +05:30
Yaghyavardhan singh khangarot
9dae6ec79b [algorithms] Using Linestrin_Linestring() for Linestrin_MultiLinestring 2018-06-23 04:28:04 +05:30
Adeel Ahmad
1972bcda3e
[formula][util] Pass boost::array to series expansion functions
Using boost::array we don't have to explicitly provide
the template parameters.
2018-06-22 19:26:27 +05:00
Yaghyavardhan singh khangarot
b78200f78e [algorithms] Updated Copyright 2018-06-21 22:48:00 +05:30
Yaghyavardhan singh khangarot
1e16e2937e [algorithms] Extending Hausdorff Distance for Linestring and MultiLinestring 2018-06-21 22:35:10 +05:30
Adam Wulkiewicz
f824763cb4 [formulas][srs][util] Add math::pow(), use it in geo area formula and projections. 2018-06-20 22:56:52 +02:00
Adeel Ahmad
6d0720b5ae
[formulas] Ensure reduced length and geodesic scale are computed in canonical form 2018-06-20 21:32:41 +05:00
Adeel Ahmad
02577bda55
[formulas] Use midpoint of bracket when value lies outside of range 2018-06-20 21:31:18 +05:00
Yaghyavardhan singh khangarot
2d9e66cbac Updating Frechet Distance and Hausdorff Distance 2018-06-20 15:25:11 +05:30
Adeel Ahmad
ead0b188f9
[formulas] Update bracketing values in Newton's method 2018-06-19 20:26:49 +05:00
Adeel Ahmad
2ddad45616
[util] Move difference_angle function to normalize_spheroidal_coordinates.hpp 2018-06-19 18:11:17 +05:00
Vissarion Fysikopoulos
25ce113de1 [formulas] Use std pow in are formulas 2018-06-19 13:07:53 +03:00
Vissarion Fysikopoulos
4dacbfa2d2 [formulas] Use pass by reference in area formula functions 2018-06-19 12:06:03 +03:00
Adeel Ahmad
490b4df943
Merge branch 'feature/geodesic_direct' into feature/karney_inverse
Conflicts (resolved):
	include/boost/geometry/util/math.hpp
2018-06-19 10:05:16 +05:00
Yaghyavardhan singh khangarot
2bf85f4c23 Adding Frechet Distance And Haudorff Distance algorithms 2018-06-18 20:18:54 +05:30
Vissarion Fysikopoulos
10b340e89e [formulas] Call to pow function with both arguments having the same type 2018-06-18 16:33:31 +03:00
Adeel Ahmad
78411f63c8
[doc][util][formulas][test] Add copyright information in updated files 2018-06-18 18:05:11 +05:00
Vissarion Fysikopoulos
12f7a2239b [formulas] Add coordinates and reverse azimuth flags to spherical direct formula 2018-06-18 14:31:45 +03:00
Vissarion Fysikopoulos
738c0da0e2 [formulas] Add missing include file needed by spherical formulas 2018-06-18 14:13:36 +03:00
Vissarion Fysikopoulos
cc2ded01ee [formulas] [tests] Change thomas direct interface 2018-06-18 14:08:58 +03:00
Vissarion Fysikopoulos
88469892dd [formulas] Rename elliptic_meridian_arc formula to meridian 2018-06-18 12:52:05 +03:00
Vissarion Fysikopoulos
c1299d7a32 [formulas] [tests] Add revarse_azimuth and quantities computation to direct meridian formula plus tests 2018-06-18 12:03:13 +03:00
Adeel Ahmad
2c7a29e7dc
[formulas][util] Improve code formatting to conform with guidelines 2018-06-15 18:52:30 +05:00
Adeel Ahmad
318a61dce0
[formulas] Use updated functions for normalization 2018-06-15 18:20:01 +05:00
Adeel Ahmad
d591d7a7bb
[util] Use existing normalize_spheroidal_coordinates class for normalizing an angle
- This should normalize the given angle in range (-180, 180].
- The function normalize is also moved from math.hpp to
normalize_spheroidal_coordinates.hpp where it is renamed
to normalize_values
2018-06-15 18:14:17 +05:00
Vissarion Fysikopoulos
bc3189f9fd [formulas] [tests] Interface for direct meridian formula and tests 2018-06-15 10:25:05 +03:00
Adeel Ahmad
06fc06dc7f
[formulas] Add function lambda12 to regulate bracketing range in Karney inverse 2018-06-14 13:42:44 +05:00
Adeel Ahmad
642a84c551 Merge branch 'feature/geodesic_direct' into feature/karney_inverse 2018-06-14 13:34:29 +05:00
Adeel Ahmad
943672bd3a
[formulas] Use template argument CT instead of double
This change is made in Karney's direct method.
2018-06-14 13:27:33 +05:00
Vissarion Fysikopoulos
d04c621150 [formulas] Return 0 in horner's rule special case of empty input 2018-06-14 10:30:10 +03:00
Adeel Ahmad
2aac4027aa Merge branch 'feature/geodesic_direct' into feature/karney_inverse 2018-06-14 11:54:09 +05:00
Vissarion Fysikopoulos
4c4a91f3b4 [formulas] Add quarter meridian formula for spheroids 2018-06-13 13:58:52 +03:00
Adeel Ahmad
d11b7160b2
[formulas] Fix calculation of t for finding the geodesic scale (M12) 2018-06-13 12:26:56 +05:00
Adeel Ahmad
15d5cd6281
[formulas] Perform normalization on starting guess if it passes the sanity check 2018-06-12 18:32:26 +05:00
Adeel Ahmad
2bde1c119a
[formulas] Solve the astroid equation for inverse problem
For details, please refer to Eq. (65) in,
Geodesics on an ellipsoid of revolution, Charles F.F Karney,
https://arxiv.org/abs/1102.1215
2018-06-12 18:27:29 +05:00
Vissarion Fysikopoulos
afb575fbf5 [tests] Add tests for meridian direct formula 2018-06-12 15:52:58 +03:00
Vissarion Fysikopoulos
ccd9edff63 [formulas] [strategies] Thomas first order direct formula 2018-06-12 15:42:34 +03:00
Vissarion Fysikopoulos
b7406fd19c [formulas] Spherical direct formula 2018-06-12 15:29:56 +03:00
Vissarion Fysikopoulos
c572601efa [formulas] [strategies] Rename elliptic_arc_length formula to elliptic_meridian_arc_inverse for consistency 2018-06-12 14:48:06 +03:00
Vissarion Fysikopoulos
d22c39b52c [formulas] Elliptic meridian arc direct formula 2018-06-12 14:36:12 +03:00
Adeel Ahmad
5bb581c932
[formulas] Flip sign of cos_lam12
This fixes the inaccuracy caused during the
calculation of Newton's starting point.
2018-06-12 15:51:55 +05:00
Adeel Ahmad
71fbc86f44 Merge branch 'feature/geodesic_direct' into feature/karney_inverse 2018-06-12 15:42:41 +05:00
Adeel Ahmad
485a2f9a0f
[formulas] Find starting point for inverse problem (short lines) 2018-06-11 18:44:27 +05:00
Adeel Ahmad
0344ba5c1a
[formulas] Handle case for equatorial points in inverse problem 2018-06-11 11:06:18 +05:00
Adeel Ahmad
043f401fbe
[util] Use Maxima generated function for computing C3x coefficients
The script used is geod.mac:
https://sourceforge.net/p/geographiclib/code/ci/release/tree/maxima/geod.mac
2018-06-09 16:11:46 +05:00
Phillip Palk
61679f4adc [iterators] use the base type (iterator_facade) for the reference and difference_type typedefs inside closing_iterator and ever_circling_iterator. Also, fixed reference_type type name to be reference. 2018-06-08 08:18:01 +10:00
Adeel Ahmad
276e8e6d7a
[formulas] Add function for computing the length at the meridians
This method is an integral part of Karney's solution to inverse
geodesic problem. It is only invoked for points that lie on
the meridian, or are close to it.
2018-06-07 18:28:22 +05:00
Adeel Ahmad
efd30c8ccc Merge branch 'feature/geodesic_direct' into feature/karney_inverse 2018-06-07 11:00:37 +05:00
Adeel Ahmad
8a2dd63ccf
[util] Move sin_cos_series function to series_expansion.hpp
This function is extensively used for the direct and
inverse geodesic problem, therefore, it is moved
to a more accessible location.
2018-06-07 10:58:13 +05:00
Phillip Palk
1d7a38fbee [iterators] fix return of a reference to a temporary object when using closing_iterator and ever_circling_iterator with transformed ranges. 2018-06-07 10:07:48 +10:00
Adeel Ahmad
2e064c0f0d
[formulas] Arrange points in canonical form for inverse geodesic problem 2018-06-06 09:42:09 +05:00
Adeel Ahmad
7561d68c08
[util] Add function for returning NaN (not a number) 2018-06-06 09:39:31 +05:00
Adeel Ahmad
49e0a4fdae Merge branch 'feature/geodesic_direct' into feature/karney_inverse 2018-06-06 08:24:27 +05:00
Adeel Ahmad
df0cafdd19
[doc] Move Maxima scripts for geodesics to doc/other/maxima/geod.mac 2018-06-05 17:26:30 +05:00
Adeel Ahmad
b9b0f85560
[util] Add functions to normalize / sum two given values (angles) 2018-06-05 12:44:36 +05:00
Adeel Ahmad
cc19342b4e
[util] Remove duplicated Maxima code from series_expansion.hpp 2018-06-05 09:28:37 +05:00
Adeel Ahmad
831873752d
[formulas] Use constant type variables for comparison 2018-06-04 19:12:50 +05:00
Adeel Ahmad
1ed5f103f4
[formulas] Move SeriesOrder to the end of template parameter list 2018-06-04 19:09:07 +05:00
Adam Wulkiewicz
097f6fdbe9
Merge pull request #482 from e-kwsm/include-cstring
[srs] Add missing cstring include.
2018-06-04 14:09:03 +02:00
Adeel Ahmad
4fa4a8206a
[util] Update series expansion for C3x 2018-05-31 17:40:53 +05:00
Adeel Ahmad
b8a225e1cf
[formulas] Fix direct geodesic method by performing normalization
- Add minus sign for B12 evaluation
2018-05-29 21:11:53 +05:00
Adeel Ahmad
3dd6bce720
[util] Add functions for normalizing and evaluating polynomial 2018-05-29 21:08:06 +05:00
Adeel Ahmad
1e31876e94
[util] Modify function for evaluting C3x coefficient
- Add separate function for evaluating C3 from C3x coefficient
2018-05-29 21:06:19 +05:00
Adeel Ahmad
6a2897db25
[formulas][util] Add missing import and function return type 2018-05-28 12:28:14 +05:00
Adeel Ahmad
0c2b8cdbab
[formulas] Make variable declarations constant 2018-05-24 22:09:47 +05:00
Adeel Ahmad
ac4e483c92
[formulas] Compute the reduced length and geodesic scale using Karney's direct method 2018-05-24 11:26:56 +05:00
Adeel Ahmad
a0a55f361f
[util] Evaluate series and coefficients for A2 and C2 using series expansion 2018-05-24 11:18:26 +05:00
Adeel Ahmad
9e2c74afc8
[formulas] Compute the longitude for second point using the longitudinal difference 2018-05-23 14:22:40 +05:00
Adeel Ahmad
9152191986
[util] Add functions to evaluate coefficients for A3 and C3 using series expansion 2018-05-23 12:32:21 +05:00
Adeel Ahmad
881c73c90b
[formulas] Compute the latitude for second point following Karney's method
- Link to paper: https://arxiv.org/pdf/1109.4448.pdf
2018-05-22 17:18:37 +05:00
Vissarion Fysikopoulos
1646a67df6 [tests] Tests for areal-box geo distance 2018-05-21 17:06:23 +03:00
Vissarion Fysikopoulos
d91259b4e1 [algorithms] [test] Use s/b distance strategy in linear-box cases 2018-05-21 15:39:12 +03:00
Adeel Ahmad
6ce1b099cb
[util] Evaluate coefficients for C1p using series expansion
- Fix conversion from degree to radian in sin_cos_degrees function
2018-05-21 16:32:28 +05:00
Adeel Ahmad
3700b4fafa
[util] Move series expansion functions to util/series_expansion.hpp 2018-05-19 21:49:24 +05:00
Adeel Ahmad
b6fcee8f30
[formulas] Compute sin cos series using Clenshaw summation
- Update function headers
2018-05-19 21:33:01 +05:00
Adeel Ahmad
320891caef
[utils] Add function for normalizing and rounding off an angle 2018-05-19 21:32:09 +05:00
Vissarion Fysikopoulos
4a237e6878 [strategies] [distance] Remove pt-pt distance strategy getters from pt-seg strategy 2018-05-16 17:08:08 +03:00
Adam Wulkiewicz
e302cab9d9 [srs] Fix compilation errors in grids (c++98 requirement and shadowing of tparam). 2018-05-16 14:15:50 +02:00
Adam Wulkiewicz
450281a008 [srs] Fix shadowing of template parameters and wrong variable names. 2018-05-16 14:00:40 +02:00
Vissarion Fysikopoulos
a54ac78dde [strategies] [distance] Move vertical_or_meridian method from pt-pt to pt-seg strategy and remove unused methods 2018-05-16 13:29:57 +03:00
Adeel Ahmad
c73ea927c4
[formulas] Add function for evaluating coefficients for C1
- Add SED script for converting x to CT(x)
- Improve code documentation
2018-05-15 23:43:52 +05:00
Vissarion Fysikopoulos
4f755af72b [algorithms] [strategies] [tests] Create unique segment-box distance strategy 2018-05-15 17:11:50 +03:00
E Kawashima
56f1cf8ede
[srs] Add missing cstring include. 2018-05-14 15:32:19 +09:00
Adeel Ahmad
8d5d3bc8a9
[formulas] Add draft of direct geodesic problem from Karney (2011)
The paper can be found at: https://arxiv.org/pdf/1109.4448.pdf
This commit also introduces the evaluate_series_A1 function
for evaluating the series expantion, which was generated
using Maxima: http://maxima.sourceforge.net
2018-05-12 22:09:26 +05:00
Adeel Ahmad
302e240667
[utils] Add function sin_cos_degrees for evaluating sine and cosine function 2018-05-12 22:08:25 +05:00
Vissarion Fysikopoulos
fb7da1041a [algorithms] [strategies] Change azimuth strategy interface 2018-05-11 12:27:34 +03:00
Vissarion Fysikopoulos
2c72e1d636 [algorithms] [strategies] Change int return values with enums in disjoint segment_box 2018-05-11 11:37:35 +03:00
Adam Wulkiewicz
d5fe19ce06 Merge branch 'feature/projections_optimization' into develop 2018-05-10 18:08:31 +02:00
Adam Wulkiewicz
7622c517d6 Merge branch 'fix/projections_names' into develop 2018-05-10 18:05:55 +02:00
Adam Wulkiewicz
ca62c0e4e0
Merge pull request #469 from awulkiew/feature/projections_grids
Add support for horizontal grid shift (nadgrids) in transformation.
2018-05-10 18:02:40 +02:00
Adam Wulkiewicz
002f1e06d9
Merge pull request #468 from awulkiew/feature/projections_params
Improve projections' parameters handling.
2018-05-10 18:01:50 +02:00
Adam Wulkiewicz
fdad082c7e [policies] Fix segment ratios comparison for short segments and non-integral types (no robustness, non-cartesian CS, etc.). 2018-05-07 18:35:58 +02:00
Adam Wulkiewicz
4223683fe8 [strategies] Improve consistency of spherical intersection strategy.
Improve segment ratios generated for collinear segments.
2018-05-06 01:04:16 +02:00
Adam Wulkiewicz
c498dc4086 [strategies] Improve consistency of segment ratios generated by sph and geo intersection strategies. 2018-05-04 01:35:45 +02:00
Adam Wulkiewicz
7e7a637c92 [policies] Improve consistency of segment_ratio comparison operators. 2018-05-04 01:34:53 +02:00
Vissarion Fysikopoulos
990c274705 [test] Tests multilinestrings-box distance 2018-05-03 12:35:16 +03:00
Vissarion Fysikopoulos
4c63f4030f [strategies] Remove default values from functional templates 2018-05-02 14:49:36 +03:00
Vissarion Fysikopoulos
2583decd76 [algorithms] [tests] Use azimuth side formula in disjoint 2018-04-26 16:50:36 +03:00
Vissarion Fysikopoulos
2a0b4e6b16 Merge branch 'feature_box_seg' into feature_test_distance_any_geo 2018-04-25 12:13:38 +03:00
Vissarion Fysikopoulos
72019d52d1 [algorithms] [strategies] Rename meridian method to vertical_or_meridian 2018-04-24 15:30:48 +03:00
Vissarion Fysikopoulos
e4f55eafdd [algorithms] [distance] Clean and optimize seg on the right of box distance case 2018-04-23 16:07:09 +03:00
Vissarion Fysikopoulos
077653f2ca [algorithms] [strategies] Move mirror box functionality to strategies 2018-04-20 11:54:16 +03:00
Vissarion Fysikopoulos
e4dcc5bc7e [strategies] Use general units for box in segment_below_of_box strategy 2018-04-20 10:57:15 +03:00
Adam Wulkiewicz
9b8d0a3b4c [sectionalize] Avoid integer underflow/underflow in segment's direction calculation. 2018-04-19 23:34:24 +02:00
Vissarion Fysikopoulos
8c0976902d [algorithms] [strategies] In check segment below box function move CS spesific computation to strategies 2018-04-19 16:29:38 +03:00
Adam Wulkiewicz
118b82937d [srs] Separate param names and values in datums definitions to avoid parsing of string while adding parameter. 2018-04-18 01:37:44 +02:00
Adam Wulkiewicz
548d64d97a [srs] In pj_ellps table hold elliptical parameter name and value separately to avoid parsing of string when adding a and b/rf parameters to parameters list. 2018-04-18 00:50:44 +02:00
Adam Wulkiewicz
ae75d05c2c [srs] Implement str_cast and use it instead of lexical_cast. 2018-04-18 00:33:47 +02:00
Vissarion Fysikopoulos
18f1394e30 [alsorithms] [distance] Optimization: avoid to compute vertex twice in some cases 2018-04-17 12:59:52 +03:00
Vissarion Fysikopoulos
7f5236b8fd [algorithms] [distance] Use the whole segment instead of starting point to vertex sub-segment for distance pt-seg computation 2018-04-17 11:55:02 +03:00
Adam Wulkiewicz
8feb7ca7ba [srs] Rename types, variables, enums to lowercase. 2018-04-13 22:30:51 +02:00
Adam Wulkiewicz
885319f2da [srs] Rename CalculationType to T to increase readability.
Furthermore:
- rename geographic_type and cartesian_type to T
- reformat base classes and ctor init lists
- rename variable named T
2018-04-13 22:01:45 +02:00
Adam Wulkiewicz
de14869fbc [srs] Rename upper-case global types and move them if possible.
- Types defined in projects.h: COMPLEX, PJ_ELLPS, PJ_DATUM, PJ_UNITS,
  PJ_PRIME_MERIDIANS.
- Move types used for global data, tables defining ellipsoids, datums,
  units and meridians to files defining the tables.
- Remove types that are not used in Boost.Geometry: DERIVS and FACTORS.
2018-04-13 19:15:34 +02:00
Adam Wulkiewicz
9f28e8d8aa [srs] Rename upper-case variable and type names. 2018-04-13 18:48:50 +02:00
Vissarion Fysikopoulos
26fb76c622 [algorithms] [distance] Optimize segment check below of box 2018-04-13 16:24:31 +03:00
Adam Wulkiewicz
4f86b6fb7e [srs] Rename macro-like variables datum type and error code.
- Names were herited from proj4.
- Replace static variables with enums.
- Add more error codes and use them with projection_exception()
  instead of magic numbers.
2018-04-12 23:46:46 +02:00
Adam Wulkiewicz
9b2bb48fae Merge branch 'develop' into fix/projections_names 2018-04-12 22:53:19 +02:00
Adam Wulkiewicz
06e53eb573 Merge branch 'develop' into fix/intersection_strategies 2018-04-12 16:20:16 +02:00
Adam Wulkiewicz
756f3951c7 [strategies] Fix zero ratio denominator calculated by sph and geo strategies. 2018-04-11 22:39:36 +02:00
Vissarion Fysikopoulos
cc381b3c7f [algorithms] [tests] Fix envelope algorithm for spherical and geographic polygons and rings 2018-04-11 17:12:27 +03:00
Adam Wulkiewicz
0a1ba2763a [srs] Rename projections' global constants.
Use lower-case names to avoid clashes with macros.
Move constants to separate file.
2018-04-09 04:03:29 +02:00
Adam Wulkiewicz
1aeef5d396 [srs] Support horizontal shift grids (nadgrids) in transformation.
Relevant proj4 code was converted to C++ and Boostified. So all grids formats
are supported (ctable, ctable2, ntv1, ntv2), also vertical geoid grid GTX
format but it is not used right now. There are some differences though:
- proj4 stores loaded grids in global storage and pointers to a relevant subset
  of grids in projection parameters structure. In Boost.Geometry this is moved
  outside transformation structure to allow users to place global storage(s)
  wherever they like.
- in proj4 the grids are loaded implicitly when there is +nadgrids parameter
  passed. In Boost.Geometry an object representing a subset of grids explicitly
  has to be initialized and then passed into transforming function.
- in proj4 grids has to be "installed" into certain directories. In
  Boost.Geometry user can implement StreamPolicy opening any input stream
  having unformatted input interface. The default one uses std::ifstream
  opening files having the same names as the ones in +nadgrids parameter in
  working directory.

Added classes:
  srs::grids, srs::ifstream_policy, srs::grids_storage,
  srs::projection_grids, srs::transformation_grids
and for multithreading:
  srs::shared_grids

Added functions (also overloads)
  srs::transformation::initialize_grids(grids_storage)
  srs::transformation::forward(in, out, transformation_grids)
  srs::transformation::inverse(in, out, transformation_grids)
2018-04-08 14:15:21 +02:00
Adam Wulkiewicz
49b9e7bfa3
Merge pull request #465 from awulkiew/feature/projections_update
Update implemented projections to proj4 5.0.0 state.
2018-04-07 14:55:17 +02:00
Vissarion Fysikopoulos
1484a0eb65 [strategies] [tests] Fix special case for geo pt-seg distance 2018-04-05 14:26:21 +03:00
Vissarion Fysikopoulos
aee17ee094 [strategies] [tests] Activating some tests for pt-seg distance with thomas formula 2018-04-04 11:34:35 +03:00
Vissarion Fysikopoulos
93bd8501b0 [strategies] [algorithms] Azimuth strategy and box mirror function interfaces change 2018-04-02 14:55:34 +03:00
Vissarion Fysikopoulos
1e41a4d516 [strategies] [tests] Fix pt-seg distance cases for south hemisphere 2018-04-02 13:52:00 +03:00
Adam Wulkiewicz
bb727d91ed Merge branch 'develop' into bg-prepare 2018-03-30 02:52:30 +02:00
Vissarion Fysikopoulos
350836f3e7 Merge with develop branch 2018-03-29 11:03:20 +03:00
Adam Wulkiewicz
e3802efb04
Merge pull request #467 from vissarion/feature_box_box_fix
Few fixes in distance computation
2018-03-28 16:09:08 +02:00
Vissarion Fysikopoulos
ff6547bc7b [formulas] Fix a bug in thomas inverse formula 2018-03-28 16:59:03 +03:00
Vissarion Fysikopoulos
df23bb19b8 [strategies] Fix inverse strategy type call from point segment distance computation strategy 2018-03-28 16:54:08 +03:00
Vissarion Fysikopoulos
ab2ab3144d [strategies] [tests] Diagonal case fix for box-box distance 2018-03-28 14:42:08 +03:00
Vissarion Fysikopoulos
51a3a6b78c Merge branch 'feature_box_box_fix' into feature_box_seg 2018-03-28 12:49:24 +03:00
Vissarion Fysikopoulos
37c78acd6c [strategies] [tests] Diagonal case fix for box-box distance 2018-03-28 12:48:58 +03:00
Barend Gehrels
68296965f5 ticket #13386 - workaround for some gcc compilers 2018-03-27 21:50:18 +02:00
Barend Gehrels
7bfd8c6ca3 Revert "ticket #13386 - workaround for some gcc compilers complaining about"
This reverts commit 54f5ead9e8.
2018-03-27 21:46:05 +02:00
Barend Gehrels
54f5ead9e8 ticket #13386 - workaround for some gcc compilers complaining about
Also move the const according to conventions, in this method.
2018-03-27 21:28:13 +02:00
Vissarion Fysikopoulos
d6569be95b Update include files for srs.hpp 2018-03-24 16:00:58 +02:00
Vissarion Fysikopoulos
2b5fc9a9d4 Merge remote-tracking branch 'origin/develop' into feature_box_seg 2018-03-24 15:43:13 +02:00
Vissarion Fysikopoulos
821bb37567 [algorithms] [strategies] Fix issue with envelope segment algorithm; wrong azimuth computation in some cases 2018-03-24 15:42:54 +02:00
Vissarion Fysikopoulos
e6e1b1d96f [tests] Crossing prime meridian tests 2018-03-23 16:40:09 +02:00
Adam Wulkiewicz
2c6f8c25b4 Merge branch 'develop' into bg-prepare 2018-03-23 00:20:43 +01:00
Adam Wulkiewicz
b9e33ae18f [index][doc] Improve description of predicates. 2018-03-23 00:18:31 +01:00
Adam Wulkiewicz
90ee75f232 Merge branch 'develop' into bg-prepare 2018-03-22 22:25:10 +01:00
Adam Wulkiewicz
22f49ce7b4 [srs] Allow defining prime meridian in DMS format. 2018-03-22 22:11:53 +01:00
Adam Wulkiewicz
65df039169 [srs] In dms parser replace memset with init. list or std::fill. 2018-03-22 22:10:41 +01:00
Adam Wulkiewicz
7df9d6d235 [srs] Simplify pj_consts struct holding projection parameters. 2018-03-21 18:21:42 +01:00
Adam Wulkiewicz
7d73240ad9 [srs] Improve projections' parameters handling.
Replace pj_param() taking type of parameter in a string with a set of
functions:
- pj_param_exist() - check if a parameter exists,
- pj_param_X() - check if a parameter exists and assign it to variable,
- pj_get_param_X() - return parameter if it exists or default value,
may be:
- s (returning std::string),
- i (int),
- f (floating point or user-defined numeric type),
- r (angle defined in DMS format as radians in FP or UD type),
- b (bool)

Use the above e.g. to avoid traversing parameters list twice per
parameter in some cases.

Add pj_mkparam() overload taking name and value as separate arguments to
avoid parsing of string in 'param=value' format.
2018-03-20 23:24:03 +01:00
Vissarion Fysikopoulos
c416382aff [formulas] [tests] Handle cases of geometries in both hemispheres 2018-03-20 16:48:04 +02:00
Adam Wulkiewicz
c32e32c18f [srs] In bonne proj avoid calc_t to bool implicit conversion. 2018-03-18 03:14:08 +01:00
Adam Wulkiewicz
2490451d8e [srs][test] Do not include projections by default (due to possible clashes with macros). 2018-03-15 20:37:34 +01:00
Adam Wulkiewicz
331c584c27 [srs] Replace apa table with struct and return it from pj_authset() instead of dummy/true bool value. 2018-03-15 18:58:31 +01:00
Adam Wulkiewicz
ffa8c32856 [srs] Add missing include and fix unused variable warnings. 2018-03-15 18:39:46 +01:00
Adam Wulkiewicz
4c2753701e [srs] Replace en table with struct and return it from pj_enfn() instead of dummy/true bool value. 2018-03-15 17:48:52 +01:00
Adam Wulkiewicz
8794ffb121 [srs] Update v* and w* projections (proj4 5.0.0). 2018-03-15 16:57:05 +01:00
Adam Wulkiewicz
e39e242fe5 [srs] Update t* and u* projections (proj4 5.0.0). 2018-03-15 13:46:40 +01:00
Adam Wulkiewicz
409729c299 [srs] Update r* and s* projections (proj4 5.0.0). 2018-03-14 18:54:29 +01:00
Adam Wulkiewicz
40448ee99b [srs] Update p* and q* projections (proj4 5.0.0). 2018-03-14 17:04:03 +01:00
Adam Wulkiewicz
c1406db0f3 [srs] Update n* and o* projections (proj4 5.0.0). 2018-03-14 16:07:57 +01:00
Adam Wulkiewicz
ffeeaedb38 [is_valid] Add missing core/cs.hpp include. 2018-03-14 11:31:24 +01:00
Adam Wulkiewicz
9459b39bee [srs] Update m* projections (proj4 5.0.0). 2018-03-14 01:23:32 +01:00
Adam Wulkiewicz
d770d18d6c [srs] Update l* projections (proj4 5.0.0). 2018-03-14 00:25:05 +01:00
Adam Wulkiewicz
f492512df4 [srs] Update i* and k* projections (proj4 5.0.0). 2018-03-13 02:44:39 +01:00
Adam Wulkiewicz
f4f1874f19 [srs] Update h* projections (proj4 5.0.0), add pj_calc_ellipsoid_params() function and comment in geos projection. 2018-03-12 23:13:15 +01:00
Adam Wulkiewicz
1f4a271d74 [srs] Update f* and g* projections (proj4 5.0.0). 2018-03-12 03:17:05 +01:00
Adam Wulkiewicz
e71bb85217 [srs] Update eck1, eck2, eck3, eck4, eck5, eqc, eqdc, etmerc (proj4 5.0.0). 2018-03-10 00:29:06 +01:00
Adam Wulkiewicz
57bd186feb [srs] Update cc, collg and denoy (proj4 5.0.0). 2018-03-09 19:21:55 +01:00
Adam Wulkiewicz
fc73443860 [srs] Update bacon, bipc, boggs, bonne (proj4 5.0.0). 2018-03-09 18:55:31 +01:00
Adam Wulkiewicz
4400796fc3 [srs] Update aea, aeqd, airy, aitoff and august (proj4 5.0.0). 2018-03-09 18:20:08 +01:00
Adam Wulkiewicz
04af0a1796 [srs] Fix error in tcea projection (not removed template parameter). 2018-03-09 18:19:14 +01:00
Adam Wulkiewicz
fe2e9d2877 [srs] Add new projection error/exception codes. 2018-03-09 18:17:33 +01:00
Adam Wulkiewicz
7f3562c059 [srs] Update some of the projections (to proj4 5.0.0). 2018-03-09 02:49:39 +01:00
Adam Wulkiewicz
8e3257325b [srs] Fix igh projection (wrong variant of underlying sinu projection).
- Use spherical sinu projection instead of elliptical/spheroidal.
2018-03-07 22:54:03 +01:00
Adam Wulkiewicz
8c8d06d3a9 [srs] Fix goode projection (wrong variant of underlying sinu projection).
- Use spherical sinu projection instead of elliptical/spheroidal.
- Rearrange and simplify the code in order to properly
  initialize underlying sinu projection object requireing es = 0.
  It's possible that es = 0 should be set in spherical sinu projection
  for safety.
2018-03-07 19:08:04 +01:00