Patent US7542882B2 successfully refreshed from Google Patents.
← Back to Patent Explorer
US7542882B2 Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for abstracting and visualizing a route map

Assignee: Microsoft Technology Licensing LLC
•
Filing: 2004-12-06
•
Granted: 2009-06-02
•
Expires: 2024-12-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method for making computer-generated maps includes a different scale factor for each road in a route. The scale factors are used to optimize the route map against a target function that considers factors such as the number of false intersections in the route and the number of roads falling below a minimum length threshold. A refinement technique such as simulated annealing is used to find a solution to the target function. Each road in the scaled map is rendered to provide a finished product having the appearance of a hand-drawn map. The finished product includes context roads that intersect the main route but are not part of the main route. Furthermore, the hand-drawn map is optimized to the characteristics of the viewport used to visualize the map.

Inventors

  • 👤 Maneesh Agrawala
  • 👤 Chris Stolte

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 12:31
CPC Classifications
G; G06; G06T; G06T17/00; G06T17/05; G01; G01C; G01C21/00; G01C21/26; G01C21/34; G01C21/36; G01C21/3667; G01C21/367; G01C21/3673; G06T11/00; G06T11/20; G06T11/26; G06T11/60; G06T11/65

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 362 words
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.
Claim 2
Dependent Claim 362 words
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.
Claim 3
Dependent Claim 66 words
The computer implemented method of claim 1 wherein said function comprises accepting the repositioned label position: (1) when S 2 is less than S 1; (2) with a probability P(ΔS), when S 2 is greater than S 1 , where P(ΔS) is a probability function that is dependent upon an effective temperature t that is reduced by an amount after each execution of said repeating step.
Claim 4
Dependent Claim 26 words
The computer implemented method of claim 2 where: P (Δ S )=exp −[(ΔS)/(k*t)] ΔS =( S 1 )−( S 2 ), and k is a constant.
Claim 5
Dependent Claim 53 words
The computer implemented method of claim 1 , wherein said positioning step further comprises fixing a label in said plurality of labels in said route map when said label does not intersect with any other label in said route map; and said choosing step does not choose a label that has been fixed.
Claim 6
Dependent Claim 35 words
The computer implemented method of claim 1 , wherein each constraint definition in said plurality of constraint definitions includes a scoring strategy that is used by said target function in said determining and calculating steps.
Claim 7
Dependent Claim 95 words
The computer implemented method of claim 1 , wherein each said layout style is selected from the group consisting of a simple layout style, a combination of an arrow image with the primary name for one of a street and a highway, a combination of a primary name for one of a street and a highway with a mileage along the road, a highway number as text stacked on top of a shielding image, a word-wrapped name, and a highway number stacked on top of a shield image with a mileage along a corresponding road.
Claim 8
Dependent Claim 353 words
A computer storage medium containing computer executable instructions that when executed by a computing device provide: a label placement module for positioning a plurality of labels in a route map, the label placement module comprising, for each label in said plurality of labels: instructions for 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, wherein said plurality of constraint definition constitute a continuous range of positions, 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 in relation to a road; instructions for selecting an initial constraint definition from said plurality of constraint definitions; instructions for 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; the module further including: instructions for choosing a label in said plurality of labels; instructions for 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; instructions for applying a different constraint definition, from the plurality of constraint definitions associated with said selected label, said instructions for applying including instructions for 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; instructions for calculating a second score (S 2 ) using said target function, wherein the score is determined by the repositioned label position; instructions for accepting the new position for said label in accordance with a function that is determined by a comparison of S 1 and S 2 ; and instructions for repeating said instructions for choosing, determining, applying, calculating, and accepting until a first occurrence of an exit condition.
Claim 9
Dependent Claim 353 words
A computer storage medium containing computer executable instructions that when executed by a computing device provide: a label placement module for positioning a plurality of labels in a route map, the label placement module comprising, for each label in said plurality of labels: instructions for 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, wherein said plurality of constraint definition constitute a continuous range of positions, 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 in relation to a road; instructions for selecting an initial constraint definition from said plurality of constraint definitions; instructions for 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; the module further including: instructions for choosing a label in said plurality of labels; instructions for 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; instructions for applying a different constraint definition, from the plurality of constraint definitions associated with said selected label, said instructions for applying including instructions for 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; instructions for calculating a second score (S 2 ) using said target function, wherein the score is determined by the repositioned label position; instructions for accepting the new position for said label in accordance with a function that is determined by a comparison of S 1 and S 2 ; and instructions for repeating said instructions for choosing, determining, applying, calculating, and accepting until a first occurrence of an exit condition.
Claim 10
Dependent Claim 70 words
The computer storage medium of claim 7 wherein said function comprises instructions for accepting the repositioned label position: (1) when S 2 is less than S 1 ; and (2) with the probability P(ΔS), when S 2 is greater than S 1 , where P(ΔS) is a probability function that is dependent upon an effective temperature t that is reduced by an amount after each execution of said repeating step.
Claim 11
Dependent Claim 26 words
The computer storage medium of claim 8 where: P (Δ S )=exp −[(ΔS)/(k*t)] ΔS =( S 1 )−( S 2 ), and k is a constant.
Claim 12
Dependent Claim 55 words
The computer storage medium of claim 7 , wherein said instructions for positioning further comprises instructions fixing a label in said plurality of labels in said route map when said label does not intersect with any other label in said route map; and said choosing step does not choose a label that has been fixed.
Claim 13
Dependent Claim 38 words
The computer storage medium of claim 7 , wherein each constraint definition in said plurality of constraint definitions includes a scoring strategy that is used by said target function coded by said instructions for determining and calculating steps.
Claim 14
Dependent Claim 94 words
The computer storage medium of claim 7 , wherein each said layout style is selected from the group consisting of a simple layout style, a combination of an arrow image with the primary name for one of a street and a highway, a combination of a primary name for one of a street and a highway with a mileage along the road, a highway number as text stacked on top of shielding image, a word-wrapped name, and a highway number stacked on top of a shield image with a mileage along a corresponding road.
Claim 15
Dependent Claim 389 words
A computer system for positioning a plurality of labels in a route map, the computer system comprising: a central processing unit; a memory, coupled to said central processing unit; a viewport for displaying said route map; a program module, executable by said central processing unit, said program module comprising: a label refinement module for refining the plurality of labels in a route map, the label refinement module comprising, for each label in said plurality of labels: instructions for 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, and wherein said plurality of constraint definitions constitute a continuous range of positions, 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 in relation to a road; instructions for selecting an initial constraint definition from said plurality of constraint definitions; instructions for positioning 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 label refinement module further including: instructions for choosing a label in said plurality of labels; instructions for 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; instructions for applying a different constraint definition, from the plurality of constraint definitions associated with said selected label, said instructions for applying including instructions for 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; instructions for calculating a second score (S 2 ) using said target function; wherein the score is determined by the repositioned label position; instructions for accepting the new position for said label in accordance with a function that is determined by a comparison of S 1 and S 2 ; and instructions for repeating said instructions for choosing, determining, applying, calculating, and accepting until a first occurrence of an exit condition.
Claim 16
Dependent Claim 389 words
A computer system for positioning a plurality of labels in a route map, the computer system comprising: a central processing unit; a memory, coupled to said central processing unit; a viewport for displaying said route map; a program module, executable by said central processing unit, said program module comprising: a label refinement module for refining the plurality of labels in a route map, the label refinement module comprising, for each label in said plurality of labels: instructions for 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, and wherein said plurality of constraint definitions constitute a continuous range of positions, 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 in relation to a road; instructions for selecting an initial constraint definition from said plurality of constraint definitions; instructions for positioning 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 label refinement module further including: instructions for choosing a label in said plurality of labels; instructions for 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; instructions for applying a different constraint definition, from the plurality of constraint definitions associated with said selected label, said instructions for applying including instructions for 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; instructions for calculating a second score (S 2 ) using said target function; wherein the score is determined by the repositioned label position; instructions for accepting the new position for said label in accordance with a function that is determined by a comparison of S 1 and S 2 ; and instructions for repeating said instructions for choosing, determining, applying, calculating, and accepting until a first occurrence of an exit condition.
Claim 17
Dependent Claim 69 words
The computer system of claim 13 wherein said function comprises instructions for accepting the repositioned label position: (1) when S 2 is less than S 1 ; and (2) with the probability P(ΔS), when S 2 is greater than S 1 , where P(ΔS) is a probability function that is dependent upon an effective temperature t that is reduced by an amount after each execution of said repeating step.
Claim 18
Dependent Claim 25 words
The computer system of claim 14 where: P (Δ S )=exp −[(ΔS)—/(k*t)] ΔS =( S 1 )−( S 2 ), and k is a constant.
Claim 19
Dependent Claim 57 words
The computer system of claim 13 , wherein said instructions for positioning further comprises instructions fixing a label in said plurality of labels in said route map when said label does not intersect with any other label in said route map; and said instructions for choosing includes instructions for not choosing a label that has been fixed.
Claim 20
Dependent Claim 37 words
The computer system of claim 13 , wherein each constraint definition in said plurality of constraint definitions includes a scoring strategy that is used by said target function function coded by said instructions for determining and calculating.
Claim 21
Dependent Claim 94 words
The computer system of claim 13 , wherein each said layout style is selected from the group consisting of a simple layout style, a combination of an arrow image with the primary name for one of a street and a highway, a combination of a primary name for one of a street and a highway with a mileage along the road, a highway number as text stacked on top of a shielding image, a word-wrapped name, and a highway number stacked on top of a shield image with a mileage along a corresponding road.
Claim 22
Dependent Claim 48 words
The method of claim 1 , further comprising extending the road when a length of the label exceeds the length of the road, wherein the road is extended by an amount equal to the length at which the length of the label exceeds the length of the road.
Claim 23
Dependent Claim 66 words
The method of claim 1 , wherein the score determined by the target function includes a determination of at least one of: a number of roads each label intersects, a number of labels each label intersects, a distance the label is from a center of the road associated with the label, whether the label is above the road, and whether the label is below the road.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2012-06-01 2012-12-01 2013-06-02 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2016-06-01 2016-12-01 2017-06-02 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2020-06-01 2020-12-01 2021-06-02 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag