Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Umbrella strategies improvements #855

Merged
merged 7 commits into from
Jun 2, 2021

Conversation

awulkiew
Copy link
Member

This PR adds the following changes:

  • SeriesOrder template parameter is removed from geographic umbrella strategies
  • Umbrella strategy is propagated in is_simple and is_valid
  • is_convex umbrella strategy is added and supported in the algorithm (using the same side strategy as convex_hull)
  • is_convex for Polygon is implemented
  • Strategy getters (e.g. get_point_in_geometry_strategy()) are removed from legacy strategies
  • Default umbrella strategies are included with algorithms so the user no longer needs to include strategies explicitly if only the default one is needed.

Todo (probably in a different PR or in this one if you insist):

  • Removal of strategy includes in tests when they are not needed (since the defaults are included with algorithms)
  • There is still one umbrella strategy missing for remove_spikes (convex_hull strategy could be reused for that, e.g. as an alias)
  • Aliases of umbrella strategies for all algorithms so they are not confusing and the user knows that e.g. within algorithm expects within strategy (right now relate strategy is used for all relops and setops).
  • Relocation of legacy strategies into strategy/ directory

Question:

  • should we use side_robust strategy in all algorithms by default, e.g. also in relops and setops?

@awulkiew awulkiew added this to the 1.77 milestone May 24, 2021
Copy link
Member

@vissarion vissarion left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Todo (probably in a different PR or in this one if you insist):

* Removal of strategy includes in tests when they are not needed (since the defaults are included with algorithms)

* There is still one umbrella strategy missing for `remove_spikes` (`convex_hull` strategy could be reused for that, e.g. as an alias)

* Aliases of umbrella strategies for all algorithms so they are not confusing and the user knows that e.g. `within` algorithm expects `within` strategy (right now `relate` strategy is used for all relops and setops).

* Relocation of legacy strategies into `strategy/` directory

I am OK with leaving them for separate PR.

Question:

* should we use `side_robust` strategy in all algorithms by default, e.g. also in relops and setops?

We should at least try. I can prepare a PR.

// longitude difference was lesser than 360 (otherwise depending on the CS there would be
// no solution or there would be two possible solutions - segment going through one of
// the poles, at least in case of oblate spheroid, either way the answer would probably
// be "false").
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Copy link
Collaborator

@barendgehrels barendgehrels left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the huge PR!

@awulkiew
Copy link
Member Author

awulkiew commented Jun 2, 2021

Thanks for the reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants