1. A method for placing labels on a map utilizing a computer system, the computer system programmed to perform steps of the method, comprising: retrieving an association of each of the labels with a respective target feature on the map without regard to other of the labels or features of the map, retrieving properties of the features of the map, retrieving properties of the labels, pulling the labels within boundaries of the map, ordering the labels in rank of descending priority, selecting halting criteria parameters including iteration count, slow change count, and oscillation count, iterating the following steps, (a) to (f): (a) testing each of the labels that remain in turn for overlap with other of the labels, (b) moving the labels, which overlap other of the labels, to locations where there is no overlap, or where there is overlap with one or more of the labels of lesser priority, (c) eliminating the labels which cannot be placed on the map without overlapping other of the labels with higher priority, (d) performing an evaluation function to calculate a collision score, (e) executing a halting procedure using an iteration number, a respective previous collision score, and the collision score, (f) comparing a result of the executing to the halting criteria parameters to determine if the moving the labels is to be halted, and, if the moving is not to be halted, proceeding to step (a), else proceeding to the following step, adjusting the properties of the labels, and then placing onto the map remaining labels in respective computed locations.