1. A method of positioning a plurality of labels in a route map, the method comprising, for each label in said plurality of labels: associating 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; selecting an initial constraint definition from said plurality of constraint definitions; positioning a 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; and the method further comprising: choosing a label in said plurality of labels; determining 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 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 a second score (S 2 ) using said target function; wherein the score is determined by the repositioned label position; accepting the new position for said label in accordance with a function that is determined by a comparison of S 1 and S 2 ; repeating said choosing, determining, applying, calculating, and accepting steps until a first occurrence of an exit condition.