-
Notifications
You must be signed in to change notification settings - Fork 128
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
implement universal solution for kml viewpoint #771
Draft
tsteven4
wants to merge
9
commits into
GPSBabel:master
Choose a base branch
from
tsteven4:welzl
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Use welzl's algorithm and nvectors to find the latitude, longitude, and range for the camera. This works everywhere on earth, including the antimeridian and poles.
There is a reproducibility issue with very small changes depeding on the randomization.
Also, only print kml range to the millimeter instead of micrometer. At the micrometer level the range could depend on the randomization of the points for the welzl algorithm.
GPSBabelDeveloper
changed the title
implement univeresal solution for kml viewpoint
implement universal solution for kml viewpoint
Nov 27, 2021
At the moment regression passes except for 64 bit windows builds. They fail with a stack overflow. More critically, the expected linear performance has not been realized. |
add containment count tracking.
performance appears linear if the set of points is in a hemisphere. However, if the set of points does not fit in any half sphere it becomes very non-linear. memory utilization also seems to be an issue somewhere above 10,000 points. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The existing bounding box used to create the kml viewpoints has problems at the poles and antimeridian. It aslo has problems at whenever the bounding box has both positive and negative longitudes, even around the prime meridian.
The intent is to solve these issues in a universal way, that works for all sets of points on the earth. Specifically, it works for points around the antimeridian and points around the poles. We also fix the bug around the prime meridian.
The proposed solution uses Welzl's algorithm to find the minimum bounding "circle" (actually a spherical cap) of the points. It implements this in n-vector space. Welzl's algorithm is O(n), so this solution should scale. I beleive the combination of the Welzl algorithm with n-vector representation of position is novel.
At present there are some reproducibility issues due to randomization of the order of the points. This appears to introduce very small errors in some of the reference files.