Are the bounds inclusive of 0, 90/180?
Many systems and libraries simply clamp it to from -n to +n without considering zero. In many of these cases the handling of 0 is arbitrary (which hemisphere it lands on for example). In other cases -0 is supported (which offers more even distribution).
Some descriptions suggest that 0 doesn't really exist, values simply move closer to it but never reach it, however some implementations include 0.
If it's down to the person implementing the system which system is preferred?
- 0 < n < max
- 0 <= n < max
- 0 < n <= max
- 0 <= n <= max
Given the even options should 0 be negative or fall on a specific hemisphere?
I can't answer my own question as it's locked...
From a programming perspective, standards wise signed zero is an anomaly, it is an artifact that is often ignored and not supported directly by programming languages. It's also mathematically broken. The different between -0 and 0 is still 0.
An algorithm wont care about human representation and segments.
Given a coordinate in the range -90 to 90, it will most likely have 90 added to it and then possible another 180 depending on hemisphere.
Thus simplifying things to two values of 0..360 (an internal representation simplifed as much as possible, removing the sign entirely would be preferable for machine use) starting at point 0. As far as the machine is concerned there are no such thing as hemispheres, it is a presentation concern.
This does still become a problem for humans, where which hemisphere 0 lands on is still arbitrary.
Problems can also arise where machines talk to one another using coordinate systems then contain a format intended for humans (they specify hemisphere).
However it's very unlikely for something to land exactly on 0,0 and the precision loss is usually so small that it very rarely, almost never, manifests as a real problem. Many systems will add some extra precision to either eliminate the problem by isolating it to within a tiny fragment of least significance or to slow it's accumulation.
Whatever method is used involving hemispheres, it should be well defined enough to convert both ways without precision loss (such as > being used for output but < on input).
Hemisphere replaces the sign. As it makes no sense for coordinates of exactly zero, the obvious option is to leave it out. As with the floating point representation, it's an artifact that can be ignored.