WO2012123986A1 - 文字列配置装置 - Google Patents

文字列配置装置 Download PDF

Info

Publication number
WO2012123986A1
WO2012123986A1 PCT/JP2011/001477 JP2011001477W WO2012123986A1 WO 2012123986 A1 WO2012123986 A1 WO 2012123986A1 JP 2011001477 W JP2011001477 W JP 2011001477W WO 2012123986 A1 WO2012123986 A1 WO 2012123986A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
character
curve
character string
node
Prior art date
Application number
PCT/JP2011/001477
Other languages
English (en)
French (fr)
Inventor
健 宮本
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2011/001477 priority Critical patent/WO2012123986A1/ja
Priority to US14/000,292 priority patent/US9317949B2/en
Priority to JP2013504397A priority patent/JP5496415B2/ja
Priority to CN201180069255.8A priority patent/CN103430226B/zh
Priority to DE112011105035.6T priority patent/DE112011105035T5/de
Publication of WO2012123986A1 publication Critical patent/WO2012123986A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/10Map spot or coordinate position indicators; Map reading aids
    • G09B29/106Map spot or coordinate position indicators; Map reading aids using electronic means

Definitions

  • the present invention relates to a character string arrangement device for arranging a character string such as a road name on a map.
  • a character string such as a road name is arranged along a road line (hereinafter referred to as “road node string”) from a node (hereinafter referred to as “placement start node”) where the character string starts to be arranged.
  • road node string a road line
  • place start node a node
  • a car navigation system equipped with a character string arrangement function is known (for example, see Patent Documents 1 to 3). If this character string arrangement function is used, characters are arranged in parallel with the road, so when arranging a character string straddling two links, an angle change of the road link (hereinafter referred to as “road angle change”), The change in the character arrangement angle (hereinafter referred to as “character angle change”) becomes equal.
  • the character string displayed by using the character string arrangement function in the conventional character string arrangement device described above has the same change in the road angle and the change in the character angle. Therefore, as the change in the road angle increases, the change in the character angle also increases. There is a problem that the readability of the character string decreases.
  • the present invention has been made to solve this problem, and an object of the present invention is to provide a character string arrangement device that improves the readability of a character string.
  • a character string arrangement device includes a character string arrangement data acquisition unit that acquires character string arrangement data for arranging a character string along a road, and character string arrangement data acquired by the character string arrangement data acquisition unit
  • a road node sequence decimation unit that decimates some of the nodes that constitute the road node sequence included in the road node sequence, and a control point sequence creation unit that creates a control point sequence from the road node sequence after decimation by the road node sequence decimation unit;
  • a curve approximation unit that creates a node sequence that approximates the curve of the control point sequence created by the control point sequence creation unit with a straight line, and a curve approximation node that saves the node sequence created by the curve approximation unit as a curve approximation node sequence
  • a string storage unit and a character string arrangement processing unit that performs character string arrangement processing based on the curve approximation node sequence stored in the curve approximation node sequence storage unit are provided.
  • the character angle change can be reduced by arranging the character string on the curve created from the road link, so that the readability of the character string can be improved.
  • FIG. 1 is a block diagram showing a configuration of a character string arrangement device according to Embodiment 1 of the present invention.
  • the character string arrangement device includes a character string arrangement data storage unit 1, a character string arrangement data acquisition unit 2, a road node sequence thinning unit 3, a control point sequence creation unit 4, a curve approximation unit 5, a curve approximation node sequence storage unit 6, and A character string arrangement processing unit 13a is provided, and the character string arrangement processing unit 13a further includes a curve approximation node sequence acquisition unit 13, a character string arrangement calculation unit 14, a character string arrangement registration unit 15, and an output character string arrangement storage unit 16. It has.
  • the character string arrangement data storage unit 1 stores character string arrangement data.
  • the character string arrangement data includes data representing a plurality of characters constituting the character string, the vertical and horizontal widths of each character, the road node string along which the character string follows, and the arrangement start node of the character string.
  • the character string arrangement data stored in the character string arrangement data storage unit 1 is read by the character string arrangement data acquisition unit 2.
  • the character string arrangement data acquisition unit 2 reads out and acquires character string arrangement data from the character string arrangement data storage unit 1.
  • the character string arrangement data acquired by the character string arrangement data acquisition unit 2 is sent to the road node sequence thinning unit 3.
  • the road node sequence decimation unit 3 decimates some of the nodes constituting the road node sequence included in the character string arrangement data sent from the character string arrangement data acquisition unit 2.
  • the road node sequence after some of the nodes are thinned out by the road node sequence thinning unit 3 is sent to the control point sequence creation unit 4.
  • the trajectory of the character string can be smoothed by the thinning in the road node row thinning unit 3.
  • the control point sequence creating unit 4 creates a control point sequence for generating a curve from the road node sequence sent from the road node sequence thinning unit 3 along with the character string.
  • the control point sequence created by the control point sequence creation unit 4 is sent to the curve approximation unit 5.
  • the curve approximation unit 5 creates a curve from the control point sequence sent from the control point sequence creation unit 4, and generates a node sequence by linearly approximating the created curve.
  • the node sequence generated by the curve approximation unit 5 is sent to the curve approximation node sequence storage unit 6 as a curve approximation node sequence.
  • the curve approximation node sequence storage unit 6 stores the curve approximation node sequence sent from the curve approximation unit 5.
  • the curve approximation node sequence stored in the curve approximation node sequence storage unit 6 is read by the curve approximation node sequence acquisition unit 13.
  • the curve approximation node sequence acquisition unit 13 reads out and acquires a curve approximation node sequence from the curve approximation node sequence storage unit 6.
  • the curve approximation node sequence acquired by the curve approximation node sequence acquisition unit 13 is sent to the character string arrangement calculation unit 14.
  • the character string arrangement calculation unit 14 calculates the arrangement position of the character string based on the curve approximation node sequence sent from the curve approximation node sequence acquisition unit 13.
  • the character string arrangement position calculated by the character string arrangement calculation unit 14 is sent to the character string arrangement registration unit 15. Details of the character string arrangement calculation unit 14 will be described later.
  • the character string arrangement registration unit 15 indicates the arrangement position of the character string sent from the character string arrangement calculation unit 14 and indicates that the determination result sent from the character string arrangement calculation unit 14 has reached the predetermined number of characters.
  • the output character string arrangement storage unit 16 stores the arrangement position of the character string registered by the character string arrangement registration unit 15.
  • FIG. 2 is a block diagram showing a detailed configuration of the curve approximation unit 5.
  • the curve approximation unit 5 includes a curve approximation node registration unit 7, a straight line determination unit 8, an on-curve intermediate point creation unit 9, a first half curve approximation unit 10, a second half curve approximation unit 11, and a single line approximation unit 12.
  • the curve approximation node registration unit 7 registers the curve approximation node sequence sent from the latter half curve approximation unit 11 or the single line approximation unit 12 in the curve approximation node sequence storage unit 6.
  • the straight line determination unit 8 determines whether the curve created from the control point sequence sent from the control point sequence creation unit 4 can be approximated by a straight line, in other words, whether the curve is close to a straight line. If it is determined by the straight line determination unit 8 that the sequence is not close to a straight line, the sequence proceeds to the process at the intermediate point creation unit 9 on the curve. .
  • the curve midpoint creation unit 9 creates a midpoint on the curve created from the control point sequence sent from the control point sequence creation unit 4.
  • the intermediate point generated by the intermediate point generator 9 on the curve is sent to the first half curve approximation unit 10 and the second half curve approximation unit 11.
  • the first half curve approximating unit 10 is a straight line that represents the curve before the intermediate point sent from the on-curve intermediate point creating unit 9 among the curves created from the control point sequence sent from the control point sequence creating unit 4. Approximate.
  • the node sequence created by the straight line approximation in the first half curve approximation unit 10 is sent to the second half curve approximation unit 11.
  • the second half curve approximation unit 11 is a straight line that is a curve after the intermediate point sent from the on-curve intermediate point creation unit 9 among the curves created from the control point sequence sent from the control point sequence creation unit 4. Approximate.
  • the node sequence created by the straight line approximation in the second half curve approximation unit 11 is connected to the node sequence sent from the first half curve approximation unit 10 and sent to the curve approximation node registration unit 7 as a curve approximation node sequence.
  • the single line approximation unit 12 approximates a curve created from the control point sequence sent from the control point sequence creation unit 4 with a single straight line.
  • the node sequence created by the linear approximation in the single linear approximation unit 12 is sent to the curve approximation node registration unit 7 as a curve approximation node sequence.
  • FIG. 3 is a block diagram showing a detailed configuration of the character string arrangement calculation unit 14.
  • the character string arrangement calculation unit 14 includes a link angle calculation unit 17, a character arrangement unit 18, a character link outside determination unit 19, a duplication determination unit 20, a parameter update unit 21, and a character number determination unit 22.
  • the link angle calculation unit 17 calculates an angle formed by a link at each node (hereinafter referred to as “link angle”) based on the curve approximation node sequence sent from the curve approximation node sequence acquisition unit 13.
  • the link angle calculated by the link angle calculation unit 17 is sent to the character placement unit 18.
  • the character arrangement unit 18 arranges characters based on the link angle sent from the link angle calculation unit 17.
  • the characters arranged by the character arrangement unit 18 are sent to the character link out-of-link determination unit 19. Details of the character arrangement unit 18 will be described later.
  • the character link out-of-link determination unit 19 determines whether or not the character sent from the character placement unit 18 is out of the link. The determination result in the character link out-of-character determination unit 19 is sent to the duplication determination unit 20.
  • the overlap determination unit 20 determines whether or not characters overlap based on the determination result sent from the character link out-of-link determination unit 19.
  • the determination result in the duplication determination unit 20 is sent to the parameter update unit 21.
  • the parameter update unit 21 updates parameters used for character string arrangement according to the determination result sent from the duplication determination unit 20.
  • the parameter updated by the parameter update unit 21 is sent to the character number determination unit 22.
  • the character number determination unit 22 refers to the parameter sent from the parameter update unit 21 and determines whether or not the predetermined number of characters has been reached. The determination result in the character number determination unit 22 is sent to the character string arrangement registration unit 15.
  • FIG. 4 is a block diagram showing a detailed configuration of the character arrangement unit 18.
  • the character arrangement unit 18 includes an initial character determination unit 23, a character arrangement position determination unit 24, a character lower left coordinate calculation unit 25, and a next character arrangement distance update unit 26.
  • the initial character determination unit 23 determines whether or not the character arranged based on the link angle sent from the link angle calculation unit 17 is the first character in the character string.
  • the determination result in the initial character determination unit 23 is sent to the character arrangement position determination unit 24 and the character lower left coordinate calculation unit 25.
  • the character arrangement position determination unit 24 determines the character arrangement position according to the determination result sent from the initial character determination unit 23 or according to the lower left coordinates of the character calculated by the character lower left coordinate calculation unit 25.
  • the arrangement position determined by the character arrangement position determination unit 24 is sent to the character arrangement position determination unit 24 or the character lower left coordinate calculation unit 25.
  • the character lower left coordinate calculation unit 25 calculates the lower left coordinate of the character according to the determination result sent from the initial character determination unit 23.
  • the lower left coordinate of the character calculated by the character lower left coordinate calculation unit 25 is sent to the character arrangement position determination unit 24 or the next character arrangement distance update unit 26.
  • the next character arrangement distance update unit 26 determines the distance to the next character based on the lower left coordinates of the character calculated by the lower left character calculation unit 25 and updates the character spacing.
  • the character spacing updated by the next character arrangement distance update unit 26 is sent to the character link out-of-link determination unit 19.
  • FIG. 5 is a flowchart showing the operation of the character string arrangement device.
  • the character string arrangement data includes the width and width of each character in the character string “String” and the road node string along which the character string “String” follows, and the character string “String” in the character string “String”
  • Each character has a vertical width of 10 and a horizontal width of 5.
  • SEPARATE_NUM indicating the number of links when a curve is approximated by a straight line is 2, and it is determined whether to approximate a curve with one link or to approximate a curve with a plurality of links.
  • SEPARATE_THRESHOLD which is the boundary of the distance used, is 15, and STRAIGHT_THRESHOLD, which is the boundary of the angle change used to determine whether the curve is approximated by one link or the curve is approximated by a plurality of links, is 10. It is assumed that CULLING_THRESHOLD, which is a distance boundary for determining whether thinning is possible, is 10, and STEP_SIZE, which is an increment of range, is 1.
  • FIG. 6 shows an example of the relationship between nodes and links in the road node sequence.
  • character string data is acquired (step ST11). That is, the character string arrangement data acquisition unit 2 reads the character string arrangement data from the character string arrangement data storage unit 1 and acquires a road node string along which the character string follows and a character string arrangement start node. In this example, a road node string along which the character string “String” is aligned and a node that starts arrangement of the character string “String” are acquired.
  • step ST12 the road node train is thinned out (step ST12). That is, the road node sequence thinning unit 3 thins out some of the nodes constituting the road node sequence included in the character string arrangement data acquired by the character string arrangement data acquisition unit 2 in order to create a smooth curve. .
  • the road node sequence thinning unit 3 details of the road node sequence thinning process performed by the road node sequence thinning unit 3 will be described with reference to the flowchart shown in FIG.
  • nodes included in the road node sequence are sequentially scanned, and nodes satisfying all the following three conditions are thinned out from the road node sequence.
  • the node is not the placement start node or placement end node of the road node sequence
  • the previous node is not thinned out
  • the distance from the previous node is less than or equal to CULLING_THRESHOLD
  • the variable ir is initialized to 1 (step ST121).
  • the variable ir is equal to or less than the number of road nodes.
  • a loop is started (step ST122).
  • the loop is started, first, it is checked whether or not the node P (ir) is an arrangement start node or an arrangement end node (step ST123). That is, in the road node sequence decimation unit 3, the node P (ir) in the road node sequence included in the character string arrangement data sent from the character string arrangement data acquisition unit 2 is an arrangement start node or an arrangement end node. Find out if.
  • step ST123 If it is determined in step ST123 that the node P (ir) is an arrangement start node or an arrangement end node, the node P (ir) is thinned out because (1) of the above three conditions is not satisfied. Otherwise, the sequence proceeds to step ST127.
  • step ST124 If it is determined in step ST123 that the node P (ir) is not an arrangement start node or an arrangement end node, it is then checked whether the node P (ir-1) has been thinned (step ST124). That is, the road node sequence thinning unit 3 checks whether or not the previous node P (ir-1) has been thinned. In this step ST124, if it is determined that the node P (ir-1) has been thinned out, (2) of the above three conditions is not satisfied, so the thinning out of the node P (ir) is not performed, and the sequence is It progresses to step ST127.
  • step ST124 If it is determined in step ST124 that the node P (ir-1) has not been thinned out, then whether or not the distance between the node P (ir-1) and the node P (ir) is less than or equal to CULLING_THRESHOLD. It is examined (step ST125). That is, the road node sequence thinning unit 3 checks whether the distance between the previous node P (ir-1) and the current node P (ir) is equal to or less than CULLING_THRESHOLD (10 in this example).
  • step ST125 If it is determined in step ST125 that the distance between the node P (ir-1) and the node P (ir) is not less than or equal to CULLING_THRESHOLD, the node P (ir) is not satisfied because (3) of the above three conditions is not satisfied. ) Is not thinned out, and the sequence proceeds to step ST127.
  • step ST125 when it is determined in step ST125 that the distance between the node P (ir-1) and the node P (ir) is less than or equal to CULLING_THRESHOLD, it is recognized that all the above three conditions are satisfied.
  • the node P (ir) is deleted (step ST126). That is, the road node sequence decimation unit 3 decimates the node (ir) in the road node sequence included in the character string arrangement data sent from the character string arrangement data acquisition unit 2. Thereafter, the sequence proceeds to step ST127. In step ST127, the variable ir is incremented. Thereafter, the process between step ST122 and step ST127 is repeated until the variable ir becomes larger than the number of road nodes.
  • the nodes P (1) to P (5) are processed as follows. First, the possibility of thinning out the node P (1) is examined. Here, since the node P (1) is an arrangement start node of the road node row, it is not thinned out. Next, the possibility of thinning out of the node P (2) is examined. Here, the node P (2) is not the arrangement start node or the arrangement end node of the road node row, the previous node P (1) is not thinned, and the nodes P (1) and P (2) The distance between and is 5 and is 10 or less, which is CULLING_THRESHOLD. Accordingly, since all of the above three conditions are satisfied, the node P (2) is thinned out.
  • node P (3) is not a road link arrangement start node or arrangement end node, but the previous node P (2) is thinned out, so the node P (3) is not thinned out.
  • node P (4) and subsequent nodes are processed in the same manner.
  • control point sequence creation unit 4 creates a control point sequence from the road node sequence after thinning.
  • ic 1,..., The number of road nodes after thinning-2.
  • step ST134 the variable ic is incremented, and thereafter, the process between step ST132 and step ST134, that is, the process of step ST133 is repeated until the variable ic becomes larger than “the number of road nodes after thinning ⁇ 2”.
  • the set value of the control point A (ic) varies depending on the value of the variable ic as shown below.
  • ic 1
  • the node P ′ (1) is set at the control point A (ic)
  • the variable ic is “the number of road nodes ⁇ 1”
  • the node P ′ is set at the control point A (ic ⁇ 1).
  • Ic is set.
  • the midpoint of the control points B (ic) and B (ic ⁇ 1) is set to the control point A (ic).
  • a straight line approximating the curve is then created as shown in the flowchart of FIG. 5 (step ST14). That is, the curve approximation unit 5 creates a straight line that approximates a curve from the control point sequence.
  • a curve approximated node sequence details of a process of creating a straight line approximating a curve (hereinafter, a curve approximated node sequence) performed by the curve approximating unit 5 will be described with reference to a flowchart shown in FIG.
  • variable ia is first initialized to 1 (step ST151).
  • a loop is started (step ST153).
  • the loop is started, it is checked whether or not the angle change between the link (A (ia), B (ia)) and the link (B (ia), A (ia + 1)) ⁇ STRAIGHT_THRESHOLD (step ST154). That is, the straight line determination unit 8 determines whether or not a quadratic Bezier curve (hereinafter simply referred to as “Bezier curve”) created by the control points A (ia), B (ia), and A (ia + 1) can be approximated by a straight line. Determine.
  • Bezier curve quadratic Bezier curve
  • the angle change between the link (A (ia), B (ia)) and the link (B (ia), A (ia + 1)) is less than STRAIGHT_THRESHOLD.
  • the variable ia indicates the index of the control point sequence, and the angle change ⁇ between the link (A (ia), B (ia)) and the link (B (ia), A (ia + 1)) is as shown in FIG. , The absolute value of the difference between the direction of the link (A (ia), B (ia)) and the direction of the link (B (ia), A (ia + 1)).
  • the directions of the links (A (ia), B (ia)) are declinations when the x-axis is 0 ° and the y-axis is 90 °.
  • step ST154 If it is determined in step ST154 that the angle change between the link (A (ia), B (ia)) and the link (B (ia), A (ia + 1)) ⁇ STRAIGHT_THRESHOLD, a curve is obtained for one link. Is approximated (step ST155). That is, the singular line approximation unit 12 approximates a Bezier curve created by the control points A (ia), B (ia), and A (ia + 1) with links (A (ia), A (ia + 1)). In this example, a Bezier curve created by control points A (1), B (1) and A (2) is approximated by links (A (1), A (2)).
  • step ST156 node registration is performed (step ST156). That is, the curve approximation node registration unit 7 saves, in the curve approximation node sequence storage unit 6, nodes other than the registered A (1) among the links sent from the single line approximation unit 12 as curve approximation nodes. To do. In this example, control point A (2) is stored. Thereafter, the sequence proceeds to step ST166.
  • step ST154 If it is determined in step ST154 that the angle change between the link (A (ia), B (ia)) and the link (B (ia), A (ia + 1)) ⁇ STRAIGHT_THRESHOLD is not satisfied, the sequence proceeds to step ST157.
  • the straight line determination unit 8 determines the angle between the link (A (2), B (2)) and the link (B (2), A (3)). It is checked whether the change is less than STRIGHT_THRESHOLD.
  • the direction of the link (A (2), B (2)) is 0 ° and the direction of the link (B (2), A (3)) is 135 °.
  • step ST154 it is determined that the angle change between (A (2), B (2)) and the link (B (2), A (3)) is equal to or greater than STRAIGHT_THRESHOLD. Therefore, NO is determined in step ST154, and the sequence proceeds to step ST157, in which processing for approximating the Bezier curve created at control points A (2), B (2) and A (3) with a plurality of straight lines is performed. .
  • step ST157 a point MP (ia) that is an intermediate point on the curve is calculated. That is, the curve midpoint creation unit 9 calculates the point MP (ia) on the Bezier curve according to the following equation (2).
  • step ST158 it is checked whether or not the distance between the point MP (ia) on the curve and the control point A (ia) ⁇ SEPARATE_THRESHOLD (step ST158). That is, the first half curve approximation unit 10 checks whether or not the distance Dist1 between the control point A (ia) obtained by the following equation (3) and the point MP (ia) on the curve is smaller than SEPARATE_THRESHOLD.
  • step ST158 If it is determined in step ST158 that the distance between the point MP (ia) on the curve and the control point A (ia) is smaller than SEPARATE_THRESHOLD, the curve is approximated by one link (step ST159). . That is, the singular line approximation unit 12 approximates a Bezier curve between the control point A (ia) and the point MP (ia) on the curve with one link (A (ia), MP (ia)).
  • step ST160 node registration is performed (step ST160). That is, the curve approximation node registration unit 7 stores the node approximated by one link sent from the single line approximation unit 12 in the curve approximation node sequence storage unit 6. Thereafter, the sequence proceeds to step ST162.
  • step ST158 when it is determined in step ST158 that the distance between the point MP (ia) on the curve and the control point A (ia) is not ⁇ PARATE_THRESHOLD, that is, it is determined that the distance Dist1 is greater than or equal to SEPARATE_THRESHOLD. Then, the Bezier curve between the control point A (ia) and the point MP (ia) on the curve is approximated by the number of links indicated by SEPARATE_NUM (step ST161).
  • step ST161 Details of the processing performed in step ST161 will be described with reference to the flowchart shown in FIG. In this process, first, the variable im is initialized to 1 (step ST171). Next, if the variable im is equal to or less than SEPARATE_NUM, a loop is started (step ST172). When the loop is started, first, a node on the curve is calculated (step ST173). That is, the first-half curve approximation unit 10 calculates a node on the curve between the point MP (ia) on the curve and the control point A (ia) according to the following equation (4).
  • t (im) in the equation (4) is a value shown in the equation (5)
  • BP (ia, im) is between the control point A (ia) and the point MP (ia) on the curve. This is the im-th node created on the Bezier curve.
  • step ST174 node registration is performed (step ST174). That is, the curve approximation node registration unit 7 registers, in the curve approximation node sequence storage unit 6, nodes on the curve other than the nodes already registered among the nodes calculated by the first half curve approximation unit 10. Subsequently, the variable im is incremented, and thereafter, the process between step ST172 and step ST175 is repeated until the variable im becomes larger than SEPARATE_NUM. In this iterative process, when the variable im becomes larger than SEPARATE_NUM, the sequence proceeds to step ST162 shown in FIG.
  • Dist1 is 11.18, which is less than or equal to SEPARATE_THRESHOLD. Therefore, the curve between the control point A (2) and the point MP (2) on the curve is approximated by the link (A (2), MP (2)). In this case, in node registration, the point MP (2) on the curve is saved.
  • step ST162 it is checked whether or not the distance between the point MP (ia) on the curve and the control point A (ia + 1) is smaller than SEPARATE_THRESHOLD. That is, the second half curve approximation unit 11 checks whether the distance Dist2 between the point MP (ia) on the curve calculated according to the following equation (6) and the control point A (ia + 1) is smaller than SEPARATE_THRESHOLD.
  • step ST162 If it is determined in step ST162 that the distance between the point MP (ia) on the curve and the control point A (ia + 1) is smaller than SEPARATE_THRESHOLD, the curve is approximated by one link (step ST163). . That is, the singular line approximation unit 12 approximates a Bezier curve between a point MP (ia) on the curve and a control point A (ia + 1) with one link (MP (ia), A (ia)).
  • step ST164 node registration is performed (step ST164). That is, the curve approximation node registration unit 7 stores the node approximated by one link sent from the single line approximation unit 12 in the curve approximation node sequence storage unit 6. Thereafter, the sequence proceeds to step ST166.
  • step ST162 determines whether the distance between the point MP (ia) on the curve and the control point A (ia + 1) ⁇ SEPARATE_THRESHOLD, that is, the distance Dist2 is greater than or equal to SEPARATE_THRESHOLD.
  • a Bezier curve between MP (ia) and control point A (ia + 1) is approximated by the number of links indicated by SEPARATE_NUM (step ST165). Thereafter, the sequence proceeds to step ST166.
  • step ST165 Details of the processing performed in step ST165 will be described with reference to the flowchart shown in FIG. In this process, first, the variable im is initialized to 1 (step ST171). Next, if the variable im is equal to or lower than SEPARATE_NUM, a loop is started (step ST172). When the loop is started, first, a node on the curve is calculated (step ST173). That is, the first half curve approximation unit 10 calculates a node on the curve between the point MP (ia) on the curve and the control point A (ia) according to the above equation (4).
  • t (im) in the equation (4) is a value shown in the equation (7)
  • BP (ia, im) at this time is a point MP (ia) on the curve and a control point A (ia + 1). Is the im-th node created on the Bezier curve.
  • step ST174 node registration is performed (step ST174). That is, the curve approximation node registration unit 7 registers, in the curve approximation node sequence storage unit 6, nodes on the curve other than the already registered nodes among the nodes calculated by the second half curve approximation unit 11. Subsequently, the variable im is incremented, and thereafter, the process between step ST172 and step ST175 is repeated until the variable im becomes larger than SEPARATE_NUM. Thereafter, the sequence proceeds to step ST166.
  • step ST166 the variable ia is incremented, and the process between step ST153 and step ST166 is repeated until the variable ia becomes larger than “the number of road nodes after thinning ⁇ 2”. In this way, curve approximation nodes obtained by linear approximation of the curve created from the control point sequence are sequentially stored in the curve approximation node sequence storage unit 6.
  • the first half curve approximation unit 10 and the second half curve approximation unit 11 are the same processing except for the calculation method of t (im), and therefore between the MP (ia) and the control point A (ia) of the first half curve approximation unit 10. Is equal to or greater than SEPARATE_THRESHOLD and the distance between MP (ia) and the control point A (ia + 1) of the second-half curve approximation unit 11 is equal to or greater than SEPARATE_THRESHOLD.
  • character string data is acquired (step ST15). That is, the character string arrangement data acquisition unit 2 reads the character string arrangement data from the character string arrangement data storage unit 1 and acquires a plurality of characters constituting one character string and the vertical width and horizontal width of each character. In this case, the characters “S”, “t”, “r”, “i”, “n”, “g” of the character string “String”, and the vertical and horizontal widths of each character in “String” are acquired. Is done.
  • a curve approximate node sequence is acquired (step ST16). That is, the curve approximation node sequence acquisition unit 13 acquires a curve approximation node sequence from the curve approximation node sequence storage unit 6.
  • step ST17 character strings are arranged. That is, the character string arrangement calculation unit 14 arranges a character string.
  • the character string arrangement calculation unit 14 arranges a character string.
  • a loop is started (step ST182).
  • an infinite loop is further started in this loop (step ST183).
  • the is-th character (hereinafter referred to as “character is”) is arranged (step ST185). That is, the character placement unit 18 determines the placement of the character is based on the link direction ⁇ ′ and the character spacing range.
  • the details of the character arrangement process for determining the arrangement of the character is will be described with reference to the flowchart shown in FIG.
  • the character arrangement position determining unit 24 arranges the character is at the node P ′′ (1) and ends the character arrangement process within the character link. More specifically, first, the lower left of the character is The coordinate LD (is) is set to the node P ′′ (1) (step ST201). That is, the character arrangement position determining unit 24 sets the lower left coordinate LD (is) of the character is to the node P ′′ (1).
  • the character arrangement position determination unit 24 arranges the character is at the lower left coordinate LD (is) of the character is.
  • the character arrangement means that the lower left coordinate LD (is) of the character is is set to the node P ′′ (1), and then the upper left coordinate LT (is), the lower right coordinate RD (is), and the upper right coordinate RT of the character is.
  • (Is) refers to processing for setting the value obtained by the following equation (8), where W (is) and H (is) in equation (8) indicate the horizontal and vertical widths of the character is, respectively.
  • step ST200 If it is determined in step ST200 that is not equal to 1, the lower left coordinate LD (is) at a position separated by the range from the lower left coordinate LD (is-1) of the character is-1 is calculated (step ST203). ).
  • step ST204 it is checked whether the lower left coordinate LD (is) of the character is is within the link (step ST204). If it is determined in step ST204 that the lower left coordinate LD (is) of the character is is within the link, the character is is placed at the lower left coordinate LD (is) of the character is (step ST205). That is, the character arrangement position determination unit 24 arranges the character is at the lower left coordinate LD (is) of the character is, and ends the character arrangement process within the character link.
  • step ST204 When it is determined in step ST204 that the lower left coordinate LD (is) of the character is is not within the link, the distance from the lower left coordinate LD (is) of the character is to the node P (ip + 1) is set as a range (step ST206). Thereafter, the character placement process is terminated outside the character link.
  • step ST186 it is then checked whether or not the character is is outside the link as shown in FIG. 16 (step ST186). That is, the character link out-of-link determining unit 19 determines whether the arrangement result in the character arrangement position determining unit 24 is out of the character link. If it is determined in this step ST186 that the character is is in the link, an overlap with the character is-1 is determined (step ST187). That is, the duplication determination unit 20 determines whether or not the character is and the character is ⁇ 1 are overlapping.
  • step ST186 range is set to the distance between the node P ′′ (ip + 1) and the lower left coordinate LD (is) (step ST193).
  • the parameter update unit 21 sets the range to the distance between the node P ′′ (ip + 1) and the lower left coordinate LD (is). Thereafter, the sequence proceeds to step ST194 and exits the infinite loop. Thereafter, in step ST194, ip is incremented, and the process between step ST182 and step ST194 is repeated.
  • the character placement unit 18 proceeds to the process of placing the character is. In this process, it is determined that is not 1 in step ST200.
  • the lower left coordinate LD (is) of the character is is obtained by the lower left character calculation unit 25. That is, the character lower left coordinate calculation unit 25 obtains a position that is far from the lower left coordinate LD (is-1) of the character is-1 by the following equation (9), and sets it as the lower left coordinate LD (is) of the character is.
  • the character arrangement position determination unit 24 performs the lower left coordinate in the same manner as described above.
  • the upper left coordinate LT (2), the lower right coordinate RD (2), and the upper right coordinate RT (2) other than the coordinate LD (2) are calculated, and then the process is terminated within the character link.
  • LT (2) (5, 20)
  • RD (2) (10, 10)
  • RT (2) (10, 20)
  • step ST186 it is determined by the character link out-of-link determining unit 19 that the character is is in the link, and then in step ST187, the overlap determining unit 20 determines the overlap with the character is-1.
  • the character arranging unit 18 arranges the character 2 as described above.
  • the duplication judgment unit 20 judges the duplication of the character is and the character is-1.
  • the parameter update unit 21 proceeds to the process of updating the parameter.
  • a character string as shown in FIG. 20 is arranged.
  • the character 6 is placed on the link (P ′′ (1), P ′′ (2)).
  • the character lower left coordinate calculation unit 25 calculates the character lower left coordinate.
  • the lower left coordinate LD (6) (34, 10).
  • the distance 4 between the range of the range from the lower left coordinate LD (6) to the node P ′′ (2), ip is It is updated from 1 to 2, and the processing is terminated outside the character link, and then the processing is terminated outside the character link, so that the character is placed in the next link.
  • the link (P ′′ (2), P "(3)) character 6 is arranged.
  • the character string can be arranged so that the change in the character arrangement angle is smaller than that in the past.
  • the change in the character angle can be reduced as compared with the conventional case, the character string can be easily recognized.
  • the curve created from the road link is configured to approximate a plurality of straight lines, the distance calculation on the curve can be omitted when determining the position of the character, compared with the technique disclosed in Patent Document 1.
  • the character position can be determined at high speed.
  • any component of the embodiment can be modified or any component of the embodiment can be omitted within the scope of the invention.
  • This invention improves the readability of character strings and can perform character positioning at high speed, and is therefore suitable for map display performed in a car navigation system or a portable device.
  • 1 character string arrangement data storage unit 1 character string arrangement data storage unit, 2 character string arrangement data acquisition unit, 3 road node sequence thinning unit, 4 control point sequence creation unit, 5 curve approximation unit, 6 curve approximation node sequence storage unit, 7 curve approximation node registration unit, 8 straight line determination unit, 9 curve halfway point creation unit, 10 first half curve approximation unit, 11 second half curve approximation unit, 12 single straight line approximation unit, 13a character string arrangement processing unit, 13 curve approximation node sequence acquisition unit, 14 character string arrangement Calculation unit, 15 character string arrangement registration unit, 16 output character string arrangement storage unit, 17 link angle calculation unit, 18 character arrangement unit, 19 non-character link determination unit, 20 duplication determination unit, 21 parameter update unit, 22 character number determination unit , 23 initial character determination unit, 24 character arrangement position determination unit, 25 character lower left coordinate calculation unit, 26 next character arrangement distance update unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Educational Technology (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Navigation (AREA)
  • Processing Or Creating Images (AREA)
  • Instructional Devices (AREA)

Abstract

 この発明に係る文字列配置装置は、文字列を道路に沿って配置するための文字列配置データを取得する文字列配置データ取得部2と、文字列配置データ取得部2で取得された文字列配置データに含まれる道路ノード列を構成するノードの一部を間引きする道路ノード列間引き部3と、道路ノード列間引き部3で間引きされた後の道路ノード列から制御点列を作成する制御点列作成部4と、制御点列作成部4で作成された制御点列による曲線を直線で近似したノード列を作成する曲線近似部5と、曲線近似部5で作成されたノード列を曲線近似ノード列として保存する曲線近似ノード列記憶部6と、曲線近似ノード列記憶部6に保存された曲線近似ノード列に基づき文字列の配置処理を行う文字列配置処理部13aを備えている。

Description

文字列配置装置
 この発明は、地図上に道路名称等の文字列を配置する文字列配置装置に関する。
 従来、道路名称等の文字列を、文字列の配置を開始するノード(以下、「配置開始ノード」という)から、道路線(以下、「道路ノード列」という)に沿って文字列を配置する文字列配置機能を搭載したカーナビゲーションシステムが知られている(例えば、特許文献1~特許文献3参照)。この文字列配置機能を用いれば、道路と平行に文字が配置されるので、2つのリンクに跨った文字列を配置する場合、道路リンクの角度変化(以下、「道路角度変化」という)と、文字の配置角度の変化(以下、「文字角度変化」という)が等しくなる。
特開2008-76593号公報 特開2000-29450号公報 特開平6-259525号公報
 上述した従来の文字列配置装置における文字列配置機能を用いて表示された文字列は、道路角度変化と文字角度変化が等しいので、道路角度変化が大きくなるに連れて文字角度変化も大きくなり、文字列の可読性が低下するという問題がある。
 この発明は、この問題を解決するためになされたものであり、文字列の可読性を向上させた文字列配置装置を提供することを課題とする。
 この発明に係る文字列配置装置は、文字列を道路に沿って配置するための文字列配置データを取得する文字列配置データ取得部と、文字列配置データ取得部で取得された文字列配置データに含まれる道路ノード列を構成するノードの一部を間引きする道路ノード列間引き部と、道路ノード列間引き部で間引きされた後の道路ノード列から制御点列を作成する制御点列作成部と、制御点列作成部で作成された制御点列による曲線を直線で近似したノード列を作成する曲線近似部と、曲線近似部で作成されたノード列を曲線近似ノード列として保存する曲線近似ノード列記憶部と、曲線近似ノード列記憶部に保存された曲線近似ノード列に基づき文字列の配置処理を行う文字列配置処理部を備えている。
 この発明に係る文字列配置装置によれば、道路リンクから作成した曲線上に文字列を配置することにより文字角度変化を小さくできるので、文字列の可読性を向上させることができる。
この発明の実施の形態1に係る文字列配置装置の構成を示すブロック図である。 この発明の実施の形態1に係る文字列配置装置の曲線近似部の詳細な構成を示すブロック図である。 この発明の実施の形態1に係る文字列配置装置の文字列配置算出部の詳細な構成を示すブロック図である。 この発明の実施の形態1に係る文字列配置装置の文字配置部の詳細な構成を示すブロック図である。 この発明の実施の形態1に係る文字列配置装置の動作を示すフローチャートである。 この発明の実施の形態1に係る文字列配置装置において処理対象とされる道路ノード列中のノードとリンクの関係の例を示す図である。 この発明の実施の形態1に係る文字列配置装置の道路ノード列間引き部で行われる道路ノード列の間引き処理を示すフローチャートである。 この発明の実施の形態1に係る文字列配置装置において行われた間引き処理後の道路ノード列中のノードとリンクの関係の例を示す図である。 この発明の実施の形態1に係る文字列配置装置における間引き処理後に処理対象とされる道路ノード列中のノードとリンクの関係の例を示す図である。 この発明の実施の形態1に係る文字列配置装置の制御点列作成部で行われる制御点列の作成処理を示すフローチャートである。 この発明の実施の形態1に係る文字列配置装置の制御点列作成部で行われる制御点列の作成処理で求められた制御点列の例を示す図である。 この発明の実施の形態1に係る文字列配置装置の曲線近似部で行われる曲線近似ノード列の作成処理を示すフローチャートである。 この発明の実施の形態1に係る文字列配置装置で行われる曲線近似ノード列の作成処理を説明するための説明図である。 この発明の実施の形態1に係る文字列配置装置で行われる曲線近似ノード列の作成処理の一部を詳細に示すフローチャートである。 この発明の実施の形態1に係る文字列配置装置で曲線近似後に取得される曲線近似ノード列と道路ノード列の関係を示す図である。 この発明の実施の形態1に係る文字列配置装置の文字列配置算出部で行われる文字列配置処理を示すフローチャートである。 この発明の実施の形態1に係る文字列配置装置の文字配置部で行われる文字配置処理の詳細を示すフローチャートである。 この発明の実施の形態1に係る文字列配置装置で行われる文字の配置処理を説明するための図である。 この発明の実施の形態1に係る文字列配置装置で行われる文字の配置処理を説明するための図である。 この発明の実施の形態1に係る文字列配置装置で行われる文字の配置処理により配置された文字列を説明するための図である。 この発明の実施の形態1に係る文字列配置装置で行われる文字の配置処理により配置された文字列を説明するための図である。
 以下、この発明の実施の形態を、図面を参照しながら詳細に説明する。
実施の形態1.
 図1は、この発明の実施の形態1に係る文字列配置装置の構成を示すブロック図である。この文字列配置装置は、文字列配置データ記憶部1、文字列配置データ取得部2、道路ノード列間引き部3、制御点列作成部4、曲線近似部5、曲線近似ノード列記憶部6および文字列配置処理部13aを備えており、さらに、文字列配置処理部13aは、曲線近似ノード列取得部13、文字列配置算出部14、文字列配置登録部15および出力文字列配置記憶部16を備えている。
 文字列配置データ記憶部1は、文字列配置データを記憶する。文字列配置データは、文字列を構成する複数の文字、各文字の縦幅および横幅、文字列が沿う道路ノード列および文字列の配置開始ノードを表すデータを含む。文字列配置データ記憶部1に記憶されている文字列配置データは、文字列配置データ取得部2によって読み出される。
 文字列配置データ取得部2は、文字列配置データ記憶部1から文字列配置データを読み出して取得する。この文字列配置データ取得部2で取得された文字列配置データは、道路ノード列間引き部3に送られる。
 道路ノード列間引き部3は、文字列配置データ取得部2から送られてきた文字列配置データに含まれる道路ノード列を構成するノードの一部を間引きする。この道路ノード列間引き部3でノードの一部が間引きされた後の道路ノード列は、制御点列作成部4に送られる。この道路ノード列間引き部3における間引きによって、文字列の軌跡を滑らかにすることができる。
 制御点列作成部4は、道路ノード列間引き部3から送られてきた、文字列が沿う道路ノード列から曲線を生成するための制御点列を作成する。この制御点列作成部4で作成された制御点列は、曲線近似部5に送られる。
 曲線近似部5は、制御点列作成部4から送られてきた制御点列から曲線を作成し、この作成した曲線を直線近似してノード列を生成する。この曲線近似部5で生成されたノード列は、曲線近似ノード列として曲線近似ノード列記憶部6に送られる。この曲線近似部5において道路リンクから作成される曲線を直線で近似することにより、文字配置を高速化することができる。この曲線近似部5の詳細については後述する。
 曲線近似ノード列記憶部6は、曲線近似部5から送られてきた曲線近似ノード列を保存する。この曲線近似ノード列記憶部6に保存されている曲線近似ノード列は、曲線近似ノード列取得部13によって読み出される。曲線近似ノード列取得部13は、曲線近似ノード列記憶部6から曲線近似ノード列を読み出して取得する。この曲線近似ノード列取得部13で取得された曲線近似ノード列は、文字列配置算出部14に送られる。
 文字列配置算出部14は、曲線近似ノード列取得部13から送られてきた曲線近似ノード列に基づき文字列の配置位置を算出する。この文字列配置算出部14によって算出された文字列の配置位置は、文字列配置登録部15に送られる。この文字列配置算出部14の詳細については後述する。
 文字列配置登録部15は、文字列配置算出部14から送られてきた文字列の配置位置を、該文字列配置算出部14から送られてきた判定結果が既定の文字数に達したことを示している場合に、出力文字列配置記憶部16に登録する。出力文字列配置記憶部16は、文字列配置登録部15によって登録された文字列の配置位置を記憶する。
 次に、上述した曲線近似部5の詳細を説明する。図2は、曲線近似部5の詳細な構成を示すブロック図である。曲線近似部5は、曲線近似ノード登録部7、直線判定部8、曲線上中間点作成部9、前半曲線近似部10、後半曲線近似部11および単数直線近似部12を備えている。
 曲線近似ノード登録部7は、後半曲線近似部11または単数直線近似部12から送られてきた曲線近似ノード列を曲線近似ノード列記憶部6に登録する。直線判定部8は、制御点列作成部4から送られてきた制御点列から作成される曲線が直線で近似できるか否か、換言すれば、直線に近いか否かを判定する。この直線判定部8において直線に近くないことが判断されるとシーケンスは曲線上中間点作成部9での処理に移り、直線に近いことが判断されると単数直線近似部12での処理に移る。
 曲線上中間点作成部9は、制御点列作成部4から送られてきた制御点列から作成される曲線上の中間点を作成する。この曲線上中間点作成部9で作成された中間点は、前半曲線近似部10および後半曲線近似部11に送られる。前半曲線近似部10は、制御点列作成部4から送られてきた制御点列から作成される曲線のうち、曲線上中間点作成部9から送られてきた中間点より前の曲線を直線で近似する。この前半曲線近似部10における直線近似によって作成されたノード列は、後半曲線近似部11に送られる。
 後半曲線近似部11は、制御点列作成部4から送られてきた制御点列から作成される曲線のうち、曲線上中間点作成部9から送られてきた中間点より後の曲線を直線で近似する。この後半曲線近似部11における直線近似によって作成されたノード列は、前半曲線近似部10から送られてくるノード列に繋げられ、曲線近似ノード列として曲線近似ノード登録部7に送られる。
 単数直線近似部12は、制御点列作成部4から送られてきた制御点列から作成される曲線を1本の直線で近似する。この単数直線近似部12において直線近似によって作成されたノード列は、曲線近似ノード列として曲線近似ノード登録部7に送られる。
 次に、上述した文字列配置算出部14の詳細を説明する。図3は、文字列配置算出部14の詳細な構成を示すブロック図である。文字列配置算出部14は、リンク角度算出部17、文字配置部18、文字リンク外判定部19、重複判定部20、パラメータ更新部21および文字数判定部22を備えている。
 リンク角度算出部17は、曲線近似ノード列取得部13から送られてくる曲線近似ノード列に基づいて、各ノードにおいてリンクが形成する角度(以下、「リンク角度」という)を算出する。このリンク角度算出部17で算出されたリンク角度は、文字配置部18に送られる。
 文字配置部18は、リンク角度算出部17から送られてきたリンク角度に基づき文字を配置する。この文字配置部18で配置された文字は、文字リンク外判定部19に送られる。この文字配置部18の詳細は、後述する。文字リンク外判定部19は、文字配置部18から送られてきた文字がリンク外であるか否かを判定する。この文字リンク外判定部19における判定結果は、重複判定部20に送られる。
 重複判定部20は、文字リンク外判定部19から送られてくる判定結果に基づき、文字同士が重複するか否かを判定する。この重複判定部20における判定結果は、パラメータ更新部21に送られる。パラメータ更新部21は、重複判定部20から送られてきた判定結果に従って、文字列配置に使用されるパラメータを更新する。このパラメータ更新部21で更新されたパラメータは、文字数判定部22に送られる。
 文字数判定部22は、パラメータ更新部21から送られてきたパラメータを参照し、既定の文字数に達したか否かを判定する。この文字数判定部22における判定結果は、文字列配置登録部15に送られる。
 次に、上述した文字配置部18の詳細を説明する。図4は、文字配置部18の詳細な構成を示すブロック図である。文字配置部18は、初期文字判定部23、文字配置位置決定部24、文字左下座標算出部25および次文字配置距離更新部26を備えている。
 初期文字判定部23は、リンク角度算出部17から送られてくるリンク角度に基づいて配置された文字が文字列中の1番目の文字であるか否かを判定する。この初期文字判定部23における判定結果は、文字配置位置決定部24および文字左下座標算出部25に送られる。
 文字配置位置決定部24は、初期文字判定部23から送られてきた判定結果に応じて、または、文字左下座標算出部25で算出された文字の左下座標に応じて文字の配置位置を決める。この文字配置位置決定部24で決められた配置位置は、文字配置位置決定部24または文字左下座標算出部25に送られる。
 文字左下座標算出部25は、初期文字判定部23から送られてきた判定結果に応じて、文字の左下座標を算出する。文字左下座標算出部25で算出された文字の左下座標は、文字配置位置決定部24または次文字配置距離更新部26に送られる。次文字配置距離更新部26は、文字左下座標算出部25で算出された文字の左下座標に基づき、次の文字までの距離を決め、文字間隔を更新する。この次文字配置距離更新部26で更新された文字間隔は、文字リンク外判定部19に送られる。
 次に、上記のように構成される実施の形態1に係る文字列配置装置の動作を説明する。図5は、文字列配置装置の動作を示すフローチャートである。
 実施の形態1では、一例として、文字列配置データは、文字列『String』中の各文字の横幅、縦幅および文字列『String』が沿う道路ノード列を含み、文字列『String』中の各文字の縦幅は10、横幅は5であり、文字列『String』が沿う道路ノード列はP(1)=(0,10)、P(2)=(5,10)、P(3)=(10,10)、P(4)=(50,10)およびP(5)=(10,50)であり、文字列の配置を開始するノードはP(1)=(0,10)であるものとして説明する。
 また、詳細は後述するが、曲線を直線近似する場合のリンクの本数を示すSEPARATE_NUMは2であり、1本のリンクで曲線を近似するか複数のリンクで曲線を近似するか否かの判断に用いられる距離の境界であるSEPARATE_THRESHOLDは15であり、1本のリンクで曲線を近似するか複数のリンクで曲線を近似するか否かの判断に用いられる角度変化の境界であるSTRAIGHT_THRESHOLDは10であり、間引きの可否を判断する距離の境界であるCULLING_THRESHOLDは10であり、rangeの増分であるSTEP_SIZEは1であるものとする。図6は、道路ノード列中のノードとリンクの関係の例を示している。
 文字列配置装置の動作が開始されると、まず、文字列データが取得される(ステップST11)。すなわち、文字列配置データ取得部2は、文字列配置データ記憶部1から文字列配置データを読み出し、文字列が沿う道路ノード列と文字列の配置開始ノードを取得する。この例では、文字列『String』が沿う道路ノード列と、文字列『String』の配置を開始するノードが取得される。
 次いで、道路ノード列の間引きが行われる(ステップST12)。すなわち、道路ノード列間引き部3は、滑らかな曲線を作成するために、文字列配置データ取得部2で取得された文字列配置データに含まれる道路ノード列を構成するノードの一部を間引きする。ここで、道路ノード列間引き部3で行われる道路ノード列の間引き処理の詳細を、図7に示すフローチャートを参照しながら説明する。
 道路ノード列の間引き処理では、道路ノード列に含まれるノードが順々に走査され、以下の3つの条件の全て満たすノードが道路ノード列から間引かれる。
(1)ノードが道路ノード列の配置開始ノードまたは配置終了ノードでない
(2)前のノードを間引きしていない
(3)前のノードとの距離がCULLING_THRESHOLD以下である
 道路ノード列の間引き処理が開始されると、まず、変数irが1に初期化される(ステップST121)。次いで、変数irが道路ノード数以下であればループが開始される(ステップST122)。ループが開始されると、まず、ノードP(ir)は配置開始ノードまたは配置終了ノードであるかどうかが調べられる(ステップST123)。すなわち、道路ノード列間引き部3は、文字列配置データ取得部2から送られてきた文字列配置データに含まれる道路ノード列の中のノードP(ir)が配置開始ノードまたは配置終了ノードであるかどうかを調べる。このステップST123において、ノードP(ir)は配置開始ノードまたは配置終了ノードであることが判断されると、上記3つの条件のうちの(1)が満たされないのでノードP(ir)の間引きは行われず、シーケンスはステップST127に進む。
 上記ステップST123において、ノードP(ir)は配置開始ノードまたは配置終了ノードでないことが判断されると、次いで、ノードP(ir-1)が間引きされたかどうかが調べられる(ステップST124)。すなわち、道路ノード列間引き部3は、1つ前のノードP(ir-1)を間引きしたかどうかを調べる。このステップST124において、ノードP(ir-1)が間引きされたことが判断されると、上記3つの条件のうちの(2)が満たされないのでノードP(ir)の間引きは行われず、シーケンスはステップST127に進む。
 上記ステップST124において、ノードP(ir-1)が間引きされていないことが判断されると、次いで、ノードP(ir-1)とノードP(ir)との距離がCULLING_THRESHOLD以下であるかどうかが調べられる(ステップST125)。すなわち、道路ノード列間引き部3は、前のノードP(ir-1)と現在のノードP(ir)との間の距離がCULLING_THRESHOLD(この例では10)以下であるかどうかを調べる。このステップST125において、ノードP(ir-1)とノードP(ir)との距離がCULLING_THRESHOLD以下でないことが判断されると、上記3つの条件のうちの(3)が満たされないのでノードP(ir)の間引きは行われず、シーケンスはステップST127に進む。
 一方、ステップST125において、ノードP(ir-1)とノードP(ir)との距離がCULLING_THRESHOLD以下であることが判断されると、上記3つの条件の全てが満たされた旨が認識され、次いで、ノードP(ir)の削除が行われる(ステップST126)。すなわち、道路ノード列間引き部3は、文字列配置データ取得部2から送られてきた文字列配置データに含まれる道路ノード列の中のノード(ir)を間引きする。その後、シーケンスはステップST127に進む。ステップST127では、変数irがインクリメントされ、以下、変数irが道路ノード数より大きくなるまでステップST122とステップST127との間の処理が繰り返される。
 以上の繰り返し処理により、ノードP(1)~P(5)は次のように処理される。まず、ノードP(1)の間引きの可否が検討される。ここで、ノードP(1)は道路ノード列の配置開始ノードであるので、間引きされない。次に、ノードP(2)の間引きの可否が検討される。ここで、ノードP(2)は道路ノード列の配置開始ノードまたは配置終了ノードでなく、前のノードP(1)は間引きされておらず、且つ、ノードP(1)とノードP(2)との間の距離は5でありCULLING_THRESHOLDである10以下である。したがって、上記3つの条件の全てが満たされるので、ノードP(2)は間引きされる。
 次に、ノードP(3)の間引きの可否が検討される。ここで、ノードP(3)は道路リンクの配置開始ノードまたは配置終了ノードではないが、前のノードP(2)が間引きされているので、ノードP(3)は間引きされない。以下同様にして、ノードP(4)以降も処理される。
 以上の処理の結果、図8に示すように、ノードP(2)が間引かれた道路ノード列、つまり、ノードP(1)、P(3)、P(4)およびP(5)で構成される道路ノード列が作成される。ここで、図9に示すように、間引き後の道路ノード列P(1)、P(3)、P(4)およびP(5)を、それぞれP’(1)、P’(2)、P’(3)およびP’(4)として、以降の処理を説明する。
 以上の道路ノード列の間引き処理が終了すると、次いで、図5のフローチャートに示すように、制御点列が作成される(ステップST13)。すなわち、制御点列作成部4は、間引き後の道路ノード列から制御点列を作成する。ここで、制御点列の作成処理の詳細を、図10に示すフローチャートを参照しながら説明する。
 制御点列の作成処理では、まず、制御点列B(ic){ic=1,…,間引き後の道路ノード数-2}が設定される。詳しくは、まず、変数icが1に初期化される(ステップST131)。次いで、変数icが「間引き後の道路ノード数-2」以下であればループが開始される(ステップST132)。ループが開始されると、下記(1)式に従って制御点B(ic)が計算される(ステップST133)。その後、シーケンスはステップST134に進む。
Figure JPOXMLDOC01-appb-I000001
ここで、ic=1,…,間引き後の道路ノード数-2である。
 ステップST134では、変数icがインクリメントされ、以下、変数icが「間引き後の道路ノード数-2」より大きくなるまでステップST132とステップST134との間の処理、つまりステップST133の処理が繰り返される。
 以上の繰り返し処理においては、間引き後の道路ノード数=4であり、制御点B(1)=P’(2)=(10,10)および制御点B(2)=P’(3)=(50,10)が得られる。
 次いで、制御点列A(ic){ic=1,…,間引き後の道路ノード数-1}が設定される。詳しくは、まず、変数icが1に初期化される(ステップST135)。次いで、変数icが「間引き後の道路ノード数-1」以下であればループが開始される(ステップST136)。ループが開始されると、まず、変数icが1であるかどうかが調べられる(ステップST137)。このステップST137において、変数icが1であることが判断されると、次いで、制御点A(ic)=P’(ic)が設定される(ステップST138)。その後、シーケンスはステップST142に進む。
 上記ステップST137において、変数icが1でないことが判断されると、次いで、変数icが「道路ノード数-1」であるかどうかが調べられる(ステップST139)。このステップST139において、変数icが「道路ノード数-1」であることが判断されると、制御点A(ic-1)=P’(ic)に設定される(ステップST140)。その後、シーケンスはステップST142に進む。
 一方、ステップST139において、変数icが「道路ノード数-1」でないことが判断されると、制御点A(ic)=(B(ic-1)+B(ic))/2に設定される(ステップST141)。その後、シーケンスはステップST142に進む。ステップST142では、変数icがインクリメントされ、以下、変数icが「間引き後の道路ノード数-1」より大きくなるまでステップST136とステップST142との間の処理が繰り返される。
 以上の繰り返し処理により、制御点A(ic)は、以下に示すように、変数icの値によって設定値が変化する。まず、ic=1の場合、制御点A(ic)にノードP’(1)が設定され、変数icが「道路ノード数-1」の場合、制御点A(ic-1)にノードP’(ic)が設定される。変数icが1でも「間引き後の道路ノード数-1」でもない場合、制御点A(ic)に制御点B(ic)とB(ic-1)の中点が設定される。
 以上の処理の結果、まず、制御点A(1)が設定される。制御点A(1)は、ic=1であるので、ノードP’(1)が設定される。次に、制御点A(2)が設定される。制御点A(2)は、ic≠1,3であるので、制御点B(1)とB(2)の中点(30,10)となる。その後、制御点A(3)が設定される。制御点A(3)は、ic=3であるので、ノードP’(4)が設定される。このようにして、図11に示すように、制御点列A(1)、A(2)およびA(3)と、制御点列B(1)およびB(2)が求められる。
 以上の制御点列の作成処理が終了すると、次いで、図5のフローチャートに示すように、曲線を近似した直線が作成される(ステップST14)。すなわち、曲線近似部5は、制御点列から、曲線を近似した直線を作成する。ここで、曲線近似部5で行われる曲線を近似した直線(以下、曲線近似ノード列)の作成処理の詳細を、図12に示すフローチャートを参照しながら説明する。
 曲線近似ノード列の作成処理では、まず、変数iaが1に初期化される(ステップST151)。次いで、ノードの登録が行われる(ステップST152)。すなわち、曲線近似ノード登録部7は、制御点A(1)を曲線近似ノード列記憶部6に保存する。この場合、A(1)=(0,10)が曲線近似ノード列記憶部6に保存される。
 次いで、変数iaが「間引き後の道路ノード数-2」以下であればループが開始される(ステップST153)。ループが開始されると、リンク(A(ia)、B(ia))とリンク(B(ia)、A(ia+1))の角度変化<STRAIGHT_THRESHOLDであるか否かが調べられる(ステップST154)。すなわち、直線判定部8は、制御点A(ia)、B(ia)およびA(ia+1)によって作成される2次ベジエ曲線(以後、単に「ベジエ曲線」という)が直線で近似できるか否かを判定する。具体的には、まず、リンク(A(ia),B(ia))とリンク(B(ia),A(ia+1))の角度変化がSTRAIGHT_THRESHOLD未満か否かを判定する。なお、変数iaは制御点列のインデックスを示し、リンク(A(ia),B(ia))とリンク(B(ia),A(ia+1))の角度変化θは、図13に示すように、リンク(A(ia),B(ia))の向きとリンク(B(ia),A(ia+1))の向きの差分の絶対値である。ここで、リンク(A(ia),B(ia))の向きは、x軸を0°、y軸を90°とした時の偏角である。
 この例では、変数icが1の場合は、図11に示すように、リンク(A(1),B(1))の向きは0°となり、リンク(B(1),A(2))の向きも0°となる。したがって、リンク(A(1),B(1))とリンク(B(1),A(2))の角度変化は0°となり、ステップST154ではYESと判定される。
 上記ステップST154において、リンク(A(ia)、B(ia))とリンク(B(ia)、A(ia+1))の角度変化<STRAIGHT_THRESHOLDであることが判断されると、1本のリンクで曲線が近似される(ステップST155)。すなわち、単数直線近似部12は、制御点A(ia)、B(ia)およびA(ia+1)で作成されるベジエ曲線をリンク(A(ia),A(ia+1))で近似する。この例では、制御点A(1)、B(1)およびA(2)で作成されるベジエ曲線が、リンク(A(1),A(2))で近似される。
 次いで、ノードの登録が行われる(ステップST156)。すなわち、曲線近似ノード登録部7は、単数直線近似部12から送られてきたリンクのうち、既に登録されているA(1)以外のノードを曲線近似ノードとして曲線近似ノード列記憶部6に保存する。この例では、制御点A(2)が保存される。その後、シーケンスはステップST166に進む。
 上記ステップST154において、リンク(A(ia)、B(ia))とリンク(B(ia)、A(ia+1))の角度変化<STRAIGHT_THRESHOLDでないことが判断されると、シーケンスはステップST157に進む。この例では、次のループに入って変数icが2になると、直線判定部8は、リンク(A(2),B(2))とリンク(B(2),A(3))の角度変化がSTRAIGHT_THRESHOLD未満か否かを調べ、リンク(A(2),B(2))の向きは0°、リンク(B(2),A(3))の向きは135°であるので、リンク(A(2),B(2))とリンク(B(2),A(3))の角度変化はSTRAIGHT_THRESHOLD以上であると判定する。したがって、ステップST154ではNOと判定されてシーケンスはステップST157に進み、制御点A(2)、B(2)およびA(3)で作成されるベジエ曲線を複数の直線で近似する処理が行われる。
 具体的には、ステップST157においては、曲線上の中間点である点MP(ia)が算出される。すなわち、曲線上中間点作成部9は、ベジエ曲線上の点MP(ia)を下記(2)式に従って算出する。この例では、(2)式にA(2)=(30,10),B(2)=(50,10),A(3)=(10,50)を代入すると、曲線上の点MP(2)=(35,20)となる。
Figure JPOXMLDOC01-appb-I000002
 次いで、曲線上の点MP(ia)と制御点A(ia)との間の距離<SEPARATE_THRESHOLDであるか否かが調べられる(ステップST158)。すなわち、前半曲線近似部10は、下記(3)式によって求められる制御点A(ia)と曲線上の点MP(ia)との間の距離Dist1が、SEPARATE_THRESHOLDより小さいかどうかを調べる。
 このステップST158において、曲線上の点MP(ia)と制御点A(ia)との間の距離<SEPARATE_THRESHOLDであることが判断されると、1本のリンクで曲線が近似される(ステップST159)。すなわち、単数直線近似部12は、制御点A(ia)と曲線上の点MP(ia)との間のベジエ曲線を1本のリンク(A(ia),MP(ia))で近似する。
 次いで、ノードの登録が行われる(ステップST160)。すなわち、曲線近似ノード登録部7は、単数直線近似部12から送られてきた、1本のリンクで近似されたノードを曲線近似ノード列記憶部6に保存する。その後、シーケンスはステップST162に進む。
 一方、ステップST158において、曲線上の点MP(ia)と制御点A(ia)との間の距離<SEPARATE_THRESHOLDでないことが判断されると、すなわち、距離Dist1がSEPARATE_THRESHOLD以上であることが判断されると、制御点A(ia)と曲線上の点MP(ia)との間のベジエ曲線がSEPARATE_NUMで示される本数のリンクで近似される(ステップST161)。
 このステップST161で行われる処理の詳細を、図14に示すフローチャートを参照しながら説明する。この処理では、まず、変数imが1に初期化される(ステップST171)。次いで、変数imがSEPARATE_NUM以下であればループが開始される(ステップST172)。ループが開始されると、まず、曲線上のノードが算出される(ステップST173)。すなわち、前半曲線近似部10は、下記(4)式に従って、曲線上の点MP(ia)と制御点A(ia)と間の曲線上のノードを算出する。
Figure JPOXMLDOC01-appb-I000003
ここで、(4)式中のt(im)は(5)式に示す値であり、BP(ia,im)は制御点A(ia)と曲線上の点MP(ia)との間のベジエ曲線上に作成されるim番目のノードである。
 次いで、ノードの登録が行われる(ステップST174)。すなわち、曲線近似ノード登録部7は、前半曲線近似部10で算出されたノードのうち、既に登録されているノード以外の曲線上のノードを、曲線近似ノード列記憶部6に登録する。次いで、変数imがインクリメントされ、以下、変数imがSEPARATE_NUMより大きくなるまでステップST172とステップST175との間の処理が繰り返される。この繰り返し処理において、変数imがSEPARATE_NUMより大きくなると、シーケンスは図12に示すステップST162に進む。
 この場合、Dist1は11.18であり、SEPARATE_THRESHOLD以下である。したがって、制御点A(2)と曲線上の点MP(2)との間の曲線はリンク(A(2),MP(2))で近似される。この場合、ノードの登録では、曲線上の点MP(2)が保存される。
 ステップST162においては、曲線上の点MP(ia)と制御点A(ia+1)との間の距離<SEPARATE_THRESHOLDであるか否かが調べられる。すなわち、後半曲線近似部11は、下記(6)式に従って算出される曲線上の点MP(ia)と制御点A(ia+1)との距離Dist2が、SEPARATE_THRESHOLDより小さいかどうかを調べる。
 このステップST162において、曲線上の点MP(ia)と制御点A(ia+1)との間の距離<SEPARATE_THRESHOLDであることが判断されると、1本のリンクで曲線が近似される(ステップST163)。すなわち、単数直線近似部12は、曲線上の点MP(ia)と制御点A(ia+1)との間のベジエ曲線を1本のリンク(MP(ia),A(ia))で近似する。
 次いで、ノードの登録が行われる(ステップST164)。すなわち、曲線近似ノード登録部7は、単数直線近似部12から送られてきた1本のリンクで近似されたノードを曲線近似ノード列記憶部6に保存する。その後、シーケンスはステップST166に進む。
 一方、ステップST162において、曲線上の点MP(ia)と制御点A(ia+1)との間の距離<SEPARATE_THRESHOLDでない、すなわち、距離Dist2がSEPARATE_THRESHOLD以上であることが判断されると、曲線上の点MP(ia)と制御点A(ia+1)との間のベジエ曲線がSEPARATE_NUMで示される本数のリンクで近似される(ステップST165)。その後、シーケンスはステップST166に進む。
 上記ステップST165で行われる処理の詳細を、図14に示すフローチャートを参照しながら説明する。この処理では、まず、変数imが1に初期化される(ステップST171)。次いで、変数imがSEPARATE_NUM以下であればループが開始される(ステップST172)。ループが開始されると、まず、曲線上のノードが算出される(ステップST173)。すなわち、前半曲線近似部10は、上記(4)式に従って、曲線上の点MP(ia)と制御点A(ia)と間の曲線上のノードを算出する。
Figure JPOXMLDOC01-appb-I000004
ここで、(4)式中のt(im)は(7)式に示す値であり、このときのBP(ia,im)は曲線上の点MP(ia)と制御点A(ia+1)との間のベジエ曲線上に作成されるim番目のノードである。
 次いで、ノードの登録が行われる(ステップST174)。すなわち、曲線近似ノード登録部7は、後半曲線近似部11で算出されたノードのうち、既に登録されているノード以外の曲線上のノードを、曲線近似ノード列記憶部6に登録する。次いで、変数imがインクリメントされ、以下、変数imがSEPARATE_NUMより大きくなるまでステップST172とステップST175との間の処理が繰り返される。その後、シーケンスはステップST166に進む。
 この場合、Dist2は26.9であり、SEPARATE_THRESHOLD以上である。したがって、曲線上の点MP(2)と制御点A(ia+1)との間の曲線はSEPARATE_NUM個のリンクで近似される。具体的には、まず、im=1のノードが算出される。(7)式より、t(1)=0.75となり、BP(2,1)=(26.25,32.5)となる。その後、BP(2,1)が曲線近似ノード列記憶部6に保存される。次に、BP(2,2)が算出される。同様に、(7)式で求めたt(2)=1より、BP(2,2)=(10,50)を算出した後、BP(2,2)が曲線近似ノード列記憶部6に保存される。
 ステップST166では、変数iaがインクリメントされ、以下、変数iaが「間引き後の道路ノード数-2」より大きくなるまでステップST153とステップST166との間の処理が繰り返される。このようにして、制御点列から作成された曲線を直線近似した曲線近似ノードが曲線近似ノード列記憶部6に逐次保存される。
 なお、前半曲線近似部10と後半曲線近似部11は、t(im)の算出方法以外は同じ処理であるので、前半曲線近似部10のMP(ia)と制御点A(ia)との間の距離がSEPARATE_THRESHOLD以上の場合と、後半曲線近似部11のMP(ia)と制御点A(ia+1)との間の距離がSEPARATE_THRESHOLD以上の場合の処理は同じである。
 以上の曲線を近似した直線の作成処理が終了すると、次いで、図5のフローチャートに示すように、文字列データが取得される(ステップST15)。すなわち、文字列配置データ取得部2は、文字列配置データ記憶部1から文字列配置データを読み出し、1つの文字列を構成する複数の文字と、各文字の縦幅および横幅を取得する。この場合、文字列『String』の文字『S』、『t』、『r』、『i』、『n』、『g』、ならびに、『String』中の各文字の縦幅および横幅が取得される。
 次いで、曲線近似ノード列が取得される(ステップST16)。すなわち、曲線近似ノード列取得部13は、曲線近似ノード列記憶部6から曲線近似ノード列を取得する。この場合、上述した処理において登録されたノードP”(1)=(0,10)、P”(2)=(30,10)、P”(3)=MP(2)=(35,20)、P”(4)=BP(2,1)=(26.25,32.5)およびP”(5)=BP(2,2)=(10,50)が取得される。図15は、取得された曲線近似ノード列と、道路ノード列の関係を示す。
 次いで、文字列の配置が行われる(ステップST17)。すなわち、文字列配置算出部14は、文字列を配置する。ここで、文字列配置処理の詳細を、図16に示すフローチャートを参照しながら説明する。
 文字列配置処理では、まず、パラメータip=1、is=1およびrange=0に初期化される(ステップST181)。次いで、パラメータipが「曲線近似ノード列の数-1」以下であればループが開始される(ステップST182)。ループが開始されると、次いで、このループ内において、さらに無限ループが開始される(ステップST183)。無限ループが開始されると、次いで、リンクの向きθ’が算出される(ステップST184)。すなわち、リンク角度算出部17は、リンク(P”(ip),P”(ip+1))の向きθ’を算出する。この例では、リンク(P”(1),P”(2))の向きθ’=0°となる。
 次いで、is番目の文字(以下、「文字is」という)の配置が行われる(ステップST185)。すなわち、文字配置部18は、リンクの向きθ’および文字間隔rangeに基づき文字isの配置を決める。ここで、文字isの配置を決める文字配置処理の詳細を、図17に示すフローチャートを参照しながら説明する。
 文字配置処理では、まず、is=1であるか否かが調べられる(ステップST200)。すなわち、初期文字判定部23は、配置する文字を示すパラメータisが1であるか否か、つまり1番目の文字であるか否かを判定する。このステップST200において、is=1であることが判断されると、文字isを配置する処理に移行する。この例では、初期状態ではis=1であるので、文字isを配置する処理に移行する。
 文字isを配置する処理では、文字配置位置決定部24は、ノードP”(1)に文字isを配置し、文字リンク内として文字配置処理を終了する。より詳しくは、まず、文字isの左下座標LD(is)がノードP”(1)に設定される(ステップST201)。すなわち、文字配置位置決定部24は、文字isの左下座標LD(is)をノードP”(1)に設定する。
 次いで、LD(is)に文字isが配置される(ステップST202)。すなわち、文字配置位置決定部24は、文字isの左下座標LD(is)に文字isを配置する。ここで、文字配置とは、文字isの左下座標LD(is)をノードP”(1)に設定した後、文字isの左上座標LT(is)、右下座標RD(is)および右上座標RT(is)に、下記(8)式で求めた値を設定する処理をいう。なお、(8)式中のW(is)およびH(is)は文字isの横幅および縦幅をそれぞれ示す。この例では、LD(1)=(0,10),LT(1)=(0,20),RD(1)=(5,10),RT(1)=(5,20)となる。
Figure JPOXMLDOC01-appb-I000005
 上記ステップST200において、is=1でないことが判断されると、文字is-1の左下座標LD(is-1)からrangeだけ離れた位置にある左下座標LD(is)が算出される(ステップST203)。次いで、文字isの左下座標LD(is)がリンク内であるかどうかが調べられる(ステップST204)。このステップST204において、文字isの左下座標LD(is)がリンク内であることが判断されると、文字isの左下座標LD(is)に文字isが配置される(ステップST205)。すなわち、文字配置位置決定部24は、文字isの左下座標LD(is)に文字isを配置し、文字リンク内として文字配置処理を終了する。
 ステップST204において、文字isの左下座標LD(is)がリンク内でないことが判断されると、文字isの左下座標LD(is)からノードP(ip+1)までの距離がrangeとして設定される(ステップST206)。その後、文字リンク外として文字配置処理は終了する。
 上述した文字配置処理が終了すると、次いで、図16に示すように、文字isがリンク外であるかどうかが調べられる(ステップST186)。すなわち、文字リンク外判定部19は、文字配置位置決定部24における配置結果が文字リンク外であるかどうかを判定する。このステップST186において、文字isがリンク内であることが判断されると、文字is-1との重複判定が行われる(ステップST187)。すなわち、重複判定部20は、文字isと文字is-1とが重複しているか否かを判定する。
 このステップST187において、重複なしと判断されると、次いで、rangeが文字isの横幅に設定される(ステップST188)。すなわち、パラメータ更新部21は、rangeを文字isの横幅に設定する。次いで、isに1が加えられる(ステップST189)。すなわち、パラメータ更新部21は、isに1を加える。この例では、range=5,is=2となる。
 次いで、is=文字数であるかどうかが調べられる(ステップST190)。すなわち、文字数判定部22は、isが文字数になったかどうかを調べる。このステップST190において、is=文字数であることが判断されると、文字列配置可として文字列配置処理は終了する。一方、ステップST190において、is=文字数でないことが判断されると、シーケンスはステップST191に進み、無限ループ中である旨が判断される。したがって、以後はステップST183とステップST191との間の処理、つまり、文字配置部18による文字isの配置が繰り返される。
 上記ステップST186において、文字isがリンク外であることが判断されると、rangeがノードP”(ip+1)と左下座標LD(is)との間の距離に設定される(ステップST193)。すなわち、パラメータ更新部21は、rangeをノードP”(ip+1)と左下座標LD(is)との間の距離に設定する。その後、シーケンスはステップST194に進み、無限ループを抜け出す。以後、ステップST194においてはipがインクリメントされ、ステップST182とステップST194との間の処理が繰り返される。
 上記無限ループ内の2回目の処理では、is=2≠文字数であるので、文字配置部18は文字isを配置する処理に移る。この処理では、上記ステップST200において、is=1でないことが判断される。この場合、is=2であるので、文字左下座標算出部25により、文字isの左下座標LD(is)が求められる。すなわち、文字左下座標算出部25は、文字is-1の左下座標LD(is-1)よりrangeだけ離れた位置を、下記(9)式で求め、文字isの左下座標LD(is)として設定する。この場合、θ’=0°,range=5であるので、LD(2)=LD(1)+(range,0)=(5,10)となる。
Figure JPOXMLDOC01-appb-I000006
 文字2(2番目の文字)の左下座標LD(2)は、リンク(P”(1),P”(2))上であるので、文字配置位置決定部24は、上記と同様にして左下座標LD(2)以外の左上座標LT(2)、右下座標RD(2)および右上座標RT(2)を算出し、その後、文字リンク内として処理を終了する。この場合、LT(2)=(5,20),RD(2)=(10,10),RT(2)=(10,20)となり、文字リンク内で処理は終了する。
 その後、ステップST186において、文字リンク外判定部19で文字isがリンク内であることが判定され、次いで、ステップST187において、重複判定部20で文字is-1との重複が判定される。この場合、図18に示すように、文字is-1の右辺(RT(1),RD(1))と文字isの左辺(LT(2),LD(2))は重複する。したがって、ステップST187においては、重複ありと判断され、rangeにSTEP_SIZEが加えられる(ステップST192)。その後、シーケンスはステップST185に戻り、再度、文字配置部18で文字が配置される。この場合、range=5+1=6となる。
 この文字を再度配置する処理においては、上記と同様に、文字配置部18は文字2を配置する。まず、初期文字判定部23にて、is=1であるかを判定する。is≠1であるので、文字左下座標算出部25で文字2の左下座標LD(2)を算出する。この場合、θ’=0°、range=6であるので、LD(2)=LD(1)+(range,0)=(6,10)となる。(6,10)はリンク(P”(1),P”(2))上であるので、文字配置位置決定部24にて、上記と同様にしてLT(2),RD(2),RT(2)が算出される。この場合、LT(2)=(6,20),RD(2)=(11,10),RT(2)=(11,20)となり、文字リンク内で処理を終了する。
 次に、重複判定部20にて、文字isと文字is-1の重複が判定される。この場合、図19に示すように、文字2と文字1は重複しないので、パラメータ更新部21でパラメータを更新する処理に移る。上記と同様にしてパラメータが更新されると、range=5,is=3となる。その後、上記と同様にして文字数判定部22にてis=文字数か否かが判定される。この場合、is≠文字数であるので、文字列を配置する処理に移る。
 以下同様にして文字3、4および5を配置すると、図20に示すような文字列が配置される。文字3の外接矩形はLD(3)=(12,10)、LT(3)=(12,20)、RD(3)=(17,10)およびRT(3)=(17,20)となり、文字4の外接矩形はLD(4)=(18,10)、LT(4)=(18,20)、RD(4)=(23,10)およびRT(4)=(23,20)となり、文字5の外接矩形はLD(5)=(24,10)、LT(5)=(24,20)、RD(5)=(29,10)およびRT(5)=(29,20)となる。
 次に、文字6がリンク(P”(1),P”(2))に配置される。まず、初期文字判定部23にてis=1か否かが判定される。この場合、is=6であるので、文字左下座標算出部25にて文字の左下座標が算出される。上記と同様にして文字左下座標が算出されると、左下座標LD(6)=(34,10)となる。左下座標LD(6)はリンク(P”(1),P”(2))外であるので、rangeが左下座標LD(6)からノードP”(2)との間の距離4、ipが1から2に更新され、文字リンク外で処理を終了する。その後、文字リンク外で処理を終了したので、次のリンクに文字が配置される。この場合、リンク(P”(2),P”(3))に文字6が配置される。上述した処理と同様の処理より文字を配置すると、文字6の外接矩形はLD(6)=(34.02,18.05)、LT(6)=(25.05,22.52)、RD(6)=(36.26,22.52)およびRT(6)=(27.31,26.99)となる。図21は、文字列『String』を配置した結果を示す。以上のようにして、文字列が道路リンク上に配置される。
 以上説明したように、道路リンクから作成した曲線を近似した直線上に文字列を配置することにより、従来に較べて文字配置角度変化が少なくなるように、文字列を配置することができる。その結果、従来に較べて文字角度変化を低減できるので、文字列を容易に認識することができる。また、道路リンクから作成した曲線を複数の直線に近似するように構成したので、文字の位置を決める際に曲線上の距離計算を省くことができ、特許文献1に開示された技術に比べて高速に文字の位置を決めることができる。
 なお、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
 この発明は、文字列の可読性を向上させるとともに、文字の位置決めを高速に行うことができるので、カーナビゲーションシステムまたは携帯機器などで行われる地図表示に好適である。
 1 文字列配置データ記憶部、2 文字列配置データ取得部、3 道路ノード列間引き部、4 制御点列作成部、5 曲線近似部、6 曲線近似ノード列記憶部、7 曲線近似ノード登録部、8 直線判定部、9 曲線上中間点作成部、10 前半曲線近似部、11 後半曲線近似部、12 単数直線近似部、13a 文字列配置処理部、13 曲線近似ノード列取得部、14 文字列配置算出部、15 文字列配置登録部、16 出力文字列配置記憶部、17 リンク角度算出部、18 文字配置部、19 文字リンク外判定部、20 重複判定部、21 パラメータ更新部、22 文字数判定部、23 初期文字判定部、24 文字配置位置決定部、25 文字左下座標算出部、26 次文字配置距離更新部。

Claims (5)

  1.  文字列を道路に沿って配置するための文字列配置データを取得する文字列配置データ取得部と、
     前記文字列配置データ取得部で取得された文字列配置データに含まれる道路ノード列を構成するノードの一部を間引きする道路ノード列間引き部と、
     前記道路ノード列間引き部で間引きされた後の道路ノード列から制御点列を作成する制御点列作成部と、
     前記制御点列作成部で作成された制御点列による曲線を直線で近似したノード列を作成する曲線近似部と、
     前記曲線近似部で作成されたノード列を曲線近似ノード列として保存する曲線近似ノード列記憶部と、
     前記曲線近似ノード列記憶部に保存された曲線近似ノード列に基づき文字列の配置処理を行う文字列配置処理部
    とを備えた文字列配置装置。
  2.  曲線近似部は、
     制御点列作成部で作成された制御点列による曲線を直線で近似できるか否かを判定する直線判定部と、
     前記直線判定部において直線で近似できないことが判定された場合に、前記制御点列作成部で作成された制御点列による曲線上の中間点を作成する曲線上中間点作成部と、
     前記制御点列作成部からの制御点列による曲線のうち、前記曲線上中間点作成部で作成された中間点より前の曲線を直線で近似して作成されたノード列を出力する前半曲線近似部と、
     前記制御点列作成部からの制御点列による曲線のうち、前記曲線上中間点作成部で作成された中間点より後の曲線を直線で近似して作成されたノード列を、前記前半曲線近似部で直線を近似して作成されたノード列に繋げて出力する後半曲線近似部と、
     前記直線判定部において直線で近似できることが判定された場合に、前記制御点列作成部で作成された制御点列による曲線を1本の直線で近似して作成されたノード列を出力する単数直線近似部と、
     前記後半曲線近似部からのノード列、または、前記単数直線近似部からのノード列を曲線近似ノード列として曲線近似ノード列記憶部に登録する曲線近似ノード登録部
    とを備えたことを特徴とする請求項1記載の文字列配置装置。
  3.  文字列配置処理部は、
     曲線近似ノード列記憶部から文字列が沿うノード列を取得する曲線近似ノード列取得部と、
     前記曲線近似ノード列取得部で取得された曲線近似ノード列に基づき文字列の配置位置を算出する文字列配置算出部と、
     文字列の配置位置を保存する出力文字列配置記憶部と、
     前記文字列配置算出部で算出された文字列の配置位置を前記出力文字列配置記憶部に登録する文字列配置登録部
    とを備えたことを特徴とする請求項1記載の文字列配置装置。
  4.  文字列配置算出部は、
     曲線近似ノード列取得部で取得された曲線近似ノード列に基づいて、各ノードにおいてリンクにより形成されるリンク角度を算出するリンク角度算出部と、
     前記リンク角度算出部において算出されたリンク角度に基づき文字を配置する文字配置部と、
     前記文字配置部で配置された文字がリンク外であるか否かを判定する文字リンク外判定部と、
     前記文字リンク外判定部でリンク外でないことが判定された場合に文字同士が重複するか否かを判定する重複判定部と、
     前記重複判定部での判定結果に応じてパラメータを更新するパラメータ更新部と、
     前記パラメータ更新部で更新されたパラメータに基づき既定の文字数に達したか否かを判定し、既定の文字数に達したことが判定された場合に処理を終了させる文字数判定部
    とを備えたことを特徴とする請求項3記載の文字列配置装置。
  5.  文字配置部は、
     リンク角度算出部で算出されたリンク角度に基づき配置された文字が文字列中の1番目の文字であるか否かを判定する初期文字判定部と、
     前記初期文字判定部における判定結果に応じて、文字の左下座標を算出する文字左下座標算出部と、
     前記初期文字判定部による判定結果または文字左下座標算出部で算出された文字の左下座標に応じて文字の配置位置を決める文字配置位置決定部と、
     前記文字左下座標算出部で算出された文字の左下座標に基づき次の文字までの距離を決める次文字配置距離更新部
    とを備えたことを特徴とする請求項4記載の文字列配置装置。
PCT/JP2011/001477 2011-03-14 2011-03-14 文字列配置装置 WO2012123986A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/JP2011/001477 WO2012123986A1 (ja) 2011-03-14 2011-03-14 文字列配置装置
US14/000,292 US9317949B2 (en) 2011-03-14 2011-03-14 String arrangement device
JP2013504397A JP5496415B2 (ja) 2011-03-14 2011-03-14 文字列配置装置
CN201180069255.8A CN103430226B (zh) 2011-03-14 2011-03-14 字符串配置装置
DE112011105035.6T DE112011105035T5 (de) 2011-03-14 2011-03-14 Folgenanordnungsvorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/001477 WO2012123986A1 (ja) 2011-03-14 2011-03-14 文字列配置装置

Publications (1)

Publication Number Publication Date
WO2012123986A1 true WO2012123986A1 (ja) 2012-09-20

Family

ID=46830126

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/001477 WO2012123986A1 (ja) 2011-03-14 2011-03-14 文字列配置装置

Country Status (5)

Country Link
US (1) US9317949B2 (ja)
JP (1) JP5496415B2 (ja)
CN (1) CN103430226B (ja)
DE (1) DE112011105035T5 (ja)
WO (1) WO2012123986A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016118702A (ja) * 2014-12-22 2016-06-30 株式会社ゼンリンデータコム 情報処理装置、プログラム、描画方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844288B (zh) * 2015-12-07 2022-03-22 创新先进技术有限公司 一种随机字符串生成方法及装置
WO2017188259A1 (ja) * 2016-04-26 2017-11-02 アイシン・エィ・ダブリュ株式会社 地図表示システムおよび地図表示プログラム
US10726598B2 (en) * 2016-05-19 2020-07-28 Toyota Jidosha Kabushiki Kaisha Map display system and map display program
US10621889B2 (en) 2016-05-20 2020-04-14 Aisin Aw Co., Ltd. Map display system and map display program
CN109427238B (zh) * 2017-09-04 2021-07-30 阿里巴巴(中国)有限公司 一种道路文字标注位置确定方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04326478A (ja) * 1991-04-26 1992-11-16 Toshiba Corp 図形作成装置
JPH06259525A (ja) * 1993-03-03 1994-09-16 Hitachi Ltd 文字配置方式
JPH08194432A (ja) * 1995-01-17 1996-07-30 Nippondenso Co Ltd 地図表示装置
JP2000029450A (ja) * 1998-07-09 2000-01-28 Alpine Electronics Inc 文字列表示方法
JP2002297025A (ja) * 2001-03-29 2002-10-09 Clarion Co Ltd 地図表示装置及び方法並びに地図表示用ソフトウェア

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4523294A (en) * 1982-05-27 1985-06-11 Southwest Research Institute Character spaced justification method and apparatus
US5109352A (en) * 1988-08-09 1992-04-28 Dell Robert B O System for encoding a collection of ideographic characters
US5241654A (en) * 1988-12-28 1993-08-31 Kabushiki Kaisha Toshiba Apparatus for generating an arbitrary parameter curve represented as an n-th order Bezier curve
US5408598A (en) * 1991-05-23 1995-04-18 International Business Machines Corporation Method for fast generation of parametric curves employing a pre-calculated number of line segments in accordance with a determined error threshold
US5590247A (en) * 1993-08-31 1996-12-31 Casio Computer Co., Ltd. Character string outputting method and apparatus capable of varying sizes of characters
US6278445B1 (en) * 1995-08-31 2001-08-21 Canon Kabushiki Kaisha Coordinate input device and method having first and second sampling devices which sample input data at staggered intervals
EP1783724A2 (en) * 1996-06-19 2007-05-09 Matsushita Electric Industrial Co., Ltd. Road area extracting apparatus for extracting a road area from a block map, deformed map automatic generation system for generating a deformed map from road area data obtained by the road area extracting apparatus, map information providing system, geographical information providing system and geographical information describing method
EP1103949A4 (en) * 1999-04-20 2005-06-22 Mitsubishi Electric Corp DEVICE AND METHOD FOR DISPLAYING CHARACTERS
JP3642514B2 (ja) * 2001-09-13 2005-04-27 松下電器産業株式会社 簡易型交通情報の生成方法と装置
JP2005115174A (ja) * 2003-10-09 2005-04-28 Navitime Japan Co Ltd 地図表示装置、地図表示方法および地図表示プログラム
US20050089237A1 (en) * 2003-10-24 2005-04-28 Jaehwa Park Method and apparatus for bezier curve approximation data compression
WO2006006243A1 (ja) * 2004-07-14 2006-01-19 Pasco Corporation 文字列最適配置プログラム
JP2006330112A (ja) * 2005-05-23 2006-12-07 Pioneer Electronic Corp 情報生成装置、その方法、そのプログラム、および、そのプログラムを記録した記録媒体
JP4086060B2 (ja) * 2005-08-17 2008-05-14 トヨタ自動車株式会社 点列の近似方法および点列の近似装置
ATE447160T1 (de) * 2006-03-31 2009-11-15 Research In Motion Ltd Verfahren und vorrichtung zur dynamischen kennzeichnung von kartenobjekten in visuell angezeigten karten mobiler kommunikationsvorrichtungen
JP2008076593A (ja) 2006-09-20 2008-04-03 Hirotsu Sokichi 略地図生成装置および略地図生成方法
JP4306755B2 (ja) * 2007-03-28 2009-08-05 株式会社デンソー ストリート検索方法およびカーナビゲーション装置
JP2011081763A (ja) * 2009-09-09 2011-04-21 Sony Corp 情報処理装置、情報処理方法及び情報処理プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04326478A (ja) * 1991-04-26 1992-11-16 Toshiba Corp 図形作成装置
JPH06259525A (ja) * 1993-03-03 1994-09-16 Hitachi Ltd 文字配置方式
JPH08194432A (ja) * 1995-01-17 1996-07-30 Nippondenso Co Ltd 地図表示装置
JP2000029450A (ja) * 1998-07-09 2000-01-28 Alpine Electronics Inc 文字列表示方法
JP2002297025A (ja) * 2001-03-29 2002-10-09 Clarion Co Ltd 地図表示装置及び方法並びに地図表示用ソフトウェア

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016118702A (ja) * 2014-12-22 2016-06-30 株式会社ゼンリンデータコム 情報処理装置、プログラム、描画方法

Also Published As

Publication number Publication date
JP5496415B2 (ja) 2014-05-21
JPWO2012123986A1 (ja) 2014-07-17
US20130321429A1 (en) 2013-12-05
CN103430226B (zh) 2016-03-30
DE112011105035T5 (de) 2014-01-02
CN103430226A (zh) 2013-12-04
US9317949B2 (en) 2016-04-19

Similar Documents

Publication Publication Date Title
JP5496415B2 (ja) 文字列配置装置
JP5001617B2 (ja) 地図更新データ供給装置、バージョンテーブル、地図データ更新システム、地図更新データ供給プログラム、及び地図データ更新プログラム
JP5216665B2 (ja) 地図データ更新システム及び地図データ更新プログラム、並びにこれを利用したナビゲーション装置及び車両制御装置
JP3275190B2 (ja) 地図情報再生装置
US20130166205A1 (en) Navigation apparatus
JP4757752B2 (ja) 地図情報処理装置
KR102300713B1 (ko) 고정밀 벡터지도 제공 방법
JP2013036930A (ja) ナビゲーション装置およびこれを備えたナビゲーションシステム
CN102538815A (zh) 一种道路名称动态显示的方法及装置
JP4580255B2 (ja) 車両ナビゲーション装置および仮道路地図データの登録方法
JP5335853B2 (ja) 地図情報処理装置
JP2018004560A (ja) 情報処理装置、情報処理方法、情報処理システムおよびプログラム
JP4929255B2 (ja) デフォルメ地図作成装置及びその方法
JP5180715B2 (ja) ナビゲーション装置
JP2004139485A (ja) 要約地図生成装置、道路地図変換装置、該プログラム、及び要約地図サービスシステム
CN114445575A (zh) 一种基于路口拓扑信息的不同地图之间的匹配方法及***
KR100967921B1 (ko) 네비게이션의 3차원 링크 저장 방법 및 매칭 방법
JP4786492B2 (ja) 経路情報表示装置および経路情報表示方法
CN111383446A (zh) 电子地图道路信息的制作方法和设备
JP3950230B2 (ja) 現在位置算出装置
CN111524203B (zh) 基于gpx数据的面状矢量图生成方法及***
JP2000329571A (ja) ナビゲーション装置
JP6107527B2 (ja) 地図表示システム、方法およびプログラム
JPH06288780A (ja) 車両位置検出装置
CN113535747B (zh) 地图更新方法、装置、电子设备及可读存储介质

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180069255.8

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11861062

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013504397

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14000292

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112011105035

Country of ref document: DE

Ref document number: 1120111050356

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11861062

Country of ref document: EP

Kind code of ref document: A1