1. A method for placing labels on a map comprising: retrieving each label's association with a respective target feature on the map without regard to other labels or features, retrieving map features' properties, retrieving labels' properties, pulling labels within map boundaries, ordering labels in rank of descending priority, initializing halting criteria variables, testing each label in turn for overlap with other labels, moving labels, which overlap other labels, to locations where there is no overlap, or where there is overlap with one or more labels of lesser priority, eliminating labels which cannot be placed on the map without overlapping other labels, calculating an evaluation function, determining if movement of labels is to be halted, and adjusting label properties.