Issue
The new DataWA (SLIP) location data services provide coordinates to a higher degree of accuracy than the old SLIP Classic system.
Affects
All users of location data APIs from DataWA:
- WFS
- ArcGIS Map Services
- ArcGIS Feature Services
Description
Our old SLIP Classic system provided data with an accuracy of 8 decimal places. The new SLIP platform provides data to 9 decimal places – but it actually outputs this as number with 15 decimal places.
Additionally, rounding errors during the coordinate transformation process introduces a very small error in the output coordinate system.
For example:
Source Data
115.929866785854-32.0727686521514
SLIP Classic
115.92986679-32.07276865
SLIP
115.92986678600005-32.072768651999979
The source data has 12 decimal places of accuracy, so outputs from SLIP have always resulted in some reduction in accuracy, although this will be minimal.
In SLIP Classic we were limited to output to 8 decimal places only. The output coordinate has the least significant digit rounded, in the case of the longitude this is rounded up from 85 to 9, and in the case of the latitude this is rounded down from 52 to 5.
New SLIP outputs to 15 decimal places, however it only seems to actually get 9 decimal places worth of data from the source data. If we focus our attention only to 9 decimal places we see 858 gets rounded to 86 for the longitude and the latitude is rounded from 521 to 52.
At this point you will see that the latitude is actually output as 51999979. The way these services have been implemented in SLIP Esri involve on the fly coordinate transformation. Like all floating-point calculations, there is a certain amount of error introduced. Many academic papers have been written about how these rounding errors can introduce into calculations, but for our purposes this error amounts for a fraction of a millimetre.
Workaround
If necessary, you can limit the accuracy of the returned coordinates by adding "&geometryPrecision=8" to queries to ArcGIS Map and Feature services.
We are evaluating the work necessary to move towards outputting the full 12 decimal places of precision in SLIP to reflect the accuracy of the source data. At the same time, we will restrict the number of decimal places exposed in the service to match what is available in the data.