1. A computer implemented method, executed by a computing device for positioning a plurality of labels in a route map, the computer implemented method comprising, for each label in said plurality of labels: associating by the computing device, a plurality of constraint definitions with said label, each constraint definition in said plurality of constraint definitions uniquely defining a bounding box, label orientation, and layout style, and wherein said plurality of constraint definitions constitute a continuous range of positions, and wherein a center of said label within each unique bounding box is located at a different point for each of the constraint definitions in the continuous range of positions, and wherein the plurality of constraint definitions are not limited by placement on the map to relation to a road; selecting, by the computing device, an initial constraint definition from said plurality of constraint definitions; positioning, by the computing device, the center of said label at a location within the bounding box defined by said initial constraint definition in accordance with the label orientation and layout style defined by said initial constraint definition; the computer implemented method further comprising: choosing, by the computing device, a label in said plurality of labels; determining, by the computing device, a first score (S 1 ) using a target function, wherein the score is determined by a position of said chosen label in said route map; applying, by the computing device, a different constraint definition from the plurality of constraint definitions associated with said selected label, said applying step including the step of repositioning a center of said label inside the bounding box defined by said different constraint definition in accordance with the label orientation and layout style defined by said different constraint definition; calculating, by the computing device, a second score (S 2 ) using said target function, wherein the score is determined by the repositioned label position; accepting, by the computing device, the new position for said label in accordance with a function that is determined by a comparison of S 1 and S 2 ; repeating, by the computing device, said choosing, determining, applying, calculating, and accepting steps until a first occurrence of an exit condition.