Syntax FACTORY_DEF DisplacementFactory [FACTORY_NAME ] [INPUT (BASE|CANDIDATE) FEATURE_TYPE [ ]* []*]* [GROUP_BY []+]* STIFFNESS MIN_DISTANCE DISPLACE_ENDPOINTS [(YES|NO)] MULTI_BASE (YES|NO|BASES_FIRST) [OUTPUT (DISPLACED|UNTOUCHED|INVALID_BASE|INVALID_CANDIDATE|EXTRA_BASE) FEATURE_TYPE [ ]* []*]* Overview This factory is used to resolve proximity conflicts between point, linear and polygonal features, usually after generalization. For example, a road may lie too close to another and we want it displaced in a way that preserves its topology as much as possible. This factory currently uses an adaptation of the Nickerson algorithm. The input features may be grouped based on attribute values specified in the GROUP_BY clause. The STIFFNESS clause specifies how much the displacement at one point in the candidate feature's geometry should affect the neighboring points. A lower value means that the candidate geometry can be deformed easily while a higher value means that it will try its best to keep its original shape. This floating point value must be greater than 0. The MIN_DISTANCE clause specifies the minimum separating distance between the candidate feature's geometry and the base feature's geometry after displacement. This distance must be greater than 0. The DISPLACE_ENDPOINTS clause specifies whether or not to displace the endpoints of candidate features whose geometries are unclosed lines. The MULTI_BASE clause specifies whether we allow one or more base features per group. Any extra base feature(s) go out through the EXTRA_BASES port. The BASES_FIRST option is an optimization, such that each candidate feature can be processed immediately. If it is specified, user must guarantee that all base feature are passed in before any candidate features. Input Tags The DisplacementFactory uses the following input tags. BASE Features are geometrically frozen (cannot move). The accepted geometries are point, curve and area. CANDIDATE Features that will be potentially displaced in order to resolve the proximity conflicts with the base feature(s). The accepted geometries are point, line and simple area. Output Tags The DisplacementFactory supports the following output tags. DISPLACED All candidate features that were displaced are output through this port. The geometries of these features are now curves. UNTOUCHED All candidate features that were not displaced are output through this port. These features preserve their original geometry. INVALID_BASE All base features with geometry other than point, curve or area or which for some reason cannot be converted to a line are output with this clause. INVALID_CANDIDATE All candidate features with geometry other than point, curve or simple area or which for some reason cannot be converted to a line are output through this port. EXTRA_BASE If the MULTI_BASE clause is set to no, all extra base features are output through this port.