View - Properties - Precision

The View - Properties - Precision dialog sets a location precision distance for drawings and maps that defines the radius of action of many commands and operators, including SQL. For example, some drawing transform toolbar operators like Normalize Topology will snap a line end to a point if the line end is closer to the point than the distance given in the Precision dialog. Two points falling within the location precision distance will be deemed coincident. The precision parameter is also important when using automated tools such as Attach and the Topology Factory tool.


This is a critically important parameter that must be understood when using Normalize Topology or other advanced commands. It is necessary because the digital representation of an analog world requires some "quantum" level to determine when a given distance is attained or not attained. For example, if we search for all points within 2 miles of another point, in the digital world there is never exactly a point at the 2 mile distance. It might be at 1.9999999999 miles or 2.0000000001 miles but it won't be "exactly" at 2 miles. The location precision parameter allows us to specify with what precision a distance is truly considered at "2" miles.


The precision parameter is also important for geometric comparisons such as determining if two points are coincident. If they fall within the distance specified by the precision parameter, two locations are considered to be the same.


By default the precision parameter is set to one millionth of whatever measurement unit is used in the drawing's coordinate system. In the case of latitude / longitude drawings this will be one millionth of a degree (about ten centimeters at the Equator). In the case of projected drawings that are meter based, such as the default Orthographic projection, the precision parameter will be one millionth of a meter by default.


Drawings that are imported using less accurate can be "quantized" into a desired precision setting by running Normalize Topology using a new precision setting as follows:


Quantizing Drawings into a Desired Precision


1. Open the drawing.

2. Using the tracker tool zoom into the drawing measure the distance between two points that are extremely close to each other but which should be treated as separate locations. These two points ideally should be the very closest that two points should be from each other before they are considered the same.

3. Divide the distance measured above by 10. That is probably a reasonably safe value to use as a sufficiently small precision value that any points closer together than that should be considered the same location.

4. Open the View - Properties - Precision dialog and specify this precision value as the Location Precision value to use. Press OK.

5. Save the .map file.

6. Run Normalize Topology on all objects. This will slightly alter any common area boundaries and other anomalies that have slight overlaps, holes, undershoots, overshoots, etc, within the new Location Precision value so that borders are exactly coincident, overshoots do not occur, points are coincident with the ends of lines, etc.


Initial Precision Settings


When we create a drawing, its location precision is set to 0.000001 degrees or 0.000001 meters depending on whether the drawing is in Latitude / Longitude or not. This default value and the default choice of degrees or meters as units of measure stays unchanged unless we modify it by using View - Properties - Precision, or re-project a projected drawing into Latitude / Longitude or vice versa.


Tech Tips


The importance of location precision parameter can be seen by importing the mexico_eg sample drawing, opening it, setting location precision to 0.1 and then running Normalize Topology. This achieves, in effect, a "generalize" operation on the drawing that will simplify it (while maintaining topological relationships) to using many fewer coordinates to define the same objects. This is a long computation but well worth the time to see the effect.


Within the Manifold programming and mathematics team the location precision parameter is called the epsilon. Some documentation and notes within sample source code may refer to "the epsilon" used for a given action. This is the location precision distance referred to by a more mathematical name.


Because Manifold utilizes double-precision floating point numbers for internal calculations, the ultimate limit of precision with Manifold is approximately one two hundred fifty millionth of a meter at the Equator, accuracy sufficient to "map" the surface of a bacterium or even a virus. This extraordinarily high internal accuracy within Manifold, millions of times more accurate than even survey-grade GIS data, assures users that internal Manifold operations will always preserve whatever accuracy is available within the data set in use. Whatever the data set in use, Manifold's internal machinery will always be far more accurate.