WO2012077158A1 - 文字列配置装置、文字列配置候補決定方法、及び文字列配置候補決定用プログラム - Google Patents
文字列配置装置、文字列配置候補決定方法、及び文字列配置候補決定用プログラム Download PDFInfo
- Publication number
- WO2012077158A1 WO2012077158A1 PCT/JP2010/007107 JP2010007107W WO2012077158A1 WO 2012077158 A1 WO2012077158 A1 WO 2012077158A1 JP 2010007107 W JP2010007107 W JP 2010007107W WO 2012077158 A1 WO2012077158 A1 WO 2012077158A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- character string
- character
- arrangement
- unit
- cost function
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
Definitions
- the present invention relates to a character string arrangement device, a character string arrangement candidate determination method, and a character string arrangement candidate determination program for arranging and displaying a character string such as a place name on a map screen.
- Patent Document 1 As a conventional technique for arranging and displaying a character string such as a place name on a map screen, there is one disclosed in Patent Document 1, for example.
- Patent Document 1 when a character string of a name such as a road, river, or railway is arranged along a link that represents a road, river, or railway on a map screen, the character string is displayed on the screen in consideration of the readability of the character string.
- the character string arrangement start point at which to start the arrangement is determined.
- Patent Document 1 when displaying a character example such as a road name, a road is represented by connecting a plurality of road links 101 on a display screen 100 as shown in FIG. A character string 102 indicating information such as the name of the road is arranged along the road link 101 starting from a character string arrangement start point 103 provided on the road link 101. In this case, depending on the position where the character string arrangement start point 103 is provided, the character strings overlap each other or the character strings must be deformed along the road link, and the readability of the character strings is lowered.
- FIG. 2 there is a road that intersects the road indicated by the road link 101 in FIG. 1, and the character string 102a is arranged along the road link 101 of the road from the character arrangement start point 103a as a starting point.
- 102 shows a case where 102 and a character string 102a overlap.
- the overlapped characters are very difficult to read and readability deteriorates.
- FIG. 3 represents the curved portion of the road by connecting adjacent road links 101 with a certain angle, and the character string arrangement start point 103A is provided on the road link 101 close to the curved portion.
- a case where the character string 102 is deformed along the road link 101 is shown. Also in this case, the continuity of the characters in the character string is impaired, the readability is deteriorated, and it is difficult to grasp the contents of the character string at a glance.
- FIG. 4 is a diagram for explaining a function indicating duplication of character strings.
- a plurality of roads intersect with each other, and the character strings 102, 102a, 102b are replaced by character string arrangement start points 103, 103a, 103b along the road links 101 of the respective roads. Each is arranged as a starting point.
- FIG. 5 is a diagram for explaining a function indicating the degree of curve of a road along which a character string is along.
- AveLine (i) As shown in FIG. 5, by obtaining a linear approximation AveLine (i) of a road node on a road in which a plurality of road links are connected via road nodes, the road node is represented by AveLine (i) indicated by a broken line in FIG. 5 is a value obtained by dividing the sum of the areas of the portions indicated by black triangles in FIG. 5 by the length of the straight line indicated by AveLine (i). i).
- the character string arrangement start point is changed to a position where the value of the cost function f is minimized as shown in the following equation (1).
- Patent Document 1 is based on the premise that the arrangement of character strings does not change even if the orientation of the map changes. For example, as shown in FIG. 6A, when the map is oriented north (north up) and the character string 102 is arranged along the north side of the road link 101, as shown in FIG. Even if the direction of the map is changed to south (south up), the character string 102 is similarly arranged on the north side of the road link 101.
- the direction of the map may change depending on the traveling direction of the vehicle (heading up). For example, as shown in FIG. 7 (a), if the vehicle is traveling toward the north, the direction of the map is north, and the traveling direction of the vehicle is southwest as shown in FIG. 7 (b). If it changes, the orientation of the map will be southwest.
- the character in order to maintain the readability of the character string, the character is displayed upward so that it can be read to the left in any map orientation.
- the character string 102 arranged along the road link 101 is directed upward.
- the character string arrangement patterns of the character strings 102 having different directions are stored as patterns 1 and 2 corresponding to both sides of the road link 101.
- FIG. 8 (b) if the vehicle is traveling north, the map direction is north. Therefore, by using the character string arrangement of pattern 1, the character string 102 is arranged upward. Is done. Further, if the orientation of the map is south, the character string arrangement of pattern 2 is switched as shown in FIG.
- Patent Document 1 there is a problem in that the readability of the character string may be impaired when the conventional technique represented by Patent Document 1 is applied.
- the arrangement position of a character string is changed to a position with a high readability for a character string arrangement in a certain one-way map direction.
- the character strings 102 and 102a do not overlap when the arrangement of the character strings is changed when the orientation of the map is north, but as shown in FIG.
- the arrangement of the character string 102a is switched upward so that the character can be read to the left, so that the character string 102 and the character string 102a overlap.
- it is sufficient to determine the character string arrangement start point for each direction of the map so that duplication of character strings and deformation display of the character string do not occur. It is necessary to prepare as many pieces of information regarding the character string arrangement start point as the number of map directions, and a huge storage area is required.
- the present invention has been made to solve the above-described problems, and does not cause an increase in the amount of information to be prepared and can be arranged on a display screen without losing readability. It is an object to obtain a device, a character string arrangement candidate determination method, and a character string arrangement candidate determination program.
- a character string arrangement device includes a character string data acquisition unit that acquires data of a character string to be arranged on a display screen, and a character string acquisition unit that starts arrangement of the character string acquired by the character string data acquisition unit.
- Position candidate creation section that creates position candidates, and character strings are arranged in such a way that readings are forward in opposite directions on the display screen starting from the position candidates created by the position candidate creation section.
- a cost function value calculating unit that calculates a cost function value that evaluates a factor that affects the readability of the character string based on the positional relationship between the character strings, and a position candidate having the smallest cost function value
- a storage unit that stores a position candidate when changing the arrangement start position.
- FIG. 6 is a flowchart showing a flow of creating a character string arrangement start candidate point by the character string arrangement apparatus of the first embodiment. It is a figure which shows the road link along the character string 0, and the character string arrangement
- FIG. It is a figure which shows another example of temporary arrangement
- FIG. It is a figure which shows an example of the upward arrangement
- FIG. It is a figure which shows an example of the downward arrangement
- FIG. It is a figure which shows the character string arrangement
- FIG. It is a flowchart which shows the flow of a calculation process of the character string arrangement
- FIG. 12 is a flowchart showing a flow of operations performed by the character string arrangement device according to the second embodiment. It is a figure which shows an example of the relationship of the road link which the character string 0 and the character string 1 follow, a character string arrangement
- FIG. FIG. 10 is a block diagram showing the configuration of the character string arrangement device according to Embodiment 1 of the present invention.
- the character string arrangement device 1 according to the first embodiment is a device that constitutes a map display device used for, for example, a navigation device, and shows information such as a name along a link that represents a road on the map. Arrange strings.
- the character string placement device 1 places a character string indicating a road name or the like along a road link of the road.
- the character string arrangement device 1 has a character string data acquisition unit 2, a character string arrangement start candidate point creation unit 3, a minimum cost function value calculation unit 4, and an output character string arrangement start candidate point storage. Part 5 is provided.
- the character string data acquisition unit 2 is a component that acquires character string data from an external storage device.
- the character string data is, for example, included in map data used for map display, and is a character string of a road name displayed on the map screen, road link data indicating a road link along the character string, and characters on the map screen. This is data including a character string arrangement start point indicating a position at which arrangement of the string is started.
- the character string arrangement start candidate point creation unit 3 starts arrangement of the character string on the map screen when changing the character string arrangement start point of the character string acquired from the character string data by the character string data acquisition unit 2. This is a component that creates point candidates (hereinafter referred to as character string arrangement start candidate points).
- the minimum cost function value calculation unit 4 uses the character string arrangement start candidate point created by the character string arrangement start candidate point creation unit 3 as a starting point, and when the corresponding character string is arranged upward and downward, As factors that affect readability, functions that indicate the overlap between character strings in each layout, functions that indicate the angle between adjacent road links that cause deformation display of character strings, and characters that are set in advance in character string data A component that calculates a cost function value obtained by adding the values of functions indicating the distance between the column arrangement start point and the character string arrangement start candidate point, and obtains a character string arrangement start candidate point that minimizes the cost function value. .
- the layout is such that the character string can be read to the left while it is divided on the road link along the target character string. Is placed upward.
- the orientation arrangement is the downward arrangement.
- the output character string arrangement start candidate point storage unit 5 is a storage unit that stores a character string arrangement start candidate point at which the cost function value calculated by the minimum cost function value calculation unit 4 is minimized.
- the character string arrangement device 1 uses the character string arrangement start candidate point stored in the output character string arrangement start candidate point storage unit 5 to respond to the overlap of character strings or the curve of the road in any map orientation.
- the character string can be arranged at a position where the character string is not deformed.
- the functions of the components 2 to 4 are defined in the program modules constituting the character string arrangement program.
- storage part 5 is constructed
- the storage device include a hard disk device, a semiconductor memory, a drive device for storage media such as a CD and a DVD, and the like.
- FIG. 11 is a block diagram showing the configuration of the character string arrangement start candidate point creation unit in FIG.
- the character string arrangement start candidate point creation unit 3 is a component that creates character string arrangement start candidate points for the character string acquired by the character string data acquisition unit 2.
- An upward placement unit 7, a character string downward placement unit 8, and a candidate point deletion unit 9 are provided.
- the candidate point creation unit 6 is a configuration unit that creates a character string arrangement start candidate point of the character string based on the character string acquired from the character string data by the character string data acquisition unit 2 and information on the road link. For example, the position of a predetermined interval on one or a plurality of continuous road links along which the character string extends is set as a character string arrangement start candidate point of the character string.
- the character string upward arrangement unit 7 temporarily arranges the character string upward along the road link starting from the character string arrangement start candidate point created by the candidate point creation unit 6, and the character and road link overlap.
- This is a configuration unit that determines whether or not the arrangement interval is equal to or greater than a predetermined value and whether the characters in the character string overlap each other, and determines whether or not the character string can be arranged upward from this determination result.
- the character string downward arrangement unit 8 temporarily arranges the character string downward along the road link starting from the character string arrangement start candidate point created by the candidate point creation unit 6, and the character and road link overlap.
- the candidate point deletion unit 9 uses the character string upward placement unit 7 and the character string downward placement unit 8 among the character string placement start candidate points created by the candidate point creation unit 6 to perform the character placement either upward or downward.
- This is a configuration unit that deletes a character string arrangement start candidate point where it is determined that a string cannot be arranged.
- FIG. 12 is a block diagram showing the configuration of the character string upward arrangement portion of FIG.
- a character string upward arrangement unit 7 includes a character arrangement candidate point creation unit 10a, a start character arrangement candidate point determination unit 11a, an upward character arrangement order determination unit 12a, an upward character temporary arrangement unit 13a, and a determination processing unit 14a. And a character position registration unit 15a.
- the character placement candidate point creation unit 10a uses the character string placement start candidate point created by the candidate point creation unit 6 as a starting point to position each character of the character string to be placed upward (hereinafter referred to as a character placement candidate point). ). For example, a position arranged along a road link at a predetermined interval from a character string arrangement start candidate point is set as a character arrangement candidate point.
- the starting character placement candidate point determination unit 11a searches for a character placement candidate point serving as a starting point for character placement of a character string to be placed upward from the character placement candidate points created by the character placement candidate point creation unit 10a. This is a component to be determined.
- the upward character arrangement order determination unit 12a determines the character based on the declination of the unit vector of the road link where the character arrangement candidate point serving as the character arrangement start point determined by the start character arrangement candidate point determination unit 11a exists. It is a component which determines whether the character arrangement order of a column will be either a forward direction or a reverse direction.
- the forward direction is an arrangement order of characters that can read the character string to the left
- the backward direction is an arrangement order that makes the reading of the character string read to the right.
- the upward character temporary placement unit 13a starts the character placement determined by the start character placement candidate point determination unit 11a for each character of the character string in the character placement order determined by the upward character placement order determination unit 12a. This is a component that temporarily arranges each character arrangement candidate point in order from the point.
- the determination processing unit 14a determines whether the character temporarily arranged by the upward character temporary arrangement unit 13a is an overlap between the character and a road link, and the character and the character temporarily arranged immediately before the character are arranged at a predetermined interval or more. It is a component that determines whether or not there is an overlap between the character and the character provisionally arranged immediately before the character and determines whether or not the character can be arranged based on the determination result.
- the character position registration unit 15a is a storage unit that registers the coordinate information of the position of the character determined to be dispositionable by the determination processing unit 14a as the character position.
- FIG. 13 is a block diagram illustrating a configuration of the character string downward arrangement unit in FIG. 11.
- the character string downward arrangement unit 8 includes a character arrangement candidate point creation unit 10b, a start character arrangement candidate point determination unit 11b, a downward character arrangement order determination unit 16b, a downward character temporary arrangement unit 17b, and a determination processing unit 14b. And a character position registration unit 15b.
- the character placement candidate point creation unit 10b is a configuration unit that creates a character placement candidate point for placing each character of the character string to be placed downward from the character string placement start candidate point created by the candidate point creation unit 6. For example, as in the upward character temporary arrangement unit 13a, a position arranged along the road link at a predetermined interval from the character string arrangement start candidate point is set as the character arrangement candidate point.
- the starting character placement candidate point determination unit 11b searches for a character placement candidate point serving as a starting point for character placement of a character string to be placed downward from the character placement candidate points created by the character placement candidate point creation unit 10b. This is a component to be determined.
- the downward character arrangement order determination unit 16b determines the character based on the declination of the unit vector of the road link where the character arrangement candidate point serving as the character arrangement start point determined by the start character arrangement candidate point determination unit 11b exists. It is a component which determines whether the character arrangement order of a row
- the downward character temporary arrangement unit 17b starts the character arrangement determined by the start character arrangement candidate point determination unit 11b for each character of the character string in the character arrangement order determined by the downward character arrangement order determination unit 16b. This is a component that temporarily arranges each character arrangement candidate point in order from the point. For the characters temporarily arranged by the downward character temporary arrangement unit 17b, the determination processing unit 14b overlaps the character and the road link, and the character and the character temporarily arranged immediately before the character are arranged at an arrangement interval of a predetermined value or more. It is a component that determines whether or not there is an overlap between the character and the character provisionally arranged immediately before the character and determines whether or not the character can be arranged based on the determination result.
- the character position registration unit 15b is a storage unit that registers the coordinate information of the position of the character determined to be laid out by the determination processing unit 14b as the character position.
- FIG. 14 is a block diagram illustrating a configuration of the determination processing unit illustrated in FIG. 12 or 13.
- the determination processing units 14 a and 14 b include a character / road overlap determination unit 18, a character interval determination unit 19, and a character overlap determination unit 20.
- the character and road overlap determination unit 18 of the determination processing unit 14a is a component unit that determines whether or not there is overlap between a character temporarily placed in the upward character temporary placement unit 13a and a road link along with the character string including the character. is there.
- a component that determines the presence / absence of duplication of a character temporarily arranged in the downward character temporary arrangement unit 17b with a road link along which the character string including the character is along. is there.
- the character interval determination unit 19 of the determination processing unit 14a determines whether the interval between the character temporarily arranged by the upward character temporary arrangement unit 13a and the character temporarily arranged immediately before is narrower or wider than a predetermined character interval. It is the component which determines.
- the character interval determination unit 19 of the determination processing unit 14b is such that the interval between the character temporarily arranged in the downward character temporary arrangement unit 17b and the character temporarily arranged immediately before is narrower or wider than a predetermined character interval. This is a component that determines whether or not.
- the character duplication determination unit 20 in the determination processing unit 14a is a component that determines an overlap between a character temporarily arranged in the upward character temporary arrangement unit 13a and a character temporarily arranged immediately before.
- the character overlap determination unit 20 of the determination processing unit 14b is a component that determines the overlap between the character temporarily arranged by the downward character temporary arrangement unit 17b and the character temporarily arranged immediately before.
- FIG. 15 is a block diagram showing the configuration of the minimum cost function value calculation unit in FIG. 10, FIG. 15 (a) shows the configuration of the minimum cost function value calculation unit, and FIG. 15 (b) shows the configuration of FIG.
- the structure of the duplication function calculation part of the character strings in (a) is shown.
- the minimum cost function value calculation unit 4 includes a duplication function calculation unit 21 between character strings, a road link angle function calculation unit 22, a distance function calculation unit 23, and a function value addition unit 24.
- the duplication function calculation unit 21 between character strings includes a character string upward arrangement unit 25a, a character string downward arrangement unit 25b, and a character string duplication calculation unit 25c.
- the duplication function calculation unit 21 between character strings starts character string arrangement determined by the character string arrangement start candidate point creation unit 3 for each character string acquired from the character string data by the character string data acquisition unit 2.
- This is a configuration unit that determines the duplication of character strings when the candidate points are arranged as starting points, using a function indicating the duplication of the character strings.
- the road link angle function calculation unit 22 is a component that calculates the value of the function Angle (i) that indicates the angle formed by the road link along which the character string acquired from the character string data follows.
- the distance function calculation unit 23 includes the character string arrangement start point of the character string acquired from the character string data by the character string data acquisition unit 2 and the character string arrangement determined to be arrangeable by the character string arrangement start candidate point creation unit 3 It is a component that calculates a value of a function Dist (i) indicating a distance from the start candidate point.
- the character string upward arrangement unit 25a determines the character string arrangement start candidate point determined by the character string arrangement start candidate point creation unit 3 for each character string acquired from the character string data by the character string data acquisition unit 2. It is a component arranged upward as a starting point.
- the character string downward arrangement unit 25b has the character string arrangement start candidate determined by the character string arrangement start candidate point creation unit 3 for each character string acquired from the character string data by the character string data acquisition unit 2. It is a component which arranges downwards from a point as a starting point.
- the character string duplication calculation unit 25c includes an overlap between character strings arranged upward by the character string upward arrangement unit 25a, an overlap between character strings arranged downward by the character string downward arrangement unit 25b, and a character string upward arrangement unit 25a.
- the value of the function Over String (i) indicating the duplication of character strings is obtained by using the duplication number of the character strings obtained by the duplication determination between the character strings arranged upward and downward by the character string downward arrangement unit 25b. It is a component to calculate.
- Function value adding mating portion 24 the function Overlap String (i), the value of the function Angle (i) and the function Dist (i) the sum total of consisting cost function f (i), the string with the string data acquisition unit 2
- the character string arrangement start point of the character string acquired from the data and the character string arranged at the character string arrangement start candidate point determined to be arrangeable by the character string arrangement start candidate point creation unit 3 are calculated, and the cost function f This is a component that sets the point at which the value of (i) is the smallest as the final character string arrangement start candidate point.
- the final character string arrangement start candidate point storage unit 5 stores the final character string arrangement start candidate point.
- FIG. 16 is a flowchart showing a flow of operations performed by the character string arrangement device according to the first embodiment.
- the outline of the process of acquiring the character string arrangement start candidate point will be described with reference to FIG.
- the character string data acquisition unit 2 acquires character string data from an external storage device such as a map database, and all character strings included in the character string data, and road links and character strings corresponding to the respective character strings.
- An arrangement start point is extracted (step ST1).
- the character string arrangement start candidate point creation unit 3 creates character string arrangement start candidate points on the road links along which the respective character strings acquired by the character string data acquisition unit 2 follow (step ST2).
- the character string arrangement start candidate point creation unit 3 determines whether or not the character string arrangement start candidate point can be arranged for each character of each character string. Thereafter, the minimum cost function value calculation unit 4 creates the character string arrangement start candidate point creation unit 3 and determines that the character string arrangement start candidate points can be arranged.
- FIG. 17 is a diagram showing a road link and a character string arrangement start candidate point along which character string 0 and character string 1 respectively follow.
- the map orientation is north (north up)
- the east-west direction is the x-axis
- a two-dimensional coordinate system is set with the north-south direction as the y-axis.
- the road links along the character string 0 are the links of the nodes A (0, 20), B (10, 20), C (10, 10), and D (30, 10), respectively (broken lines in FIG. 17). Link).
- the character string arrangement start point of the character string 0 preset in the character string data is I (12, 10).
- the road links along the character string 1 connect the node E (30, 0), the node D (30, 10), and the node F (30, 30) with links (links indicated by solid lines in FIG. 17). Consists of. It is assumed that the character string arrangement start point of the character string 1 preset in the character string data is J (30, 12).
- FIG. 18 is a diagram showing the sizes of characters included in the character string 0 and the character string 1, respectively.
- FIG. 18 (a) shows the character size of the character string 0, and FIG. The size of 1 character is shown.
- each of the characters “sentence”, “character”, “column”, and “0” included in the character string 0 has a vertical width of 5 and a horizontal width of 3.
- the “sentence”, “character”, “column”, and “1” characters included in the character string 1 have a vertical width of 5 and a horizontal width of 3 similarly. It shall be.
- the interval RCgap between the road link and each character of the character string 0 and the character string 1 is “3”
- the character-to-character interval CCgap is “ ⁇ 2 (square root of 2)”.
- the character string arrangement start candidate point creation unit 3 creates five character string arrangement start candidate points PATTERN_NUM for each character string, and the character arrangement candidate point interval DIF_CAND_POINT for arranging each character of the character string. There “2" is assumed to be, the threshold overlap string threshold of duplicate numbers between string is assumed to be "5".
- all the parameters ⁇ 1 , ⁇ 2 , ⁇ 3 for calculating cost function values described later are set to “1”.
- the maximum value such as the above-mentioned intervals RCgap, CCgap, DIF_CAND_POINT, etc., which can be processed by the computer functioning as the character string arrangement device 1 is “MAX”.
- the value of each parameter mentioned above shall be preset for every character string in character string data.
- FIG. 19 is a flowchart showing a flow of creating a character string arrangement start candidate point by the character string arrangement apparatus according to the first embodiment. The process of step ST2 in FIG. Details are shown. Refer to FIG. 11 for the configuration of the character string arrangement start candidate point creation unit 3. First, the candidate point creation unit 6 inputs all the character strings included in the character string data, road links and character string arrangement start points corresponding to these character strings from the character string data acquisition unit 2.
- each character string input from the character string data acquisition unit 2 is expressed by a character string (i) having an index number i that can take a value from 0 to the number of character strings included in the character string data minus one.
- the candidate point creation unit 6 creates character string arrangement start candidate points for the number of candidate points PATTERN_NUM (here, 5) of the character string (i) in the road link along the character string (i) (step ST2a). That is, the candidate point creation unit 6 acquires the full length LinkLength of the road link from the data related to the road link along which the character string (i) follows, and sets the distance CandDif of the character string arrangement start candidate points of the character string (i) from the following formula: calculate.
- CandDif LinkLength / PATTERN_NUM
- the candidate point creation unit 6 creates a character string arrangement start candidate point from the first node of the road link along the character string (i) by the number of candidate points PATTERN_NUM at the interval CandDif along the road link.
- the first node of the road link along the character string (i) can be a character string arrangement start candidate point, but the end node of the road link along the character string (i) is a character string arrangement start candidate point. Do not become.
- each character string arrangement start candidate point is represented by a character string arrangement start candidate point (j) having an index number j that can take a value from 0 to the number of candidate points PATTERN_NUM. That is, the character string arrangement start candidate point (0) is Q0, the character string arrangement start candidate point (1) is Q1, the character string arrangement start candidate point (2) is Q2, the character string arrangement start candidate point (3) is Q3, The character string arrangement start candidate point (4) is Q4.
- the character string upward arrangement unit 7 arranges the character string (i) upward from the character string arrangement start candidate point (j), and determines whether the character string (i) can be arranged (step ST4a).
- the character string downward arrangement unit 8 arranges the character string (i) downward from the character string arrangement start candidate point (j), and determines whether the character string (i) can be arranged (step ST5a). Details of these processes will be described later. Moreover, although the case where the arrangement
- the candidate point deletion unit 9 determines whether the character string arrangement start candidate point (j) can be arranged in the character string based on the determination result of the character string arrangement possibility by the character string upward arrangement unit 7 and the character string downward arrangement unit 8. Is determined (step ST6a). Here, it is determined that the character string cannot be arranged either when the character string (i) is arranged upward by the character string upward arrangement unit 7 or when the character string (i) is arranged downward by the character string downward arrangement unit 8. In this case, the character string arrangement start candidate point (j) cannot be arranged in the character string. When the character string arrangement is impossible (step ST6a; NO), the candidate point deletion unit 9 deletes the character string arrangement start candidate point (j) (step ST7a). If the character string can be arranged (step ST6a; YES), the character string arrangement start candidate point (j) is left, and the process proceeds to step ST8a.
- step ST10a determines whether or not the processing after step ST2a has been performed for all the character strings (i) (step ST10a). If the index number i is less than the number of character strings and there is a character string (i) for which the above processing has not been performed (step ST10a; YES), the candidate point creation unit 6 adds a character string obtained by adding +1 to the index number i. (I) is specified (step ST11a), and the processing after step ST2a is performed. If the processing has been completed for all the character strings (i) (step ST10a; NO), the processing ends.
- FIG. 21 is a flowchart showing a flow of processing for determining whether or not to arrange a character string at a character string arrangement start candidate point, and corresponds to the processing of step ST4a and step ST5a in FIG. That is, both the character string upward arrangement unit 7 and the character string downward arrangement unit 8 determine the character string arrangement and the arrangement possibility in the process flow shown in FIG. Refer to FIGS. 7 and 8 for the configuration of the character string upward arrangement unit 7 and the character string downward arrangement unit 8.
- step ST1b character placement candidate points P0 to P20 are created on the road link.
- FIG. 22B shows the coordinate values of the character arrangement candidate points P0 to P20.
- the start character placement candidate point determination unit 11a searches for a character placement candidate point P ′ for starting the character placement (step ST2b).
- the character arrangement candidate point P ' is a point having the smallest distance from the character string arrangement start candidate point Q0 among the character arrangement candidate points P0 to P20.
- the character arrangement candidate point P ′ is the character arrangement candidate point P0 (character arrangement candidate point (0)).
- the upward character arrangement order determination unit 12a specifies a link where the character arrangement candidate point P ′ is present among the links constituting the road link along which the character string 0 follows, and the unit vector LoadVec (cos ⁇ , Using the declination angle ⁇ of sin ⁇ ), it is determined from the following formula (2) whether the character arrangement order is the forward direction or the reverse direction (step ST3b).
- the point P0 which is the character arrangement candidate point P ′, exists in a link connecting the node A and the node B (hereinafter referred to as road link ⁇ A, B ⁇ ), and therefore the unit vector is (cos0, sin0). ) Therefore, the character arrangement order is forward.
- the forward and reverse character arrangement order here is, as shown in FIG. 23 (a) and FIG. 23 (b), the direction in which the characters in the character string can be read to the left is the forward direction.
- the direction for right reading is the reverse direction.
- the character arrangement order is expressed by an index number m that can take a value from 0 to the number of characters ⁇ 1 in the character string (i). if ⁇ / 2 ⁇ ⁇ ⁇ / 2 forward direction else reverse direction (2)
- the following processing is performed in order from the character (step ST4b).
- the upward character temporary placement unit 13a temporarily places the m-th character in the placement order at the character placement candidate point P ′ using the following equation (3) (step ST5b).
- FIG. 24 is a diagram for explaining the temporary arrangement of characters at the character arrangement candidate point P ′.
- the character “sentence” forward direction
- the character arrangement candidate point P ′ character arrangement candidate point P0
- the lower right coordinates and upper right coordinates are as shown in FIG.
- the broken-line rectangle is a circumscribed rectangle of the character “sentence”.
- the determination processing unit 14a determines whether or not the character readability is impaired at the position temporarily arranged in the upward character temporary arrangement unit 13a (step ST6b), and based on the determination result. It is determined whether or not the character arrangement at the temporary arrangement position is possible (step ST7b). Here, if the determination processing unit 14a determines that the character arrangement is possible (step ST7b; YES), the character arrangement position is registered in the character position registration unit 15a (step ST8b). At this time, the four vertices of the lower left coordinate, the upper left coordinate, the lower right coordinate, and the upper right coordinate of the circumscribed rectangle of the character are registered as the character position.
- the upward character temporary arrangement unit 13a determines whether or not the above-described processing has been performed for all characters of the character string (i) (here, the character string 0) (step ST9b).
- the process proceeds to step ST10b.
- the determination processing unit 14a can arrange all the characters in the character string 0, it determines that the character string 0 can be arranged and ends the processing.
- step ST7b when the determination processing unit 14a determines that the character cannot be placed (step ST7b; NO), the upward character temporary placement unit 13a does not reach the number of character placement candidate points because the index number k does not reach the number of character placement candidate points. If there is an unexecuted character placement candidate point (k), the character is temporarily placed at the next character placement candidate point (k), and the process returns to step ST6b. If the processing is completed for all the character placement candidate points (k), it is determined that the placement of the character string 0 is impossible and the processing is terminated. These processes correspond to step ST12b.
- FIG. 25 is a flowchart showing the flow of determination processing for determining whether or not characters can be arranged by the determination processing section, and shows details of the processing in step ST6b in FIG. Refer to FIG. 14 for the configuration of the determination processing unit 14a.
- the character / road overlap determination unit 18 searches for an overlapping portion between the character and the road at the temporarily arranged position, and determines whether or not there is an overlap. Determination is made (step ST1c).
- the circumscribed rectangle of the character “sentence” whose arrangement order m of the character string 0 is 0 is overlapped with the road link ⁇ A, B, C, D ⁇ that is the road link along the character string 0. Is searched.
- FIG. 26 is a flowchart showing the flow of determination of overlap between characters and roads, and shows details of the processing in step ST1c in FIG.
- each link of a road link subject to duplication determination is represented by a link (n) having an index number n that can take a value from 0 to the number of links of the road link.
- the character and road duplication determination unit 18 searches for duplication between the character temporarily arranged by the upward character temporary arrangement unit 13a and the link (n) (step ST2d), and determines the presence or absence of duplication from the search result (step ST2d). Step ST3d). Here, if there is no overlap, the character / road overlap determination unit 18 stores the fact as determination result data (step ST4d), and if there is a overlap, stores that fact as determination result data (step ST5d).
- the character and road duplication determination unit 18 determines whether or not duplication determination with all the links of the road links subject to duplication determination has been performed (step ST6d).
- the processing is terminated.
- the overlap between the link ⁇ A, B, C, D ⁇ along which the character string 0 follows is determined. It is determined that the link ⁇ A, B ⁇ and the character “sentence” do not overlap.
- the overlap between the link ⁇ B, C ⁇ and the character “sentence” is determined.
- the road link ⁇ A, B, C, D ⁇ overlaps with the character “sentence” by repeating the same process
- the character “sentence” overlaps with the road link ⁇ A, B, C, D ⁇ . I understand that I do not. For this reason, it is determined that there is no duplication by the duplication judgment unit 18 for characters and roads. If there is an overlap between the character and the road, it is determined that the character cannot be placed at the temporarily placed position. If there is no overlap, the process proceeds to the next character interval determination process.
- the character interval determination unit 19 calculates the interval between the character temporarily arranged by the upward character temporary arrangement unit 13a and all the characters arranged immediately before, and compares the character interval with a predetermined threshold value. Whether the character spacing is wide or narrow is determined (step ST2c). In the calculation method of the character spacing, first, the distance between the vertices between the four vertices of the circumscribed rectangle of the temporarily arranged character and the four vertices of the circumscribed rectangle of all the characters arranged one before is obtained. Thereafter, the minimum distance among the obtained distances between vertices is set as the character spacing between the characters.
- the character spacing is set to MAX. That is, in the character string 0, since there is no character arranged before the character “sentence”, the character interval is MAX.
- the character spacing is greater than or equal to CCgap, it is determined that the character spacing is wide, and if it is less than CCgap, it is determined that the character spacing is narrow.
- the character “sentence” of the character string 0 is “wide character spacing” because the character spacing is MAX.
- the CC gap serving as a threshold is a value set in advance in the character string data as described above. If the character spacing is “narrow character spacing”, it is determined that characters cannot be placed at the temporarily placed position. If “character spacing is wide”, the process proceeds to the next character duplication judgment processing.
- the character duplication determination unit 20 searches for overlapping portions between the characters temporarily arranged by the upward character temporary arrangement unit 13a and all the characters arranged immediately before, and determines the presence or absence of duplication ( Step ST3c). If it is determined that there is an overlap between the characters, it is determined that the character cannot be placed at the temporarily placed position. If there is no overlap, the process ends. When the temporarily placed character is the 0th character in the placement order m, there is no character placed before that, so there is no overlap between the characters. For this reason, it is determined that there is no overlap between characters.
- the character position registration unit 15a registers the temporarily arranged character position.
- the character position registration unit 15a stores the lower left, upper left, lower right, The coordinates of the four vertices in the upper right are registered as character positions. That is, as shown in FIG. 24, the character position registration unit 15a stores the lower left coordinates (0, 17), upper left coordinates (0, 12), lower right coordinates (3, 17), upper right coordinates ( 3, 12) is registered.
- FIG. 27 is a diagram illustrating a case where the first character in the arrangement order m is provisionally arranged following the character in the arrangement order m of the 0th character.
- the circumscribed rectangle with the symbol A is the arrangement position of the character “sentence” whose arrangement order m is the 0th character
- the circumscribed rectangle with the symbol B is the character “character” with the first arrangement order m. Is the arrangement position.
- the character “sentence” whose arrangement order m is 0th is arranged based on the character arrangement candidate point P ′ (character arrangement candidate point P0) at which character arrangement starts, but the first character “character” whose arrangement order m is 1 Are temporarily arranged based on the character arrangement candidate point P1 next to the character arrangement candidate point P ′.
- the character / road overlap determination unit 18 determines the overlap between the character and the road in the same manner as described above. In this case, it is determined that the character “letter” does not overlap with the road. Thereafter, the character spacing determination unit 19 obtains the character spacing between the temporarily placed character “character” and the immediately preceding character “sentence”, and determines whether or not the character placement is possible based on this character spacing. To do. In this case, the distances between the four vertices of the circumscribed rectangle A of the character “sentence” and the four vertices of the circumscribed rectangle B of the character “letter”, that is, a total of 16 intervertex distances are calculated.
- the upward character temporary placement unit 13a temporarily places the character “character” at the subsequent character placement candidate point P2, so that the determination processing unit 14a Repeat the determination process. If it is determined that the character “letter” cannot be placed at the character placement candidate point P2, the character “letter” is further temporarily placed at the next character placement candidate point P3.
- FIG. 28 is a diagram illustrating an example of a temporary arrangement of the second character in the arrangement order m.
- the circumscribed rectangle attached with the reference symbol A1 is the arrangement position of the character “sentence” with the arrangement order m being the 0th character
- the circumscribed rectangle attached with the reference symbol A2 is the first character “character” with the arrangement order m. Is the arrangement position.
- the circumscribed rectangle to which the symbol B1 is attached is the position where the second character “string” in the arrangement order m is provisionally arranged.
- the circumscribed rectangle B1 of the character “row” is provisionally arranged in parallel with the road link ⁇ A, B ⁇ in the same manner as the circumscribed rectangles A1 and A2 with reference to the character arrangement candidate point P5.
- the character / road overlap determination unit 18 determines the overlap between the character “string” and the road link.
- the circumscribed rectangle B1 of the character “string” and the link ⁇ B, C ⁇ are searched for overlapping, and it is determined that there is overlapping. Therefore, the character “string” cannot be arranged at the character arrangement candidate point P5.
- FIG. 29 is a diagram illustrating another example of the temporary arrangement of the second character in the arrangement order m.
- the circumscribed rectangle A1 is the arrangement position of the character “sentence” whose arrangement order m is the 0th character
- the circumscribed rectangle A2 is the arrangement of the character “character” whose arrangement order m is the first. Position.
- the upward character provisional arrangement unit 13a parallels the circumscribed rectangle B1 of the second character “column” in the arrangement order m to the road link ⁇ B, C ⁇ with the character arrangement candidate point P5 as a reference. Is temporarily arranged.
- FIG. 30 is a diagram illustrating still another example of the temporary arrangement of the second character in the arrangement order m.
- the example shown in FIG. 30 shows a case where the above-described processing is repeated and the upward character temporary arrangement unit 13a temporarily arranges the circumscribed rectangle B1 of the character “row” at the character arrangement candidate point P8.
- the character / road overlap determining unit 18 determines that there is no overlap between the character and the road.
- the character interval determination unit 19 determines that the character interval (minimum value of the distance between vertices) between the circumscribed rectangle A1 of the character “sentence” and the circumscribed rectangle A2 of the character “character” and the circumscribed rectangle B1 of the character “string” is Since ⁇ 2 (square root of 2), it is determined that the character spacing is greater than or equal to the threshold CCgap and the character spacing is wide.
- the character overlap determination unit 20 searches for the overlap between the circumscribed rectangle B1 of the character “string” and both the circumscribed rectangle A1 of the character “sentence” and the circumscribed rectangle A2 of the character “letter”. judge. Therefore, it is determined that the character “string” cannot be arranged at the character arrangement candidate point P8.
- the character string 0 By determining whether or not the character string 0 can be arranged for each character by repeating the above-described processing, it is determined that the character string 0 can be arranged while maintaining readability when arranged upward as shown in FIG. At this time, the character arrangement candidate point of each character in the upward arrangement maintaining the readability of the character string 0 is determined.
- the character “sentence” is the character placement candidate point P0
- the character “letter” is the character placement candidate point P3
- the character “string” is the character placement candidate point P10
- the character “0” is the character placement candidate point P11. Deploy.
- all the characters in the character string 0 can be arranged on one side (upward) with the road link as a boundary with respect to the character arrangement candidate points P0 to P20. Therefore, the character string 0 can be arranged upward.
- the downward character arrangement order determination unit 16b determines the character arrangement order from the following equation (5) using the unit vector LoadVec (cos ⁇ , sin ⁇ ) of the link where the character arrangement candidate point P ′ exists. if ⁇ / 2 ⁇ ⁇ ⁇ / 2 reverse direction else forward direction (5)
- the downward character provisional arrangement unit 17b provisionally arranges the character “0” having the arrangement order m in the character string 0, which is the 0th character, with reference to the character arrangement candidate point P0.
- the vertex coordinates (four vertices) of the circumscribed rectangle of the temporarily arranged character are calculated from the following equation (6).
- the determination processing unit 14b determines whether or not the character “0” can be arranged at the character arrangement candidate point P0. Since this determination process is the same as that of the determination processing unit 14a described above, description thereof is omitted. Thereby, the character arrangement candidate point of each character in the downward arrangement maintaining the readability of the character string 0 is determined.
- FIG. 32 is a diagram illustrating an example of the upward arrangement and the downward arrangement of the character string 0.
- the character string 0 is arranged in the upward and downward directions described above, and the determination of whether or not the character string 0 is arranged is repeated for each character as shown in FIG. In this case, since all the characters in the character string 0 can be arranged on the other side (downward) with the road link as a boundary with respect to the character arrangement candidate points P0 to P20, the character string 0 can be arranged downward. .
- the candidate point deletion unit 9 of the character string arrangement start candidate point creation unit 3 determines whether arrangement is possible in upward arrangement and downward arrangement as described above.
- the character string arrangement start candidate point in which either the character string arrangement in the upward direction or the character arrangement in the downward direction cannot be arranged is deleted from the character string arrangement start candidate points created by the candidate point creation unit 6.
- the character string arrangement start candidate point Q0 is Not deleted.
- the character string upward arrangement unit 7 and the character string downward arrangement unit 8 arrange the character string 0 upward along the road link ⁇ A, B, C, D ⁇ with the character string arrangement start candidate point Q1 as a starting point. And it arrange
- the character string upward arrangement unit 7 arranges the character string 0 upward along the road link ⁇ A, B, C, D ⁇ with the character string arrangement start candidate point Q2 as a starting point, and determines whether or not arrangement is possible. Thereafter, the character string downward arrangement unit 8 determines whether or not the character string 0 can be arranged by arranging the character string 0 downward along the road link ⁇ A, B, C, D ⁇ starting from the character string arrangement start candidate point Q2. In this case, by performing the above-described processing, as shown in FIG. 33, the second character “character” in the arrangement sequence m of the character string 0 can be arranged downward.
- the character arrangement candidate point with the arrangement character m of the 0th character “0” is the point P8
- the character arrangement candidate point with the arrangement sequence m of the first character “string” is the point P15
- the arrangement sequence m is 2.
- the character arrangement candidate point of the second character “character” is P18.
- the character interval determination unit 19 determines the character interval. In this case, since the character spacing is “1”, it is less than CCgap and it is determined that the character spacing is narrow. As a result, the character “sentence” cannot be placed at the character placement candidate point P20. Subsequently, the downward character temporary placement unit 17b tries to temporarily place the character “sentence” at the next character placement candidate point, but there is no next character placement candidate point of P20. For this reason, the downward character temporary placement unit 17b indicates that it is impossible to place the character string 0 along the road link ⁇ A, B, C, D ⁇ starting from the character string placement start candidate point Q2. The candidate point deletion unit 9 is notified. As a result, the candidate point deletion unit 9 deletes the character string arrangement start candidate point Q2 from the character string arrangement start candidate points created by the candidate point creation unit 6.
- the minimum cost function value calculation unit 4 calculates the following formula: Using the cost function f represented by (8), the character string position at which the cost function value is minimized is calculated.
- I is the number of character strings
- i is an index number that identifies the character string.
- Overlap String (i) is a function indicating the overlap between character strings
- Angle (i) is a function indicating the maximum angle of a road link
- Dist (i) is a character string arrangement start candidate point and an input character string arrangement. It is a function indicating the distance from the start point.
- FIG. 35 is a flowchart showing the flow of the calculation process of the character string arrangement that minimizes the cost function value, and shows the details of the process of step ST3 in FIG. Note that FIG. 15 is referred to for the configuration of the minimum cost function value calculation unit 4.
- an index number that can take a value from 0 to the number of combinations of the character string arrangement start candidate points for each combination of the character string arrangement start candidate points determined to be arranged by the character string arrangement start candidate point creation unit 3 It is expressed by a combination of na (na).
- the character string arrangement start candidate points of character string 0 are Q0 (0, 20) and Q1 (8, 20) by the processing up to the above, and the character string arrangement start candidate of character string 1 As shown in FIG. 34, the points are Q5 (30, 0) and Q6 (30, 6). Therefore, combinations of character string arrangement start candidate points are ⁇ Q0, Q5 ⁇ , ⁇ Q0, Q6 ⁇ , ⁇ Q1, Q5 ⁇ , ⁇ Q1, Q6 ⁇ .
- the minimum cost function value calculation unit 4 first calculates a cost function value for the combination ⁇ Q0, Q5 ⁇ (combination (0)).
- the overlapping function calculation unit 21 between character strings performs overlapping function Over String (i) between the character strings in the cost function f for all the character strings along the road link corresponding to the combination (na) of the character string arrangement start candidate points. Are respectively calculated (step ST2e).
- the duplication function calculation unit 21 between character strings calculates the degree of duplication between a character string for which the degree of duplication is first calculated and other character strings. When the degree of duplication is calculated from the character string 0, duplication with the character string 1 that is a character string other than the character string 0 is searched.
- the road link angle function calculation unit 22 indicates the angle of the road link along the character string in the cost function f for all the character strings along the road link corresponding to the combination (na) of the character string arrangement start candidate points.
- the value of the function Angle (i) is calculated (step ST3e).
- the road link angle function calculation unit 22 calculates the angle formed by each link of the road links ⁇ A, B, C, D ⁇ along which the character string 0 is along.
- the distance function calculation unit 23 includes each character string arrangement start candidate point of the combination (na) of character string arrangement start candidate points, and the character string arrangement start point acquired from the character string data by the character string data acquisition unit 2.
- the value of the function Dist (i) indicating the distance is calculated (step ST4e).
- the distance between the character string arrangement start candidate points Q0 and Q1 and the character string arrangement start point for the character string 0 and the character string arrangement start candidate points Q5 and Q6 and the character string arrangement start for the character string 1 The distance to the point is calculated.
- step ST5e the duplication function calculation unit 21, the road link angle function calculation unit 22, and the distance function calculation unit 23 of the character strings perform all the characters along the road link corresponding to the combination (na) of the character string arrangement start candidate points. It is determined whether or not processing has been performed on the column (i). If there is an unexecuted character string (i) (step ST5e; YES), the index number i is incremented by 1 (step ST7e), and the processing after step ST2e is repeated for the next character string.
- step ST5e If there is no unexecuted character string (i) (step ST5e; NO), the function value adding unit 24 uses the overlapping function calculating unit 21, the road link angle function calculating unit 22, and the distance function calculating unit 23 between the character strings. The calculated function values are added together to calculate a cost function value corresponding to the combination (na) of character string arrangement start candidate points (step ST6e).
- step ST8e the cost function value calculated in step ST6e is the minimum
- the cost function value determined last time and the cost function value determined this time are compared in magnitude, and if the cost function value determined this time is small (step ST8e; YES), the function value adding unit 24 has the smallest cost function.
- the value and the combination (na) corresponding to the cost function value are updated (step ST9e).
- step ST8e the function value adding unit 24 determines whether or not the cost function calculation processing has been performed for all combinations (na) of the character string arrangement start candidate points. Determination is made (step ST10e). If there is no unimplemented combination (na) (step ST10e; NO), the process is terminated. If there is an unimplemented combination (na) (step ST10e; YES), the index number na is incremented by 1 (step ST11e), and the processes after step ST2e are repeated.
- FIG. 36 is a flowchart showing the flow of calculation processing of overlapping function values between character strings, and shows details of the processing of step ST2e in FIG. Yes.
- Each character string along the road link corresponding to the combination (na) of character string arrangement start candidate points is represented by a character string (i) with an index number i that can take a value from 0 to the number of character strings.
- each character string other than the character string for which the degree of duplication is calculated is calculated from 0.
- the duplication function calculation unit 21 between characters has a counter that counts the duplication number of character strings, and the value of the counter is represented by a parameter count.
- the character string upward arrangement unit 25a of the character overlap function calculation unit 21 arranges the character string (i) upward along the road link corresponding to the combination (na) of the character string arrangement start candidate points ( Step ST2f).
- the character string downward arrangement unit 25b arranges the character string (i) downward along the road link corresponding to the combination (na) of character string arrangement start candidate points (step ST3f).
- the character string to be subjected to overlap calculation is the character string 0
- the character string 0 is arranged upward and downward starting from the character string arrangement start candidate point Q0. Note that the upward arrangement and the downward arrangement are performed by the same processing as that described with reference to FIG.
- the character string downward arrangement unit 25b arranges the character string (ia) other than the character string (i) downward along the road link corresponding to the combination (na) of character string arrangement start candidate points (step ST5f). .
- the character string other than the character string to be subjected to the overlap calculation is the character string 1, the character string 1 is arranged upward and downward from the character string arrangement start candidate point Q5.
- each character in the character string (i) is represented by a character (la) having an index number la that can take a value from 0 to the number of characters in the character string (i), and each character in the character string (ia) is represented by It is represented by a character (lb) having an index number lb that can take a value from 0 to the number of characters of the character string (ia).
- the character string duplication calculation unit 25c includes the character (la) of the character string (i) and the character (lb) of the character string (ia) that is one of the character strings other than the character string (i). Are determined (step ST7f).
- the character string (i) is the character string 0
- the character string (ia) is the character string 1.
- FIG. 37 is a diagram illustrating a case where the character string 0 is arranged upward and downward from the character string arrangement start candidate point Q0, and the character string 1 is arranged upward and downward from the character string arrangement start candidate point Q5. is there.
- step ST8f the character string duplication calculation unit 25c determines whether or not duplication has been investigated for all the characters (lb) in the character string (ia).
- the character string overlap calculation unit 25c adds +1 to the index number lb (step ST10f), returns to step ST7f, and returns the character string 0.
- the character string duplication calculation unit 25c uses the duplication number of the character string (i) to be subjected to duplication calculation to calculate a character from the following equation (9).
- the value of the overlap function Over String (i) between the columns is calculated (step ST15f).
- the duplication number (i) in the following formula (9) is the duplication number of the character string (i).
- Over String (0) 0.
- FIG. 38 is a flowchart showing the flow of the road link angle function value calculation process, showing details of the process in step ST3e in FIG.
- Each character string along the road link corresponding to the combination of character string arrangement start candidate points is represented by a character string (i) with an index number i that can take a value from 0 to the number of character strings.
- each node constituting the road link along which the character string (i) follows is specified by an index number lc that can take a value from 0 to the number of nodes of the road link ⁇ 2.
- the road link angle function calculation unit 22 represents the angle formed by the road link along the character string (i) as Angle (i).
- the road link angle function calculation unit 22 uses the three nodes in the road link along which the character string (i) follows, and calculates the two links connected to each of the three adjacent nodes according to the following equation (10). Angle lc (i) indicating the angle is calculated (step ST2g).
- n lc , n lc + 1 , and n lc + 2 are three nodes arranged continuously in the road link along the character string (i).
- the road link angle function calculation unit 22 calculates the value of the function Angle lc (i) calculated this time in the road link along the character string (i). It is determined whether or not a function value indicating an angle formed by two links connecting the three nodes to be calculated is larger than the set Angle (i) (step ST3g). Here, if the value of Angle lc (i) is larger than the value of Angle (i) (step ST3g; YES), the road link angle function calculation unit 22 calculates the value of the function Angle (i) as the function calculated this time. Update with the value of Angle lc (i) (step ST4g).
- Angle (i) max ⁇ Angle lc (i) ⁇ (11)
- step ST3g; NO If the value of Angle lc (i) is equal to or smaller than Angle (i) (step ST3g; NO), or the processing of step ST4g is completed, the road link angle function calculation unit 22 calculates the road along which the character string (i) follows. It is determined whether or not the above processing has been performed for all nodes in the link (step ST5g).
- the road link angle function calculation unit 22 adds +1 to the index number lc (step ST6g), and performs the processing after step ST2g for the next three nodes in the road link along which the character string (i) follows.
- Angle lc (i) is repeated until it is determined that the above processing has been performed for all the nodes in the road link along which the character string (i) follows (Step ST5g; NO).
- the value of Angle (i) is updated according to In FIG. 20, the function Angle (0) indicating the angle at the road link along which the character string 0 follows is 50.
- the distance function calculation unit 23 performs a character string arrangement start point (hereinafter referred to as an input character string arrangement start point) for the character string (i) preset in the character string data according to the following formula (12), a character string A value of a function Dist (i) indicating a distance from the arrangement start candidate point is calculated.
- (Q xi , Q yi ) in the following equation (12) is the position of the character string arrangement start candidate point of the character string (i).
- (S xi , S yi ) is an input character string arrangement start point of the character string (i).
- the character string arrangement start candidate point of character string 0 is Q0
- (Q x0 , Q y0 ) Q0 (0, 20).
- the function value adding unit 24 calculates the cost function value f according to the above equation (8).
- the above processing is also performed for other combinations ⁇ Q0, Q6 ⁇ , ⁇ Q1, Q5 ⁇ , ⁇ Q1, Q6 ⁇ of character string arrangement start candidate points.
- the cost function value is as shown in FIG.
- the minimum cost function value calculation means 4 determines that the cost function value f is minimum when ⁇ Q0, Q6 ⁇ . Therefore, ⁇ Q0, Q6 ⁇ is stored in the output character string arrangement start candidate point storage area 5.
- the character string arrangement start candidate point set stored in the output character string arrangement start candidate point storage unit 5 is used to Character strings can be arranged at positions where there is little overlap between columns.
- the character string arrangement start candidate point set ⁇ Q0, Q6 ⁇ is used for character string arrangement.
- the character string data acquisition unit 2 that acquires data of the character string to be arranged on the display screen, and the arrangement of the character string acquired by the character string data acquisition unit 2
- a character string arrangement start candidate point creation unit 3 that creates a character string arrangement start candidate point on the display screen to be started, and a character string arrangement start candidate point created by the character string arrangement start candidate point creation unit 3
- Factors that influence the readability of the character strings based on the positional relationship between the character strings in each of the arrangements in such a way that the readings are in the forward direction in the opposite directions above.
- a minimum cost function value calculating unit 4 for calculating a cost function value for evaluating an overlap, an angle formed by a road link, and a distance between an input character string arrangement start point and a character string arrangement start candidate point), and a cost function value having a minimum value Position candidate And an output string arrangement candidate start point storage unit 5 for storing a string arrangement candidate start point for changing the starting position.
- Embodiment 2 In the first embodiment, by minimizing the cost function value indicating the duplication of the character string pairs arranged upward and downward with the road link in between, the character strings overlap with each other in any map orientation. An apparatus has been shown in which character string arrangement start candidate points that are few positions are determined and character strings are rearranged based on the character string arrangement start candidate points. In the second embodiment, a mode will be described in which not only overlapping character strings but also a position where there is little overlap between character strings and symbols is determined as a character string arrangement start candidate point. Also, the second embodiment is different from the first embodiment in that a genetic algorithm (hereinafter referred to as GA) is used when obtaining the minimum value of the cost function f.
- GA genetic algorithm
- FIG. 40 is a block diagram showing a configuration of a character string arrangement device according to Embodiment 2 of the present invention.
- the character string arranging device 1A according to the second embodiment is a device that constitutes a map display device used for, for example, a navigation device, and is a link that represents a road on a map.
- a character string indicating information such as the name is arranged along the line. Also in the following description, a case where the character string arranging device 1A arranges a character string indicating a road name or the like along a road link of the road will be described. In FIG.
- a character string arrangement device 1A includes a character string data acquisition unit 2, a character string arrangement start candidate point creation unit 3, an output character string arrangement start candidate point storage unit 5a, a symbol data acquisition unit 26, An individual initialization unit 27, a cost function value calculation unit 28 for each individual, a cost function value minimum individual storage unit 29, a convergence determination unit 30, an individual re-creation unit 31, a crossover unit 32, and a mutation unit 33 are provided.
- the constituent units 27 to 33 extract the minimum cost function value using the GA.
- the character string data acquisition unit 2 is a component that acquires character string data from an external storage device.
- the character string data is, for example, a character string of a road name to be displayed on a map screen, road link data indicating a road link along which the character string is included, and a character string on the map screen. Is a data including a character string arrangement start point indicating a position where the arrangement of the character string starts.
- the symbol data acquisition unit 26 is a component that acquires symbol data from an external storage device.
- the symbol data is, for example, data indicating a symbol included in map data used for map display and displayed on a road or along a road on a map screen, and a symbol arrangement indicating a position where the symbol is arranged Data including points. In the case of a navigation device, a symbol indicating the current position of the host vehicle can be mentioned.
- the character string arrangement start candidate point creation unit 3 starts arrangement of the character string on the map screen when changing the character string arrangement start point of the character string acquired from the character string data by the character string data acquisition unit 2.
- This is a component that creates point candidates (hereinafter referred to as character string arrangement start candidate points).
- the individual initialization unit 27 creates a combination of character string placement start candidate points to be processed first from a combination of character string placement start candidate points created by the character string placement start candidate point creation unit 3 and determined to be placeable. It is a component. In this way, the character string arrangement start candidate points are selected with equal probability from the character string arrangement start candidate points created by the character string arrangement start candidate point creation unit 3, and the individual to be processed first is determined. Processing is called individual initialization. Details of this processing will be described later with reference to FIG.
- the cost function value calculation unit 28 for each individual has a factor that affects the readability of the character string in a pair of a character string arranged upward from a character string arrangement start candidate point for each individual and a character string arranged downward.
- a function that indicates the overlap between character strings in each layout a function that indicates the angle between adjacent road links, a function that indicates the distance between the character string layout start point and the text string layout start candidate point obtained from the string data, and a symbol
- the cost function value is calculated by adding together the function values indicating the overlap between the character string and the character string, and the individual having the smallest cost function value and the cost function value are obtained.
- the cost function value minimum individual storage unit 29 is a component that stores the minimum value of the cost function value calculated by the cost function value calculation unit 28 for each individual and the individual, and stores the cost function value for each stored individual. Among the minimum values, the minimum cost function and its individual are stored in the output character string arrangement start candidate point storage unit 5a.
- the output character string arrangement start candidate point storage unit 5a is a storage unit that stores the minimum cost function value and its individual among the individual stored in the cost function value minimum individual storage unit 29 and its cost function value.
- the convergence determination unit 30 is a configuration unit that determines whether or not the minimum value of the cost function value for each individual stored in the cost function value minimum individual storage unit 29 has converged to a certain level.
- the individual re-creation unit 31 selects a predetermined number of individuals by selecting a character string arrangement start candidate point with a predetermined selection probability from the individual initialized by the individual initialization unit 27 or the individual previously created by itself. This is a component to be recreated.
- the crossover unit 32 further selects two individuals from a plurality of individuals to be crossed selected at a predetermined probability (crossover probability CROSSOVER) from the individuals created by the individual recreating unit 31, and a character string between the selected individuals.
- the mutation unit 33 uses the character string arrangement start candidate points of the individual created by the individual re-creation unit 31 and the individual subjected to the crossover process in the crossover unit 32 with a predetermined probability (mutation probability Mutation).
- This is a configuration unit for converting to another character string arrangement start candidate point selected from the character string arrangement start candidate points registered in the individual.
- the character string data acquisition unit 2, the character string arrangement start candidate point creation unit 3, the output character string arrangement start candidate point storage unit 5a, the symbol data acquisition unit 26, the individual initialization unit 27, and the cost function value calculation unit for each individual 28, the cost function value minimum individual storage unit 29, the convergence determination unit 30, the individual re-creation unit 31, the crossover unit 32, and the mutation unit 33 cause a computer to execute a character string arrangement program according to the gist of the present invention.
- This is realized as a specific means in which hardware and software cooperate. That is, the functions of the components 2, 3, 26 to 33 are defined in each program module constituting the character string arrangement program.
- storage part 5a is constructed
- the storage device include a hard disk device, a semiconductor memory, a drive device for storage media such as a CD and a DVD, and the like.
- FIG. 41 is a block diagram showing the configuration of the cost function value calculation unit for each individual in FIG. 40, and FIG. 41 (a) shows the overall configuration of the cost function value calculation unit 28 for each individual.
- 41 (b) shows the configuration of the symbol and character string overlap function calculator 34 in FIG. 41 (a).
- the cost function value calculation unit 28 for each individual includes a duplication function calculation unit 21a between character strings, a road link angle function calculation unit 22a, a distance function calculation unit 23a, and a symbol and character string duplication function calculation.
- Unit 34 and a function value adding unit 24a As shown in FIG. 41 (b), the symbol / character string overlap function calculator 34 includes a circumscribed rectangle creating unit 35, a circumscribed rectangle / symbol overlap determining unit 36, and a circumscribed rectangle / symbol overlap function calculating unit. 37.
- the duplication function calculation unit 21a between character strings is a character string when the character string placement start candidate point of the individual initialized by the individual initialization unit 27 or the individual recreated unit 31 is placed as a starting point.
- This is a configuration unit that determines the overlap between characters using a function that indicates the overlap between the character strings.
- the road link angle function calculation unit 22a is a component that calculates the value of the function Angle (i) that indicates the angle formed by the road link along which the character string acquired from the character string data follows.
- the distance function calculation unit 23 a is created by the character string arrangement start point of the character string acquired from the character string data by the character string data acquisition unit 2 and the individual or individual re-creation unit 31 initialized by the individual initialization unit 27.
- Function value plus combined unit 24a functions Overlap String (i), the value of the function Angle (i), the function Dist (i) and function Overlap symbol (i) the sum total of consisting cost function f (i), the individual initial
- the character string arranged at the character string arrangement start candidate point of the individual initialized by the conversion unit 27 or the individual created by the individual re-creation unit 31 is calculated, and the value of the cost function f (i) is minimized.
- the individual of the minimum cost function value determined by the function value adding unit 24 a and its cost function value are stored in the cost function value minimum individual storage unit 29.
- the symbol and character string duplication function calculation unit 34 uses the character string arrangement start candidate point of the individual initialized by the individual initialization unit 27 or the individual re-creation unit 31 to arrange the characters in the respective cases. This is a configuration unit that determines an overlap between a string and a symbol using a function indicating an overlap between a character string and a symbol.
- the circumscribed rectangle creating unit 35 arranges the characters constituting the character string upward and downward two by two via a road link along which the character string to be processed follows, and these four characters arranged upward and downward This is a configuration unit that creates a circumscribed rectangle that circumscribes.
- the circumscribed rectangle and symbol overlap determining unit 36 is a component that determines the overlap between each symbol acquired from the symbol data by the symbol data acquiring unit 26 and the circumscribed rectangle created by the circumscribed rectangle creating unit 35.
- the circumscribed rectangle and symbol overlap function calculating unit 37 uses the circumscribed rectangle and symbol overlap obtained by the overlap determination by the circumscribed rectangle and symbol overlap determining unit 36 to overlap the circumscribed rectangle and symbol Overlap symbol (i). ) To calculate the value of.
- the individual recreating unit 31 includes an individual ordering unit 38 and a recreating unit 39.
- the individual ordering unit 38 performs the order according to the cost function value calculated by the cost function value calculation unit 28 for each individual, with respect to the individual initialized by the individual initialization unit 27 or the individual previously created by itself. It is the component which provides.
- the recreating unit 39 uses the individual selected by the body initializing unit 27 or the previous time with a predetermined selection probability determined using the order given by the individual ordering unit 38 and the cost function value corresponding thereto.
- the configuration unit re-creates a predetermined number of individuals by selecting a character string arrangement start candidate point from the created individuals. The method for calculating the selection probability will be described later with reference to FIG.
- FIG. 43 is a block diagram showing the configuration of the crossing part in FIG. 43, the crossover unit 32 includes a crossover target individual determination unit 40, a two individual determination unit 41, a crossover position determination unit 42, and a two-individual crossover unit 43.
- the crossover target individual determination unit 40 is a configuration unit that selects a crossover target individual that is a target for performing crossover processing with a predetermined probability (crossover probability CROSSOVER) from the individuals created by the individual recreating unit 31.
- the two-individual determination unit 41 is a configuration unit that determines two individuals to perform crossover processing from the cross-target individual selected by the cross-target individual determination unit 40.
- the crossover position determination unit 42 is a component that determines a character string arrangement start candidate point (crossover position in the individual) for executing the crossover process among the two individuals determined by the two-individual determination unit 41.
- the two-individual crossover unit 43 is a component that executes a crossover process of replacing the character string arrangement start candidate point that is the crossover position determined by the crossover position determination unit 42 between the two individuals determined by the two-individual determination unit 41. is there.
- FIG. 44 is a diagram illustrating an example of an individual handled in the second embodiment.
- the individual is a combination of character string arrangement start candidate points that are created for each character string by the character string arrangement start candidate point creation unit 3 and determined to be arranged.
- the individual 0 combines Q0 of the character string arrangement start candidate points Q0 and Q1 of the character string 0 and Q6 of the character string arrangement start candidate points Q5 and Q6 of the character string 1. Composed.
- the individual is data in which the character string arrangement start candidate points are arranged in the order close to the origin. That is, since the character string arrangement start candidate point Q0 of the character string 0 is closer to the origin than the character string arrangement start candidate point Q6 of the character string 1, the individual 0 is data in which the arrangement of Q0 and Q6 is defined.
- FIG. 45 is a flowchart showing a flow of operations performed by the character string arrangement device according to the second embodiment.
- the outline of the process of acquiring the character string arrangement start candidate point will be described with reference to FIG.
- the character string data acquisition unit 2 acquires character string data from an external storage device such as a map database, and all character strings included in the character string data, and road links and character strings corresponding to the respective character strings.
- An arrangement start point is extracted (step ST1h).
- the symbol data acquisition unit 26 acquires symbol data from an external storage device such as a map database, and extracts all symbols included in the symbol data and their arrangement positions (step ST2h).
- FIG. 46 is a diagram illustrating an example of the relationship between the road link along the character string 0 and the character string 1, the character string arrangement start point, and the symbol position, and the east-west direction on the map screen in which the map orientation is north Is a two-dimensional coordinate system with x-axis and north-south direction as y-axis.
- the road links along the character string 0 are links of nodes A (0, 20), B (10, 20), C (10, 10), and D (30, 10), respectively (broken lines in FIG. 46). Link).
- the character string arrangement start point of the character string 0 preset in the character string data is I (12, 10).
- the road links along the character string 1 connect the nodes E (30, 0), D (30, 10), and F (30, 30) with links (links indicated by solid lines in FIG. 46). Consists of. It is assumed that the character string arrangement start point of the character string 1 preset in the character string data is J (30, 12).
- Each of the characters “sentence”, “character”, “column”, and “0” included in the character string 0 has a vertical width of 5 and a horizontal width of 3, and the “sentence”, “ Similarly, each of the characters “character”, “column”, and “1” is assumed to have a vertical width of 5 and a horizontal width of 3.
- the interval RCgap between the road link and each character of the character string 0 and the character string 1 is “3”
- the character-to-character interval CCgap is “ ⁇ 2 (square root of 2)”.
- the character string arrangement start candidate point creation unit 3 creates five character string arrangement start candidate points PATTERN_NUM for each character string, and the character arrangement candidate point interval DIF_CAND_POINT for arranging each character of the character string.
- the "2" is assumed to be, the threshold overlap string threshold of duplicate numbers between string is assumed to be "5".
- Parameters ⁇ 1 , ⁇ 2 , ⁇ 3 , and ⁇ 4 when calculating cost function values to be described later are all set to “1”.
- the maximum value such as the above-mentioned intervals RCgap, CCgap, DIF_CAND_POINT, etc., which can be processed by the computer functioning as the character string arrangement device 1A is “MAX”.
- the arrangement position of symbol 0 is K (5, 20) in FIG.
- L (30, 24).
- the number of individuals POPULATION_SIZE created by the individual initialization unit 27 and the individual re-creation unit 31 is set to “3”
- the crossing probability CROSSOVER selected as the individual to be crossed by the crossing unit 32 is set to 60%
- the mutation unit 33 As a mutation process, the mutation probability MUTATION for selecting an individual to convert the character string arrangement start candidate point is increased by 5%.
- CONVERGENCE_CONTINUOUS used for convergence determination by the convergence determination unit 30 is set to “5”
- CONVERGENCE_RATE is set to 50%. Note that the above-described parameters and probability values are set in advance in the character string data for each character string.
- the character string arrangement start candidate point creation unit 3 creates a character string arrangement start candidate point on a road link along which each character string acquired by the character string data acquisition unit 2 follows (step ST3h). At this time, the character string arrangement start candidate point creation unit 3 determines whether or not the character string arrangement start candidate point can be arranged for each character of each character string.
- the method of creating the character string arrangement start candidate point and determining whether or not to arrange the character string arrangement start candidate point is the same as in the first embodiment. In this case, as in the first embodiment, character string arrangement start candidate points Q0 and Q1 for character string 0 and character string arrangement start candidate points Q5 and Q6 for character string 1 are created.
- the individual initialization unit 27 combines POPULATION_SIZE character string arrangement start candidate points from the character string arrangement start candidate points created by the character string arrangement start candidate point creation unit 3 and determined to be arranged (individual ) Is created, so-called individual initialization is performed (step ST4h).
- a character string arrangement start candidate point is selected with equal probability for each character string, and an individual to be processed first is determined.
- Q0 and Q1 are created as character string arrangement start candidate points for character string
- Q5 and Q6 are created as character string arrangement start candidate points for character string 1.
- the cost function value calculation unit 28 for each individual overlaps or adjoins in pairs of a character string arranged upward and a character string arranged downward, starting from a character string arrangement start candidate point for each individual, according to the following equation (13). Deformation according to the angle between road links, the distance between the character string arrangement start point acquired from the character string data by the character string data acquisition unit 2 and the character string arrangement start candidate point, and the overlap between the symbol and the character string, respectively. A cost function including each function is calculated, and an individual having the minimum cost function value and its cost function value are calculated (step ST5h).
- the cost function value minimum individual storage unit 29 stores the minimum cost function value calculated by the cost function value calculation unit 28 for each individual and the individual (step ST6h).
- the parameter i in the following formula (13) indicates the index number of the character string, and Over String (i), Angle (i), Dist (i), ⁇ 1 , ⁇ 2 , ⁇ 3 are all It is assumed that the functions and variables are the same as those in the above equation (8). Further, Overlap String (i) is a function representing the overlap of a character string and a symbol, alpha 4 is a parameter for adjusting the value of the function Overlap symbol (i).
- f ′ (i) ⁇ 1 Overlap String (i) + ⁇ 2 Angle (i) + ⁇ 3 Dist (i) + ⁇ 4 Overlap symbol (i).
- f ′ ⁇ [i] f ′ (i) (13)
- the convergence determination unit 30 determines whether or not the minimum value of the cost function value for each individual stored in the minimum cost function value individual storage unit 29 has converged to a certain level (step ST7h). As a method of convergence determination, if the individual stored in the cost function value minimum individual storage unit 29 does not change CONVERGENCE_CONTINUOUS times, or CONVERGENCE_RATE% or more in the individual stored in the cost function value minimum individual storage unit 29 If the individuals have the same cost function value, it is determined that convergence has occurred at the minimum value of the cost function value. In other cases, it is determined that there is no convergence. If it is determined that there is convergence (step ST7h; YES), the process ends. If it is determined that there is no convergence (step ST7h; NO), the process proceeds to step ST8h.
- step ST8h the individual recreating unit 31 selects a character string arrangement start candidate point with a predetermined selection probability from the individual initialized by the individual initializing unit 27 or the individual previously created by itself. Recreate a number of individuals.
- the selection probability of an individual is calculated from the following equation (17).
- l is an index number for specifying each individual
- g l is the relative size of the cost function values of the individuals ordered by the individual ordering unit 38.
- Selection_prob l indicates the probability that the individual l is selected as a new individual.
- the crossover unit 32 further selects two individuals from a plurality of individuals to be crossed selected with a predetermined crossover probability CROSSOVER from the individuals created by the individual recreating unit 31, and a character string between the selected individuals.
- Crossover processing for exchanging a part of the combination of placement start candidate points is executed (step ST9h).
- the mutation unit 33 assigns the character string arrangement start candidate points of the individual created by the individual recreating unit 31 and the individual subjected to the crossover process by the crossover unit 32 to these individuals with a predetermined mutation probability Mutation. Conversion is made to another character string arrangement start candidate point selected from the registered character string arrangement start candidate points (step ST10h). When there are a plurality of other character string arrangement start candidate points, one of them is selected with equal probability.
- the cost function value calculation unit 28 for each individual determines whether or not there is no convergence by the convergence determination unit 30, and determines whether or not the above-described processing has been executed a predetermined number of times (step ST11h). .
- the convergence determination unit 30 determines whether or not the above-described processing has been executed a predetermined number of times.
- step ST11h the cost function value for each individual
- the calculating unit 28 inputs the individual created by the individual re-creating unit 31, the individual subjected to the crossover process by the crossover unit 32, and the individual subjected to the process by the mutation unit 33, and after step ST5h Repeat the process.
- FIG. 48 is a flowchart showing the flow of cost function value calculation processing for each individual, and shows details of processing in step ST5h in FIG.
- each individual for which a cost function value is calculated is represented by an individual (nb) having an index number nb that can take a value from 0 to the number of individuals.
- Each character string along the road link corresponding to the individual (nb) is represented by a character string (i) with an index number i that can take a value from 0 to the number of character strings.
- the character overlap function calculation unit 21a calculates the value of the function Over String (i) indicating the overlap between character strings for the character string (i) corresponding to the individual (nb) (step ST2i).
- the calculation method of the value of the function Over String (i) is the same as that of the character overlap function calculation unit 21 in the first embodiment.
- the individual 1 and the individual 2 shown in FIG. 47 as shown in the column (a) of FIG. 49, the character 0 and the character string 1 are 0 in the individual 0, and the character string 0 and the character string 1 are in the individual 1. 40 for the individual 2 and 40 for the character string 0 and the character string 1.
- the road link angle function calculation unit 22a calculates the value of the function Angle (i) indicating the angle of the road link along the character string (i) for the character string (i) corresponding to the individual (nb) ( Step ST3i).
- the calculation method of the value of the function Angle (i) is the same as that of the road link angle function calculation unit 22 of the first embodiment.
- the individual 1 and the individual 2 shown in FIG. 47 as shown in the column (b) of FIG. 50, 0 for character string 1, 50 for character string 0 for individual 2, and 0 for character string 1.
- the distance function calculation unit 23a calculates the character string arrangement start candidate point of each character (nb) and the character string arrangement start point of the character string (i) acquired from the character string data by the character string data acquisition unit 2.
- the value of the function Dist (i) indicating the distance is calculated (step ST4i).
- the calculation method of the value of the function Dist (i) is the same as that of the distance function calculation unit 23 of the first embodiment.
- the character string 0 in the individual 0 is ⁇ 244
- the character string 1 is 12, and the individual 1 is the character string 0. ⁇ 116, 6 for character string 1, ⁇ 116 for character string 0 in individual 2, and 12 for character string 1.
- the symbol and character string overlap function calculation unit 34 calculates a function value indicating the overlap between the character string (i) corresponding to the individual (nb) and the symbol (step ST5i). Details of this processing will be described later with reference to FIG.
- the duplication function calculation unit 21a for character strings, the road link angle function calculation unit 22a, the distance function calculation unit 23a, and the duplication function calculation unit 34 for symbols and character strings include all characters corresponding to the individual (nb). It is determined whether or not processing has been performed on the column (i). If there is an unexecuted character string (i) (step ST6i; YES), the index number i is incremented by +1 (step ST7i), and the processing after step ST2i is repeated for the next character string.
- step ST6i If there is no unexecuted character string (i) (step ST6i; NO), the character string overlap function calculation unit 21a, the road link angle function calculation unit 22a, the distance function calculation unit 23a, and the symbol and character string overlap function calculation
- the unit 34 determines whether or not all the individuals (nb) have been processed (step ST8i). If there is an unexecuted individual (nb) (step ST8i; YES), the index number nb is incremented by +1 (step ST9i), and the processing after step ST2i is repeated for the next individual. If there is no unexecuted individual (nb) (step ST8i; NO), the process is terminated.
- FIG. 50 is a flowchart showing the flow of symbol and character string overlap function value calculation processing. The details of the processing of step ST5i in FIG. Show.
- Each character string corresponding to the individual (nb) is represented by a character string (i) having an index number i that can take a value from 0 to the number of character strings.
- a circumscribed rectangle consisting of two characters in each of the upwardly and downwardly arranged character string (i) is represented by a circumscribed rectangle (nc) having an index number nc that can take a value from 0 to the number of characters ⁇ 1 of the character string (i). It expresses with.
- each symbol for which the degree of overlap is calculated is represented by a symbol (ka) having an index number ka that can take a value from 0 to the number of symbols.
- the symbol and character string overlap function calculation unit 34 has a counter that counts the number of symbols that overlap the character string, and the value of the counter is represented by a parameter count.
- the circumscribed rectangle creation unit 31 arranges the character string (0) upward along the road link corresponding to the individual (0) (step ST2j). Subsequently, the circumscribed rectangle creating unit 31 arranges the character string (0) downward along the road link (step ST3j). Thereby, in Embodiment 1 described above, the arrangement as shown in FIG. 32 is obtained.
- the circumscribed rectangle creating unit 31 specifies the left two characters in the character string (i) arranged upward and downward, and creates a circumscribed rectangle (nc) circumscribing these four characters (step ST4j). .
- the vertexes are T0 (0, 12) and T1 (0, 28) from each of the first two characters of the character string 0 arranged upward and downward.
- the circumscribed rectangle A3 is a circumscribed rectangle of each character of the character string 1 arranged upward and downward with the road link b as a boundary, and the circumscribed rectangle B3 is disposed upward and downward with the road link a as a boundary. It is a circumscribed rectangle of each character of the character string 0. 51, the symbol at the K position is symbol 0, and the symbol at the L position is symbol 1. As described in the description of step ST2h in FIG. 45, it is assumed that symbol 0 is located at K (5, 20) and symbol 1 is located at L (30, 24).
- the circumscribed rectangle and symbol overlap determining unit 36 determines whether or not there is an overlap between the circumscribed rectangle (nc) and the symbol (ka) (step ST5j).
- the circumscribed rectangle and symbol overlap determination unit 36 calculates overlap1 to overlap4 shown in the following equation (14).
- (x rect TopLeft , y rect TopLeft ) is the upper left coordinate of the circumscribed rectangle (nc)
- (x rect BottomMleft , y rect BottomLeft ) is the lower left coordinate of the circumscribed rectangle (nc)
- x rect BottomRight, y rect BottomRight) is the lower right coordinates of the circumscribed rectangle (nc)
- (x rect TopRight , y rect TopRight) shows the upper-right coordinates of the circumscribed rectangle (nc).
- (x symbol , y symbol ) indicates the coordinates of the symbol.
- the circumscribed rectangle and symbol overlap determining unit 36 determines that there is an overlap when the above overlap1 to overlap4 satisfy the following expression (15), and determines that there is no overlap otherwise.
- the circumscribed rectangle and symbol overlap determining unit 36 performs the above processing for all circumscribed rectangles (nc) that can be created from the character string (i). Is determined (step ST6j).
- the index number nc does not reach the number of characters ⁇ 1 in the character string (i) and it is determined that there is an unprocessed circumscribed rectangle (nc) (step ST6j; YES)
- the index number nc is incremented by +1.
- step ST7j the process returns to step ST4j, and the next circumscribed rectangle and symbol overlap are determined.
- step ST5j if it is determined in step ST5j that there is an overlap between the circumscribed rectangle (nc) and the symbol (ka), the circumscribed rectangle and symbol overlap determining unit 36 counts the number of symbols that overlap with the character string (i). The value count is incremented by +1 (step ST8j).
- step ST6j the index number nc reaches the number of characters ⁇ 1 in the character string (i) and it is determined that there is no unprocessed circumscribed rectangle (nc) (step ST6j; NO), or when the process of step ST8j is completed.
- the circumscribed rectangle and symbol The duplication determination unit 36 determines whether or not the above processing has been executed for all symbols (ka) (step ST9j). If it is determined that the index number ka reaches the number of symbols and there is no unprocessed symbol (ka) (step ST9j; NO), the process proceeds to step ST10j.
- step ST9j When it is determined that the index number ka does not reach the number of symbols and there is an unprocessed symbol (ka) (step ST9j; YES), the index number ka is incremented by 1 (step ST11j), and the process returns to step ST4j.
- the overlap between the next symbol and the character string (i) is determined.
- circumscribed rectangle 0 is created for character string 0 in the same manner as described above, and the overlap between circumscribed rectangle 0 and symbol 1 is determined.
- the number of symbols overlapping with the character string 0 is determined by repeating the above process.
- symbol 0 is the only symbol overlapping with character string 0.
- the number of symbols (ka) overlapping with the character string (i) is the overlapping number of character strings and symbols. Therefore, the overlapping number of the character string 0 and the symbol is “1”.
- the circumscribed rectangle / symbol overlap function calculation unit 37 calculates a circumscribed rectangle / symbol overlap function using the following equation (16) (step ST10j).
- the overlap symbol number (i) in the following formula (16) indicates the overlapping number of the character string i and the symbol.
- a duplication function of a character string and a symbol is calculated for the next character string and individual.
- the overlap symbol number of the character string 0 and the symbol of the character string 1 is 20 for the character string 0 for the individual 0, 0 for the character string 1, and the character number for the individual 1 0 in the column 0, 20 in the character string 1, 0 in the character string 0 in the individual 2, and 0 in the character string 1.
- the function value adding unit 24a adds the cost functions according to the above equation (13).
- the value of the cost function f of each individual is 82 + ⁇ 244 for the individual 0, 156 + ⁇ 116 for the individual 1, and 142 + ⁇ 116 for the individual 2 as shown in the column (e) of FIG.
- the cost function value minimum individual storage unit 29 holds the individual 0 to 2 and the value of the cost function f.
- the individual having the lowest value of the cost function f and the cost function value are output as characters.
- the character string arrangement start candidate points Q0 and Q5 of the individual 0 and the cost function value 82 + ⁇ 244 of the individual 0 are output character string arrangement start candidate points. It is stored in the storage unit 5a.
- the individual ordering unit 38 orders the individual stored in the cost function value minimum individual storage unit 29 in descending order of the value of the cost function f.
- the value of the cost function f of the individual 0 is 82 + ⁇ 244
- the value of the cost function f of the individual 1 is 156 + ⁇ 116
- the value of the cost function f of the individual 2 is 142 + ⁇ 116.
- Is 3 individual 1 is 2, and individual 3 is 1.
- the individual recreating unit 39 recreates POPULATION_SIZE individuals according to the above equation (17).
- the order of the individual 0 is 3, the order of the individual 1 is 2, and the order of the individual 3 is 1, the selection probability Selection_prob is the individual 0 as shown in the column (f) of FIG. 3/6, 1/6 for individual 1 and 2/6 for individual 2.
- the selection probability shown in the column (f) of FIG. 49 from the individual created by the individual initialization unit 27, for example, an individual as shown in FIG. It shall be created.
- a new individual is created by selecting a character string arrangement start candidate point from an old individual stochastically, an individual as shown in FIG. 52 is not always created.
- FIG. 53 is a flowchart showing the flow of the crossover process, and shows details of the process of step ST9h in FIG. FIG. 43 is referred to for the configuration of the crossing section 32.
- the number of crossover target individuals in the individual created by the individual initialization unit 27 is expressed by an index number nd that can take a value from 0 to the number of crossover target individuals.
- the crossover target individual determination unit 40 determines whether or not each individual is a crossover target from the individuals created by the individual initialization unit 27 (step ST1k).
- each individual becomes an individual to be crossed (nd) with a probability of CROSSOVER% (step ST2k), and becomes an individual that is not a crossover target with a probability of 100-CROSSOVER%.
- the two-individual determination unit 41 selects two individuals from the cross-target individual determined by the cross-target individual determination unit 40 (step ST3k).
- the individual 0 and the individual 2 are selected.
- the crossing position determining unit 42 determines the number of crossings between the two individuals selected by the two individual determining unit 41 (step ST4k).
- the character string arrangement start candidate point (arrangement start position) to be exchanged between individuals is specified as the number of intersections between two individuals, the number of intersections is referred to as “crossover position” for convenience. As shown in FIG.
- the determination method of the crossover position is data in which the individual character string arrangement start candidate points are arranged in the order from the origin, so that the individual is registered from the first individual (registered as the crossover target individual).
- the number of character string arrangement start candidate points is ⁇ 1)
- One character string arrangement start candidate point is determined with equal probability from the first character string arrangement start candidate points.
- the number of character string arrangement start candidate points registered in the individual 0 and the individual 2 is two, so the crossing position is 1.
- the two-individual crossover unit 43 executes a crossover process in which the character string arrangement start candidate points are replaced between the two individuals selected by the two-individual determination unit 41 from the crossover position determined by the crossover position determination unit 42. (Step ST5k). That is, the character string arrangement start candidate points at the cross position from the beginning of the two individuals are interchanged. In the above example, since the crossover position is 1, the first character string arrangement start candidate points of the individuals 0 and 2 are switched. By doing so, it becomes as shown in FIG.
- step ST6k Thereafter, the crossed individuals are excluded from the crossover target individuals (step ST6k), and the processes after step ST3k are repeated until the crossover processing is executed for all crossover target individuals (step ST7k).
- step ST7k since there are two crossing target individuals, the processing is ended after the above crossing.
- step ST10h the mutation unit 33 performs a so-called mutation process in which a character string arrangement start candidate point of some individuals is converted into another character string arrangement start candidate point.
- a character string arrangement start candidate point registered in an individual is converted to another character string arrangement start candidate point with a probability of Mutation%.
- the character string arrangement start candidate point Q1 corresponding to the character string 0 of the individual 2 is converted to another character string arrangement start candidate point by mutation.
- the character string arrangement start candidate point corresponding to the character string 0 is only Q0 except for Q1, so that Q1 of the individual 1 is changed to Q0.
- the cost function value calculation unit 28 for each individual calculates the cost function of each individual in the same manner as described above.
- the value of the cost function f of each individual is as shown in FIG.
- the individual having the lowest cost function value is stored.
- the individuals 0 and 1 are individuals with the lowest cost function values.
- the convergence determination unit 30 determines whether or not it has converged. In the above example, since two individuals among the three individuals have the minimum value 82 + ⁇ 244 of the cost function f value, it is determined that there is convergence. Thereby, the process ends.
- the character string arrangement start candidate point set stored in the output character string arrangement start candidate point storage unit 5a is used.
- Character strings can be arranged at positions where there is little overlap between columns or between character strings and symbols.
- the set of character string arrangement start candidate points ⁇ Q0, Q5 ⁇ is used for character string arrangement.
- the symbol data acquisition unit 26 that acquires the data of the symbols arranged on the display screen
- the cost function value calculation unit 28 for each individual uses the character string arrangement start candidate.
- Character strings are arranged so that readings are forward in opposite directions on the display screen starting from the position candidates created by the point creation unit 3, and the positional relationship between the character strings in each arrangement and the symbol data acquisition unit 26.
- Factors affecting the readability of the character string based on the positional relationship between the symbol and the character string acquired in 26 (duplication of character strings, angle formed by road links, input character string arrangement start point and character string arrangement start
- a cost function value for evaluating the distance to the candidate point and the overlap between the character string and the symbol is calculated.
- a link (line segment) indicating an image of a linear feature may be a link indicating a river or a railroad track, or a link indicating a boundary dividing a certain region. It is possible.
- the character string arrangement device can arrange the character string on the display screen without deteriorating the readability without causing an increase in the amount of information to be prepared. Suitable for displaying character strings.
- 1, 1A character string placement device 2 character string data acquisition unit, 3 character string placement start candidate point creation unit, 4 minimum cost function value calculation unit, 5, 5a output character string placement start candidate point storage unit, 6 candidate point creation Part, 7 character string upward placement part, 8 character string downward placement part, 9 candidate point deletion part, 10a, 10b character placement candidate point creation part, 11a, 11b start character placement candidate point determination part, 12a upward character placement order determination Part, 13a upward character temporary arrangement part, 14a, 14b determination processing part, 15a, 15b character position registration part, 16b downward character arrangement order determination part, 17b downward character temporary arrangement part, 18 character and road overlap determination part 19 character spacing determination unit, 20 character overlap determination unit, 21, 21a overlap function calculation unit between character strings, 22 and 22a road link angle function calculation Part, 23, 23a Distance function calculation part, 24, 24a Function value addition part, 25a Character string upward arrangement part, 25b Character string downward arrangement part, 25c Character string duplication calculation part, 26 Symbol data acquisition part, 27 Individual initialization Part, 28 Cost function value calculation part for each individual,
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Instructional Devices (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
表示画面上に配置する文字列のデータを取得する文字列データ取得部2と、文字列データ取得部2によって取得された文字列の配置を開始する表示画面上の文字列配置開始候補点を作成する文字列配置開始候補点作成部3と、文字列配置開始候補点作成部3で作成された文字列配置開始候補点を起点として表示画面上の相対する方向で読みがそれぞれ順方向となるように文字列を配置して、各配置の文字列同士の位置関係に基づいて、当該文字列の可読性に影響を与える因子を評価するコスト関数値を算出する最小コスト関数値算出部4と、コスト関数値が最小の位置候補を、文字列の配置開始位置を変更する際の文字列配置開始候補点として記憶する出力文字列配置開始候補点記憶部5とを備える。
Description
この発明は、例えば地名等の文字列を地図画面上に配置して表示する文字列配置装置、文字列配置候補決定方法、及び文字列配置候補決定用プログラムに関する。
地名等の文字列を地図画面に配置して表示する従来の技術としては、例えば特許文献1に開示されるものがある。特許文献1では、道路や河川、鉄道等の名前の文字列を、地図画面で道路や河川、鉄道を表すリンクに沿って配置するにあたり、文字列の可読性を考慮して、画面上で文字列の配置を開始する文字列配置開始点を決定している。
Shawn Edmondson, "A General Cartographic Labeling Algorithm", The International Journal for Geographic Information and Geovisualization, Volume 33, Number 4/ Winter 1996
特許文献1に代表される従来の技術では、道路の名前等の文字例を表示する際、図1に示すように、表示画面100上で複数の道路リンク101を接続して道路を表現し、この道路の名前等の情報を示す文字列102を、道路リンク101上に設けた文字列配置開始点103を起点として、道路リンク101に沿って配置している。この場合、文字列配置開始点103を設ける位置によっては、文字列同士が重なり合ったり、文字列を道路リンクに沿って変形しなければならず、文字列の可読性が低下する。
例えば、図2は、図1の道路リンク101が示す道路に交差する道路があり、その道路の道路リンク101に沿って文字配置開始点103aを起点として文字列102aを配置したことにより、文字列102と文字列102aとが重なり合う場合を示している。この場合、重なった部分の文字は非常に読みにくく、可読性が悪くなる。
また、図3は、隣り合った道路リンク101をある程度の角度をもって互いに接続して道路の湾曲部分を表現しており、この湾曲部分に近い道路リンク101に文字列配置開始点103Aを設けたために、文字列102が道路リンク101に沿って変形された場合を示している。この場合も、文字列中の文字の連続性が損なわれて可読性が悪くなり、一瞥して文字列の内容を把握しにくくなる。
また、図3は、隣り合った道路リンク101をある程度の角度をもって互いに接続して道路の湾曲部分を表現しており、この湾曲部分に近い道路リンク101に文字列配置開始点103Aを設けたために、文字列102が道路リンク101に沿って変形された場合を示している。この場合も、文字列中の文字の連続性が損なわれて可読性が悪くなり、一瞥して文字列の内容を把握しにくくなる。
そこで、特許文献1に代表される従来の技術では、文字列同士の重複と文字列が沿う道路の湾曲度合いとをそれぞれ関数化して、これらの関数値が示す特性が最も小さい位置、つまり、文字列同士の重複と道路の湾曲度合いとが生じない位置を特定して、この位置に文字列配置開始点を変更する。
図4は、文字列同士の重複を示す関数を説明する図である。図4(a)に示す例では、複数の道路が交差しており、それぞれの道路の道路リンク101に沿って、文字列102,102a,102bが、文字列配置開始点103,103a,103bをそれぞれ起点として配置されている。
図4(b)に示す関数overlap(i)は、図4(a)における文字列同士の重複の数を表す関数である。例えば、文字列102,102bは、文字列102aのみとそれぞれ重なり合うので、overlap(i)=1となり、文字列102aは、文字列102,102bの双方と重なり合うので、overlap(i)=2となる。
図4は、文字列同士の重複を示す関数を説明する図である。図4(a)に示す例では、複数の道路が交差しており、それぞれの道路の道路リンク101に沿って、文字列102,102a,102bが、文字列配置開始点103,103a,103bをそれぞれ起点として配置されている。
図4(b)に示す関数overlap(i)は、図4(a)における文字列同士の重複の数を表す関数である。例えば、文字列102,102bは、文字列102aのみとそれぞれ重なり合うので、overlap(i)=1となり、文字列102aは、文字列102,102bの双方と重なり合うので、overlap(i)=2となる。
また、図5は、文字列が沿う道路の湾曲度合いを示す関数を説明するための図である。図5に示すように、道路ノードを介して複数の道路リンクを接続した道路において、道路ノードの線形近似AveLine(i)を求めることにより、図5中に破線で示すAveLine(i)で表現される直線から、道路の湾曲によってどの程度はずれているかを、図5中に黒塗りの三角形で示す部分の面積の和をAveLine(i)で示される直線の長さで除算した値であるflat(i)で表している。
これら関数overlap(i),flat(i)を用い、下記式(1)に示すようなコスト関数fの値が最小になる位置に文字列配置開始点を変更する。
なお、文字列配置開始点の変更処理は、通常オフラインで行い、変更後の文字列配置開始点を記憶装置に記憶しておく。オンラインでは、この記憶装置に記憶しておいた文字列配置開始点を起点として文字列を配置する。下記式(1)において、α1,α2は、コスト関数fに対する各関数overlap(i),flat(i)の値の寄与の度合いを調整するパラメータである。
f=α1overlap(i)+α2flat(i) ・・・(1)
これら関数overlap(i),flat(i)を用い、下記式(1)に示すようなコスト関数fの値が最小になる位置に文字列配置開始点を変更する。
なお、文字列配置開始点の変更処理は、通常オフラインで行い、変更後の文字列配置開始点を記憶装置に記憶しておく。オンラインでは、この記憶装置に記憶しておいた文字列配置開始点を起点として文字列を配置する。下記式(1)において、α1,α2は、コスト関数fに対する各関数overlap(i),flat(i)の値の寄与の度合いを調整するパラメータである。
f=α1overlap(i)+α2flat(i) ・・・(1)
また、特許文献1に代表される従来の技術は、地図の向きが変化しても文字列の配置が変化しない場合を前提としている。例えば、図6(a)に示すように、地図の向きが北(ノースアップ)で文字列102が道路リンク101の北側に沿って配置されている場合において、図6(b)に示すように地図の向きを南(サウスアップ)に変更しても、同様に道路リンク101の北側に文字列102が配置される。
一方、実際のカーナビゲーションシステムでは、地図の向きが自車の進行方向に応じて変化する場合(ヘディングアップ)がある。例えば、図7(a)に示すように、北に向かって自車が走行していれば、地図の向きは北になり、図7(b)に示すように自車の進行方向が南西に変われば、地図の向きは南西となる。この場合において、従来のカーナビゲーションシステムでは、文字列の可読性を保つために、いかなる地図の向きであっても、文字を左読みできる上向きに表示させている。
例えば、図8(a)に示すように、道路リンク101を挟んだ両側の一方が地図の向きになっても、この道路リンク101に沿って配置される文字列102が上向きになるように、向きの異なる文字列102の文字列配置パターンを、道路リンク101を挟んだ両側に対応してパターン1,2として保存しておく。ここで、図8(b)に示すように、自車が北に進行していると地図の向きは北になるので、パターン1の文字列配置を用いることにより、文字列102が上向きに配置される。また、地図の向きが南になれば、図8(c)に示すようにパターン2の文字列配置に切り替わる。
このように地図の向きに応じて文字列の配置を切り替える場合、特許文献1に代表される従来の技術を適用すると、文字列の可読性を損なう場合が生じるという課題があった。
このように地図の向きに応じて文字列の配置を切り替える場合、特許文献1に代表される従来の技術を適用すると、文字列の可読性を損なう場合が生じるという課題があった。
従来では、ある一方向の地図の向きでの文字列配置について可読性の高い向きの位置に文字列の配置位置が変更される。
この場合、例えば図9(a)に示すように、地図の向きが北のときに文字列の配置を変更すると文字列102,102aは重なり合わないが、図9(b)に示すように、地図の向きが南に変わると、文字を左読みできるように、文字列102aの配置が上向きに切り替わるため、文字列102と文字列102aが重複する。
このような不具合を避けるために、文字列同士の重複や文字列の変形表示が起こらない文字列配置開始点を地図の向きごとに決定しておけばよいが、1つの文字列に対して、文字列配置開始点に関する情報を地図の向きの数だけ用意する必要があり、膨大な記憶領域が必要とされる。
この場合、例えば図9(a)に示すように、地図の向きが北のときに文字列の配置を変更すると文字列102,102aは重なり合わないが、図9(b)に示すように、地図の向きが南に変わると、文字を左読みできるように、文字列102aの配置が上向きに切り替わるため、文字列102と文字列102aが重複する。
このような不具合を避けるために、文字列同士の重複や文字列の変形表示が起こらない文字列配置開始点を地図の向きごとに決定しておけばよいが、1つの文字列に対して、文字列配置開始点に関する情報を地図の向きの数だけ用意する必要があり、膨大な記憶領域が必要とされる。
この発明は、上記のような課題を解決するためになされたもので、用意すべき情報量の増大を招くことなく、可読性を損なわずに文字列を表示画面に配置することができる文字列配置装置、文字列配置候補決定方法、及び文字列配置候補決定用プログラムを得ることを目的とする。
この発明に係る文字列配置装置は、表示画面上に配置する文字列のデータを取得する文字列データ取得部と、文字列データ取得部によって取得された文字列の配置を開始する表示画面上の位置候補を作成する位置候補作成部と、位置候補作成部で作成された位置候補を起点として表示画面上の相対する方向で読みがそれぞれ順方向となるように文字列を配置して、各配置の文字列同士の位置関係に基づいて、当該文字列の可読性に影響を与える因子を評価するコスト関数値を算出するコスト関数値算出部と、コスト関数値が最小の位置候補を、文字列の配置開始位置を変更する際の位置候補として記憶する記憶部とを備える。
この発明によれば、表示画面上の方向が変化しても、用意すべき情報量の増大を招くことなく、可読性を損なわずに文字列を配置することができるという効果がある。
以下、この発明をより詳細に説明するため、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態1.
図10は、この発明の実施の形態1による文字列配置装置の構成を示すブロック図である。実施の形態1の文字列配置装置1は、例えばナビゲーション装置等に利用される地図表示装置を構成する装置であって、地図上の道路等を表現するリンクに沿ってその名称等の情報を示す文字列を配置する。以降の説明では、文字列配置装置1が、道路の名称等を示す文字列を当該道路の道路リンクに沿って配置する場合について述べる。
文字列配置装置1の構成としては、図10に示すように、文字列データ取得部2、文字列配置開始候補点作成部3、最小コスト関数値算出部4及び出力文字列配置開始候補点記憶部5を備える。
実施の形態1.
図10は、この発明の実施の形態1による文字列配置装置の構成を示すブロック図である。実施の形態1の文字列配置装置1は、例えばナビゲーション装置等に利用される地図表示装置を構成する装置であって、地図上の道路等を表現するリンクに沿ってその名称等の情報を示す文字列を配置する。以降の説明では、文字列配置装置1が、道路の名称等を示す文字列を当該道路の道路リンクに沿って配置する場合について述べる。
文字列配置装置1の構成としては、図10に示すように、文字列データ取得部2、文字列配置開始候補点作成部3、最小コスト関数値算出部4及び出力文字列配置開始候補点記憶部5を備える。
文字列データ取得部2は、外部の記憶装置から文字列データを取得する構成部である。なお、文字列データとは、例えば、地図表示に利用される地図データに含まれ、地図画面に表示する道路名の文字列、文字列が沿う道路リンクを示す道路リンクデータ、及び地図画面で文字列の配置を開始する位置を示す文字列配置開始点を含むデータである。
文字列配置開始候補点作成部3は、文字列データ取得部2により文字列データから取得された文字列の文字列配置開始点を変更する場合に、地図画面で当該文字列の配置を開始する点の候補(以下、文字列配置開始候補点と呼ぶ)を作成する構成部である。
文字列配置開始候補点作成部3は、文字列データ取得部2により文字列データから取得された文字列の文字列配置開始点を変更する場合に、地図画面で当該文字列の配置を開始する点の候補(以下、文字列配置開始候補点と呼ぶ)を作成する構成部である。
最小コスト関数値算出部4は、文字列配置開始候補点作成部3で作成された文字列配置開始候補点を起点として、これに対応する文字列を上向き配置及び下向き配置したとき、文字列の可読性に影響を与える因子として、各配置の文字列同士の重複を示す関数、文字列の変形表示の要因となる隣り合う道路リンクがなす角度を示す関数、及び文字列データに予め設定された文字列配置開始点と文字列配置開始候補点との距離を示す関数の値を足し合わせたコスト関数値を算出し、当該コスト関数値が最小となる文字列配置開始候補点を求める構成部である。
なお、この発明では、ある一定の地図の向きの画面(表示画面上の一方向)において、対象の文字列が沿う道路リンクを境として分けられた一方で当該文字列を左読みできる向きの配置を上向き配置とする。また、上向き配置での画面の地図の向きが逆になった際(表示画面上の一方向に相対する方向)に、道路リンクを境として分けられたもう一方側で当該文字列を左読みできる向きの配置を下向き配置とする。
なお、この発明では、ある一定の地図の向きの画面(表示画面上の一方向)において、対象の文字列が沿う道路リンクを境として分けられた一方で当該文字列を左読みできる向きの配置を上向き配置とする。また、上向き配置での画面の地図の向きが逆になった際(表示画面上の一方向に相対する方向)に、道路リンクを境として分けられたもう一方側で当該文字列を左読みできる向きの配置を下向き配置とする。
出力文字列配置開始候補点記憶部5は、最小コスト関数値算出部4で算出されたコスト関数値が最小となる文字列配置開始候補点を記憶する記憶部である。
文字列配置装置1は、出力文字列配置開始候補点記憶部5に格納された文字列配置開始候補点を用いることで、いかなる地図の向きにおいても文字列同士の重複や道路の湾曲に応じた文字列の変形が起こらない位置に当該文字列を配置することが可能となる。
文字列配置装置1は、出力文字列配置開始候補点記憶部5に格納された文字列配置開始候補点を用いることで、いかなる地図の向きにおいても文字列同士の重複や道路の湾曲に応じた文字列の変形が起こらない位置に当該文字列を配置することが可能となる。
なお、文字列データ取得部2、文字列配置開始候補点作成部3、及び最小コスト関数値算出部4は、例えば、この発明の趣旨に従う文字列配置用プログラムをコンピュータに実行させることにより、ハードウェアとソフトウェアとが協働した具体的な手段として実現される。つまり、上記構成部2~4の各機能は、上記文字列配置用プログラムを構成する各プログラムモジュールに規定される。また、出力文字列配置開始候補点記憶部5は、例えば、上記のコンピュータに搭載された記憶装置の記憶領域上に構築される。記憶装置としては、ハードディスク装置、半導体メモリ、CDやDVD等の記憶メディアのドライブ装置等が挙げられる。
図11は、図10中の文字列配置開始候補点作成部の構成を示すブロック図である。図11において、文字列配置開始候補点作成部3は、文字列データ取得部2で取得された文字列の文字列配置開始候補点を作成する構成部であり、候補点作成部6、文字列上向き配置部7、文字列下向き配置部8及び候補点削除部9を備える。
候補点作成部6は、文字列データ取得部2で文字列データから取得された文字列と道路リンクに関する情報に基づいて、当該文字列の文字列配置開始候補点を作成する構成部である。例えば、文字列が沿う1つ又は複数の連続した道路リンク上の所定の間隔の位置を当該文字列の文字列配置開始候補点とする。
候補点作成部6は、文字列データ取得部2で文字列データから取得された文字列と道路リンクに関する情報に基づいて、当該文字列の文字列配置開始候補点を作成する構成部である。例えば、文字列が沿う1つ又は複数の連続した道路リンク上の所定の間隔の位置を当該文字列の文字列配置開始候補点とする。
文字列上向き配置部7は、候補点作成部6で作成された文字列配置開始候補点を起点として道路リンクに沿って文字列を上向きに仮配置して、文字と道路リンクの重複、文字が所定値以上の配置間隔であるか、及び文字列内の文字同士の重複を判定し、この判定結果から、文字列の上向き配置の可否を判定する構成部である。
文字列下向き配置部8は、候補点作成部6で作成された文字列配置開始候補点を起点として道路リンクに沿って文字列を下向きに仮配置して、文字と道路リンクの重複、文字が所定値以上の配置間隔であるか、及び文字列内の文字同士の重複を判定し、この判定結果から、文字列の下向き配置の可否を判定する構成部である。
候補点削除部9は、候補点作成部6で作成された文字列配置開始候補点のうち、文字列上向き配置部7及び文字列下向き配置部8によって、上向き配置又は下向き配置のいずれかで文字列が配置不可と判定された文字列配置開始候補点を削除する構成部である。
文字列下向き配置部8は、候補点作成部6で作成された文字列配置開始候補点を起点として道路リンクに沿って文字列を下向きに仮配置して、文字と道路リンクの重複、文字が所定値以上の配置間隔であるか、及び文字列内の文字同士の重複を判定し、この判定結果から、文字列の下向き配置の可否を判定する構成部である。
候補点削除部9は、候補点作成部6で作成された文字列配置開始候補点のうち、文字列上向き配置部7及び文字列下向き配置部8によって、上向き配置又は下向き配置のいずれかで文字列が配置不可と判定された文字列配置開始候補点を削除する構成部である。
図12は、図11の文字列上向き配置部の構成を示すブロック図である。図12において、文字列上向き配置部7は、文字配置候補点作成部10a、開始文字配置候補点決定部11a、上向き用文字配置順序決定部12a、上向き用文字仮配置部13a、判定処理部14a及び文字位置登録部15aを備える。
文字配置候補点作成部10aは、候補点作成部6で作成された文字列配置開始候補点を起点として上向き配置する文字列の各文字を配置する位置の候補(以下、文字配置候補点と呼ぶ)を作成する構成部である。例えば、文字列配置開始候補点から所定の間隔で道路リンクに沿って並ぶ位置を文字配置候補点とする。
文字配置候補点作成部10aは、候補点作成部6で作成された文字列配置開始候補点を起点として上向き配置する文字列の各文字を配置する位置の候補(以下、文字配置候補点と呼ぶ)を作成する構成部である。例えば、文字列配置開始候補点から所定の間隔で道路リンクに沿って並ぶ位置を文字配置候補点とする。
開始文字配置候補点決定部11aは、文字配置候補点作成部10aで作成された文字配置候補点のうちから、上向き配置する文字列の文字配置の開始点となる文字配置候補点を探索して決定する構成部である。
上向き用文字配置順序決定部12aは、開始文字配置候補点決定部11aで決定された文字配置の開始点となる文字配置候補点が存在する道路リンクの単位ベクトルの偏角に基づいて、当該文字列の文字配置順序を順方向又は逆方向のいずれにするかを決定する構成部である。ここで、順方向とは文字列を左読みできる文字の配置順序であり、逆方向とは文字列の読みが右読みになる配置順序である。
上向き用文字配置順序決定部12aは、開始文字配置候補点決定部11aで決定された文字配置の開始点となる文字配置候補点が存在する道路リンクの単位ベクトルの偏角に基づいて、当該文字列の文字配置順序を順方向又は逆方向のいずれにするかを決定する構成部である。ここで、順方向とは文字列を左読みできる文字の配置順序であり、逆方向とは文字列の読みが右読みになる配置順序である。
上向き用文字仮配置部13aは、上向き用文字配置順序決定部12aで決定された文字配置順序で、当該文字列の各文字を、開始文字配置候補点決定部11aで決定された文字配置の開始点から順に各文字配置候補点に仮配置する構成部である。
判定処理部14aは、上向き用文字仮配置部13aで仮配置された文字について、当該文字と道路リンクとの重複、当該文字とその直前に仮配置された文字とが所定値以上の配置間隔であるか及び当該文字とその直前に仮配置された文字との重複を判定し、この判定結果から当該文字の配置可否を判定する構成部である。
文字位置登録部15aは、判定処理部14aで配置可能と判定された文字の位置の座標情報を文字位置として登録する記憶部である。
判定処理部14aは、上向き用文字仮配置部13aで仮配置された文字について、当該文字と道路リンクとの重複、当該文字とその直前に仮配置された文字とが所定値以上の配置間隔であるか及び当該文字とその直前に仮配置された文字との重複を判定し、この判定結果から当該文字の配置可否を判定する構成部である。
文字位置登録部15aは、判定処理部14aで配置可能と判定された文字の位置の座標情報を文字位置として登録する記憶部である。
図13は、図11の文字列下向き配置部の構成を示すブロック図である。図13において、文字列下向き配置部8は、文字配置候補点作成部10b、開始文字配置候補点決定部11b、下向き用文字配置順序決定部16b、下向き用文字仮配置部17b、判定処理部14b、及び文字位置登録部15bを備える。
文字配置候補点作成部10bは、候補点作成部6で作成された文字列配置開始候補点を起点として下向き配置する文字列の各文字を配置する文字配置候補点を作成する構成部である。例えば、上向き用文字仮配置部13aと同様に、文字列配置開始候補点から所定の間隔で道路リンクに沿って並ぶ位置を文字配置候補点とする。
文字配置候補点作成部10bは、候補点作成部6で作成された文字列配置開始候補点を起点として下向き配置する文字列の各文字を配置する文字配置候補点を作成する構成部である。例えば、上向き用文字仮配置部13aと同様に、文字列配置開始候補点から所定の間隔で道路リンクに沿って並ぶ位置を文字配置候補点とする。
開始文字配置候補点決定部11bは、文字配置候補点作成部10bで作成された文字配置候補点のうちから、下向き配置する文字列の文字配置の開始点となる文字配置候補点を探索して決定する構成部である。
下向き用文字配置順序決定部16bは、開始文字配置候補点決定部11bで決定された文字配置の開始点となる文字配置候補点が存在する道路リンクの単位ベクトルの偏角に基づいて、当該文字列の文字配置順序を順方向又は逆方向のいずれにするかを決定する構成部である。
下向き用文字配置順序決定部16bは、開始文字配置候補点決定部11bで決定された文字配置の開始点となる文字配置候補点が存在する道路リンクの単位ベクトルの偏角に基づいて、当該文字列の文字配置順序を順方向又は逆方向のいずれにするかを決定する構成部である。
下向き用文字仮配置部17bは、下向き用文字配置順序決定部16bで決定された文字配置順序で、当該文字列の各文字を、開始文字配置候補点決定部11bで決定された文字配置の開始点から順に各文字配置候補点に仮配置する構成部である。
判定処理部14bは、下向き用文字仮配置部17bにより仮配置された文字について、当該文字と道路リンクとの重複、当該文字とその直前に仮配置された文字とが所定値以上の配置間隔であるか及び当該文字とその直前に仮配置された文字との重複を判定し、この判定結果から当該文字の配置可否を判定する構成部である。
文字位置登録部15bは、判定処理部14bで配置可能と判定された文字の位置の座標情報を文字位置として登録する記憶部である。
判定処理部14bは、下向き用文字仮配置部17bにより仮配置された文字について、当該文字と道路リンクとの重複、当該文字とその直前に仮配置された文字とが所定値以上の配置間隔であるか及び当該文字とその直前に仮配置された文字との重複を判定し、この判定結果から当該文字の配置可否を判定する構成部である。
文字位置登録部15bは、判定処理部14bで配置可能と判定された文字の位置の座標情報を文字位置として登録する記憶部である。
図14は、図12又は図13の判定処理部の構成を示すブロック図である。図14において、判定処理部14a,14bは、文字と道路の重複判定部18、文字間隔判定部19及び文字同士の重複判定部20を備える。
判定処理部14aの文字と道路の重複判定部18は、上向き用文字仮配置部13aに仮配置された文字について、当該文字を含む文字列が沿う道路リンクとの重複有無を判定する構成部である。判定処理部14bの文字と道路の重複判定部18では、下向き用文字仮配置部17bに仮配置された文字について、当該文字を含む文字列が沿う道路リンクとの重複有無を判定する構成部である。
判定処理部14aの文字と道路の重複判定部18は、上向き用文字仮配置部13aに仮配置された文字について、当該文字を含む文字列が沿う道路リンクとの重複有無を判定する構成部である。判定処理部14bの文字と道路の重複判定部18では、下向き用文字仮配置部17bに仮配置された文字について、当該文字を含む文字列が沿う道路リンクとの重複有無を判定する構成部である。
判定処理部14aの文字間隔判定部19は、上向き用文字仮配置部13aによって仮配置された文字と1つ前に仮配置された文字との間隔が所定の文字間隔よりも狭いか広いかを判定する構成部である。また、判定処理部14bの文字間隔判定部19は、下向き用文字仮配置部17bに仮配置された文字と1つ前に仮配置された文字との間隔が所定の文字間隔よりも狭いか広いかを判定する構成部である。
判定処理部14aにおける文字同士の重複判定部20は、上向き用文字仮配置部13aに仮配置された文字と1つ前に仮配置された文字との重複を判定する構成部である。判定処理部14bの文字同士の重複判定部20は、下向き用文字仮配置部17bによって仮配置された文字と1つ前に仮配置された文字との重複を判定する構成部である。
判定処理部14aにおける文字同士の重複判定部20は、上向き用文字仮配置部13aに仮配置された文字と1つ前に仮配置された文字との重複を判定する構成部である。判定処理部14bの文字同士の重複判定部20は、下向き用文字仮配置部17bによって仮配置された文字と1つ前に仮配置された文字との重複を判定する構成部である。
図15は、図10の最小コスト関数値算出部の構成を示すブロック図であり、図15(a)は最小コスト関数値算出部の構成を示しており、図15(b)は、図15(a)中の文字列同士の重複関数算出部の構成を示している。
図15(a)において、最小コスト関数値算出部4は、文字列同士の重複関数算出部21、道路リンク角度関数算出部22、距離関数算出部23及び関数値足し合わせ部24を備える。また、図15(b)に示すように、文字列同士の重複関数算出部21は、文字列上向き配置部25a、文字列下向き配置部25b及び文字列重複算出部25cを備える。
図15(a)において、最小コスト関数値算出部4は、文字列同士の重複関数算出部21、道路リンク角度関数算出部22、距離関数算出部23及び関数値足し合わせ部24を備える。また、図15(b)に示すように、文字列同士の重複関数算出部21は、文字列上向き配置部25a、文字列下向き配置部25b及び文字列重複算出部25cを備える。
文字列同士の重複関数算出部21は、文字列データ取得部2で文字列データから取得された各文字列について、文字列配置開始候補点作成部3で配置可能と判定された文字列配置開始候補点を起点としてそれぞれ配置した場合における文字列同士の重複を、当該文字列同士の重複を示す関数を用いて判定する構成部である。
道路リンク角度関数算出部22は、文字列データから取得された文字列が沿う道路リンクがなす角度を示す関数Angle(i)の値を算出する構成部である。
距離関数算出部23は、文字列データ取得部2で文字列データから取得された文字列の文字列配置開始点と、文字列配置開始候補点作成部3で配置可能と判定された文字列配置開始候補点との距離を示す関数Dist(i)の値を算出する構成部である。
道路リンク角度関数算出部22は、文字列データから取得された文字列が沿う道路リンクがなす角度を示す関数Angle(i)の値を算出する構成部である。
距離関数算出部23は、文字列データ取得部2で文字列データから取得された文字列の文字列配置開始点と、文字列配置開始候補点作成部3で配置可能と判定された文字列配置開始候補点との距離を示す関数Dist(i)の値を算出する構成部である。
文字列上向き配置部25aは、文字列データ取得部2で文字列データから取得された各文字列について、文字列配置開始候補点作成部3で配置可能と判定された文字列配置開始候補点を起点として上向き配置する構成部である。
また、文字列下向き配置部25bは、文字列データ取得部2で文字列データから取得された各文字列について、文字列配置開始候補点作成部3で配置可能と判定された文字列配置開始候補点を起点として下向き配置する構成部である。
文字列重複算出部25cは、文字列上向き配置部25aにより上向き配置された文字列同士の重複、文字列下向き配置部25bにより下向き配置された文字列同士の重複、及び文字列上向き配置部25aと文字列下向き配置部25bによって上向き配置及び下向き配置された文字列同士の重複判定で求められた文字列同士の重複数を用いて、文字列同士の重複を示す関数OverlapString(i)の値を算出する構成部である。
また、文字列下向き配置部25bは、文字列データ取得部2で文字列データから取得された各文字列について、文字列配置開始候補点作成部3で配置可能と判定された文字列配置開始候補点を起点として下向き配置する構成部である。
文字列重複算出部25cは、文字列上向き配置部25aにより上向き配置された文字列同士の重複、文字列下向き配置部25bにより下向き配置された文字列同士の重複、及び文字列上向き配置部25aと文字列下向き配置部25bによって上向き配置及び下向き配置された文字列同士の重複判定で求められた文字列同士の重複数を用いて、文字列同士の重複を示す関数OverlapString(i)の値を算出する構成部である。
関数値足し合わせ部24は、関数OverlapString(i)、関数Angle(i)及び関数Dist(i)を足し合わせてなるコスト関数f(i)の値を、文字列データ取得部2で文字列データから取得された文字列の文字列配置開始点及び文字列配置開始候補点作成部3で配置可能と判定された文字列配置開始候補点にそれぞれ配置した文字列について算出し、当該コスト関数f(i)の値が最小となる点を最終的な文字列配置開始候補点とする構成部である。この最終的な文字列配置開始候補点が、出力文字列配置開始候補点記憶部5に記憶される。
次に動作について説明する。
図16は、実施の形態1の文字列配置装置による動作の流れを示すフローチャートである。この図16に沿って、文字列配置開始候補点を取得する処理の概要を説明する。
先ず、文字列データ取得部2が、地図データベース等の外部記憶装置から文字列データを取得し、当該文字列データに含まれる全ての文字列と、それぞれの文字列に対応する道路リンク及び文字列配置開始点を抽出する(ステップST1)。
次に、文字列配置開始候補点作成部3が、文字列データ取得部2によって取得された各文字列がそれぞれ沿う道路リンクにおける文字列配置開始候補点を作成する(ステップST2)。このとき、文字列配置開始候補点作成部3によって、各文字列の文字ごとに文字列配置開始候補点での配置可否が判定される。
この後、最小コスト関数値算出部4が、文字列配置開始候補点作成部3に作成されて配置可能と判定された各文字列配置開始候補点について、文字列同士の重複の度合い、文字列の変形表示の要因となる当該文字列が沿う道路リンクのなす角度、及び当該文字列配置開始候補点と文字列データに予め設定された文字列配置開始点との差の度合いを示す距離をそれぞれ示す関数からなるコスト関数を算出し、このコスト関数値が最小となる文字列配置開始候補点(文字列位置)を取得する(ステップST3)。
図16は、実施の形態1の文字列配置装置による動作の流れを示すフローチャートである。この図16に沿って、文字列配置開始候補点を取得する処理の概要を説明する。
先ず、文字列データ取得部2が、地図データベース等の外部記憶装置から文字列データを取得し、当該文字列データに含まれる全ての文字列と、それぞれの文字列に対応する道路リンク及び文字列配置開始点を抽出する(ステップST1)。
次に、文字列配置開始候補点作成部3が、文字列データ取得部2によって取得された各文字列がそれぞれ沿う道路リンクにおける文字列配置開始候補点を作成する(ステップST2)。このとき、文字列配置開始候補点作成部3によって、各文字列の文字ごとに文字列配置開始候補点での配置可否が判定される。
この後、最小コスト関数値算出部4が、文字列配置開始候補点作成部3に作成されて配置可能と判定された各文字列配置開始候補点について、文字列同士の重複の度合い、文字列の変形表示の要因となる当該文字列が沿う道路リンクのなす角度、及び当該文字列配置開始候補点と文字列データに予め設定された文字列配置開始点との差の度合いを示す距離をそれぞれ示す関数からなるコスト関数を算出し、このコスト関数値が最小となる文字列配置開始候補点(文字列位置)を取得する(ステップST3)。
なお、以降では、文字列データ取得部2によって文字列データから文字列0と文字列1の2つの文字列が取得されたものとし、文字列0と文字列1、これらにそれぞれ対応する道路リンク及び文字列配置開始点は、下記のように規定されているものとして説明する。
図17は、文字列0と文字列1がそれぞれ沿う道路リンク及び文字列配置開始候補点を示す図であり、地図の向きが北(ノースアップ)である地図画面において、東西方向をx軸、南北方向をy軸とした二次元座標系を設定している。
文字列0が沿う道路リンクは、ノードA(0,20)、ノードB(10,20)、ノードC(10,10)及びノードD(30,10)を、それぞれリンク(図17中に破線で示すリンク)で結んで構成される。また、文字列データに予め設定された文字列0の文字列配置開始点はI(12,10)であるものとする。
また、文字列1が沿う道路リンクは、ノードE(30,0)、ノードD(30,10)及びノードF(30,30)を、それぞれリンク(図17中に実線で示すリンク)で結んで構成される。文字列データに予め設定された文字列1の文字列配置開始点はJ(30,12)であるものとする。
図17は、文字列0と文字列1がそれぞれ沿う道路リンク及び文字列配置開始候補点を示す図であり、地図の向きが北(ノースアップ)である地図画面において、東西方向をx軸、南北方向をy軸とした二次元座標系を設定している。
文字列0が沿う道路リンクは、ノードA(0,20)、ノードB(10,20)、ノードC(10,10)及びノードD(30,10)を、それぞれリンク(図17中に破線で示すリンク)で結んで構成される。また、文字列データに予め設定された文字列0の文字列配置開始点はI(12,10)であるものとする。
また、文字列1が沿う道路リンクは、ノードE(30,0)、ノードD(30,10)及びノードF(30,30)を、それぞれリンク(図17中に実線で示すリンク)で結んで構成される。文字列データに予め設定された文字列1の文字列配置開始点はJ(30,12)であるものとする。
図18は、文字列0と文字列1にそれぞれ含まれる文字のサイズを示す図であり、図18(a)は文字列0の文字のサイズを示しており、図18(b)は文字列1の文字のサイズを示している。図18(a)に示すように、文字列0に含まれる“文”、“字”、“列”、“0”の各文字は、縦幅が5で横幅が3である。また、図18(b)に示すように、文字列1に含まれる“文”、“字”、“列”、“1”の各文字についても、同様に縦幅が5で横幅が3であるものとする。
上記の道路リンクと文字列0及び文字列1の各文字との間隔RCgapは“3”、文字と文字の間隔CCgapは“√2(2の平方根)”であるものとする。
上記の道路リンクと文字列0及び文字列1の各文字との間隔RCgapは“3”、文字と文字の間隔CCgapは“√2(2の平方根)”であるものとする。
また、文字列配置開始候補点作成部3が、文字列ごとに作成する文字列配置開始候補点の候補点数PATTERN_NUMは5個であり、文字列の各文字を配置する文字配置候補点の間隔DIF_CAND_POINTが“2”であるものとし、文字列同士の重複数に関する閾値OverlapStringThresholdが“5”であるものとする。
さらに、後述するコスト関数値を算出する際のパラメータα1,α2,α3を全て“1”とする。文字列配置装置1として機能するコンピュータにより処理可能な上述の間隔RCgap,CCgap,DIF_CAND_POINT等の最大値は“MAX”とする。
なお、上述した各パラメータの値は、文字列データにおいて文字列ごとに予め設定されているものとする。
なお、上述した各パラメータの値は、文字列データにおいて文字列ごとに予め設定されているものとする。
次に、文字列配置開始候補点を取得する処理の詳細を説明する。
(1)文字列配置開始候補点の作成処理
図19は、実施の形態1の文字列配置装置による文字列配置開始候補点の作成の流れを示すフローチャートであり、図16中のステップST2の処理の詳細を示している。文字列配置開始候補点作成部3の構成については、図11を参照する。
先ず、候補点作成部6は、文字列データ取得部2から文字列データに含まれる全ての文字列、これらの文字列に対応する道路リンク及び文字列配置開始点を入力する。ここで、文字列データ取得部2から入力した各文字列を、0から文字列データに含まれる文字列の数-1までの値をとり得るインデックス番号iの文字列(i)で表現する。
候補点作成部6は、文字列データ取得部2から入力された文字列のうち、i=0の文字列(0)から順に以降の処理を実施する(ステップST1a)。
(1)文字列配置開始候補点の作成処理
図19は、実施の形態1の文字列配置装置による文字列配置開始候補点の作成の流れを示すフローチャートであり、図16中のステップST2の処理の詳細を示している。文字列配置開始候補点作成部3の構成については、図11を参照する。
先ず、候補点作成部6は、文字列データ取得部2から文字列データに含まれる全ての文字列、これらの文字列に対応する道路リンク及び文字列配置開始点を入力する。ここで、文字列データ取得部2から入力した各文字列を、0から文字列データに含まれる文字列の数-1までの値をとり得るインデックス番号iの文字列(i)で表現する。
候補点作成部6は、文字列データ取得部2から入力された文字列のうち、i=0の文字列(0)から順に以降の処理を実施する(ステップST1a)。
候補点作成部6は、文字列(i)が沿う道路リンクにおいて、文字列(i)の候補点数PATTERN_NUM(ここでは、5個)分の文字列配置開始候補点を作成する(ステップST2a)。すなわち、候補点作成部6は、文字列(i)が沿う道路リンクに関するデータから当該道路リンクの全長LinkLengthを取得し、文字列(i)の文字列配置開始候補点の間隔CandDifを下記式から算出する。
CandDif=LinkLength/PATTERN_NUM
CandDif=LinkLength/PATTERN_NUM
文字列0について、図17に示すノードA~Dがリンクで接続された道路リンクの全長LinkLengthを“40”とすると、候補点数PATTERN_NUMは5個であることから、文字列配置開始候補点の間隔CandDif=40/5=8となる。
続いて、候補点作成部6は、文字列(i)が沿う道路リンクの初めのノードから、当該道路リンクに沿って間隔CandDifで候補点数PATTERN_NUMの分だけ文字列配置開始候補点を作成する。
なお、文字列(i)が沿う道路リンクの初めのノードは、文字列配置開始候補点になり得るが、文字列(i)が沿う道路リンクの終わりのノードは文字列配置開始候補点にはならないようにする。
このようにすることで、図20に示すように、文字列0が沿う道路リンク(図20中に破線で示す)上に、文字列配置開始候補点Q0(0,20)、Q1(8,20)、Q2(10,14)、Q3(14,10)、Q4(22,10)が作成される。
各文字列配置開始候補点は、0から候補点数PATTERN_NUMまでの値をとり得るインデックス番号jの文字列配置開始候補点(j)で表現する。
つまり、文字列配置開始候補点(0)がQ0、文字列配置開始候補点(1)がQ1、文字列配置開始候補点(2)がQ2、文字列配置開始候補点(3)がQ3、文字列配置開始候補点(4)がQ4となる。
候補点作成部6は、ステップST2aで作成した文字列配置開始候補点のうち、j=0の文字列配置開始候補点(0)から順に処理を実施する(ステップST3a)。
続いて、候補点作成部6は、文字列(i)が沿う道路リンクの初めのノードから、当該道路リンクに沿って間隔CandDifで候補点数PATTERN_NUMの分だけ文字列配置開始候補点を作成する。
なお、文字列(i)が沿う道路リンクの初めのノードは、文字列配置開始候補点になり得るが、文字列(i)が沿う道路リンクの終わりのノードは文字列配置開始候補点にはならないようにする。
このようにすることで、図20に示すように、文字列0が沿う道路リンク(図20中に破線で示す)上に、文字列配置開始候補点Q0(0,20)、Q1(8,20)、Q2(10,14)、Q3(14,10)、Q4(22,10)が作成される。
各文字列配置開始候補点は、0から候補点数PATTERN_NUMまでの値をとり得るインデックス番号jの文字列配置開始候補点(j)で表現する。
つまり、文字列配置開始候補点(0)がQ0、文字列配置開始候補点(1)がQ1、文字列配置開始候補点(2)がQ2、文字列配置開始候補点(3)がQ3、文字列配置開始候補点(4)がQ4となる。
候補点作成部6は、ステップST2aで作成した文字列配置開始候補点のうち、j=0の文字列配置開始候補点(0)から順に処理を実施する(ステップST3a)。
次に、文字列上向き配置部7が、文字列配置開始候補点(j)から文字列(i)を上向き配置して、文字列(i)の配置可否を判定する(ステップST4a)。
続いて、文字列下向き配置部8が、文字列配置開始候補点(j)から文字列(i)を下向き配置して、文字列(i)の配置可否を判定する(ステップST5a)。これらの処理の詳細については後述する。また、上向き配置による配置可否判定を先に行う場合を示したが、下向き配置による配置可否判定を先に行うようにしてもかまわない。
続いて、文字列下向き配置部8が、文字列配置開始候補点(j)から文字列(i)を下向き配置して、文字列(i)の配置可否を判定する(ステップST5a)。これらの処理の詳細については後述する。また、上向き配置による配置可否判定を先に行う場合を示したが、下向き配置による配置可否判定を先に行うようにしてもかまわない。
候補点削除部9は、文字列上向き配置部7及び文字列下向き配置部8による文字列配置可否の判定結果に基づいて、文字列配置開始候補点(j)が文字列配置可能であるか否かを判定する(ステップST6a)。ここでは、文字列上向き配置部7で文字列(i)を上向き配置した場合、若しくは文字列下向き配置部8で文字列(i)を下向き配置した場合のいずれかで文字列配置不可と判定されていると、この文字列配置開始候補点(j)は、文字列配置不可となる。
文字列配置不可である場合(ステップST6a;NO)、候補点削除部9は、当該文字列配置開始候補点(j)を削除する(ステップST7a)。また、文字列配置可能である場合(ステップST6a;YES)には、当該文字列配置開始候補点(j)を残し、ステップST8aの処理へ移行する。
文字列配置不可である場合(ステップST6a;NO)、候補点削除部9は、当該文字列配置開始候補点(j)を削除する(ステップST7a)。また、文字列配置可能である場合(ステップST6a;YES)には、当該文字列配置開始候補点(j)を残し、ステップST8aの処理へ移行する。
ステップST8aにおいて、候補点作成部6が、全ての文字列配置開始候補点(j)について、ステップST4a以降の処理を実施したか否かを判定する。
ここで、インデックス番号jが文字列配置開始候補点の数(PATTERN_NUM=5)未満であり、上記処理が未実施の文字列配置開始候補点(j)がある場合(ステップST8a;YES)、候補点作成部6は、インデックス番号jを+1加算した文字列配置開始候補点(j)を、文字列上向き配置部7に出力する(ステップST9a)。これにより、続く文字列配置開始候補点(j)について、ステップST4a以降の処理が実施される。
ここで、インデックス番号jが文字列配置開始候補点の数(PATTERN_NUM=5)未満であり、上記処理が未実施の文字列配置開始候補点(j)がある場合(ステップST8a;YES)、候補点作成部6は、インデックス番号jを+1加算した文字列配置開始候補点(j)を、文字列上向き配置部7に出力する(ステップST9a)。これにより、続く文字列配置開始候補点(j)について、ステップST4a以降の処理が実施される。
一方、パラメータjの値が文字列配置開始候補点の数(PATTERN_NUM=5)以上となり、上記処理が未実施の文字列配置開始候補点(j)がない場合(ステップST8a;NO)、候補点作成部6は、全ての文字列(i)について、ステップST2a以降の処理を実施したか否かを判定する(ステップST10a)。
ここで、インデックス番号iが文字列数未満で、上記処理が未実施の文字列(i)があれば(ステップST10a;YES)、候補点作成部6は、インデックス番号iを+1加算した文字列(i)を特定し(ステップST11a)、ステップST2a以降の処理を実施する。また、全ての文字列(i)について処理が完了していれば(ステップST10a;NO)、処理を終了する。
ここで、インデックス番号iが文字列数未満で、上記処理が未実施の文字列(i)があれば(ステップST10a;YES)、候補点作成部6は、インデックス番号iを+1加算した文字列(i)を特定し(ステップST11a)、ステップST2a以降の処理を実施する。また、全ての文字列(i)について処理が完了していれば(ステップST10a;NO)、処理を終了する。
次に、文字列上向き配置部7及び文字列下向き配置部8による文字列配置及び配置可否の判定処理の詳細について説明する。
図21は、文字列配置開始候補点に文字列を配置して配置可否を判定する処理の流れを示すフローチャートであり、図19中のステップST4a及びステップST5aの処理に相当する。つまり、文字列上向き配置部7及び文字列下向き配置部8の双方は、図21に示す処理の流れで文字列配置及び配置可否の判定を行う。文字列上向き配置部7及び文字列下向き配置部8の構成については、図7及び図8を参照する。
図21は、文字列配置開始候補点に文字列を配置して配置可否を判定する処理の流れを示すフローチャートであり、図19中のステップST4a及びステップST5aの処理に相当する。つまり、文字列上向き配置部7及び文字列下向き配置部8の双方は、図21に示す処理の流れで文字列配置及び配置可否の判定を行う。文字列上向き配置部7及び文字列下向き配置部8の構成については、図7及び図8を参照する。
(1-1)文字列の上向き配置及び配置可否判定
図21に沿って、文字列上向き配置部7が文字列配置開始候補点Q0を起点として文字列0を上向きに配置する場合について説明する。
先ず、文字列上向き配置部7の文字配置候補点作成部10aは、図17に示したノードAから、間隔DIF_CAND_POINT(=2)で順に文字配置候補点を作成する(ステップST1b)。例えば、図22(a)に示すように、道路リンク上に文字配置候補点P0~P20が作成される。図22(b)は文字配置候補点P0~P20の座標値である。また、文字配置候補点作成部10aに作成された各文字配置候補点を、0から文字配置候補点の数-1までの値をとり得るインデックス番号kの文字配置候補点(k)で表現する。つまり、文字配置候補点P0~P20は、インデックス番号k=0~20にそれぞれ相当するので、文字配置候補点(0)~文字配置候補点(20)で表される。
図21に沿って、文字列上向き配置部7が文字列配置開始候補点Q0を起点として文字列0を上向きに配置する場合について説明する。
先ず、文字列上向き配置部7の文字配置候補点作成部10aは、図17に示したノードAから、間隔DIF_CAND_POINT(=2)で順に文字配置候補点を作成する(ステップST1b)。例えば、図22(a)に示すように、道路リンク上に文字配置候補点P0~P20が作成される。図22(b)は文字配置候補点P0~P20の座標値である。また、文字配置候補点作成部10aに作成された各文字配置候補点を、0から文字配置候補点の数-1までの値をとり得るインデックス番号kの文字配置候補点(k)で表現する。つまり、文字配置候補点P0~P20は、インデックス番号k=0~20にそれぞれ相当するので、文字配置候補点(0)~文字配置候補点(20)で表される。
次に、開始文字配置候補点決定部11aが、文字配置を開始する文字配置候補点P’を探索する(ステップST2b)。文字配置候補点P’は、文字配置候補点P0~P20のうち、文字列配置開始候補点Q0との距離が最小の点である。ここでは、図20と図22(a)から、文字配置候補点P’は、文字配置候補点P0(文字配置候補点(0))となる。
続いて、上向き用文字配置順序決定部12aは、文字列0が沿う道路リンクを構成するリンクのうち、文字配置候補点P’が存在するリンクを特定し、このリンクの単位ベクトルRoadVec(cosθ,sinθ)の偏角θを用いて、下記式(2)から文字配置順序を順方向か逆方向のどちらにするかを決定する(ステップST3b)。
ここでは、文字配置候補点P’である点P0は、ノードAとノードBとを結ぶリンク(以下、道路リンク{A,B}と表記する)に存在するので、単位ベクトルは(cos0,sin0)となる。そのため、文字配置順序は順方向となる。
なお、ここでの順方向及び逆方向の文字配置順序とは、図23(a)及び図23(b)に示すように、文字列の文字を左読みできる方向が順方向であり、逆に右読みとなる方向が逆方向である。また、文字の配置順序は、0から文字列(i)中の文字数-1までの値をとり得るインデックス番号mで表現する。
if -π/2<θ≦π/2 順方向
else 逆方向 ・・・(2)
ここでは、文字配置候補点P’である点P0は、ノードAとノードBとを結ぶリンク(以下、道路リンク{A,B}と表記する)に存在するので、単位ベクトルは(cos0,sin0)となる。そのため、文字配置順序は順方向となる。
なお、ここでの順方向及び逆方向の文字配置順序とは、図23(a)及び図23(b)に示すように、文字列の文字を左読みできる方向が順方向であり、逆に右読みとなる方向が逆方向である。また、文字の配置順序は、0から文字列(i)中の文字数-1までの値をとり得るインデックス番号mで表現する。
if -π/2<θ≦π/2 順方向
else 逆方向 ・・・(2)
文字配置順序が決定されると、上向き用文字仮配置部13aは、文字配置を開始する文字配置候補点(文字配置候補点P’、k=0)について、文字列0で配置順序m=0の文字から順に、以降の処理を実施する(ステップST4b)。
上向き用文字仮配置部13aは、下記式(3)を用いて配置順序がm番目の文字を文字配置候補点P’に仮配置する(ステップST5b)。
ただし、Pxk,Pykは、k番目の文字配置候補点のx座標、y座標を示し、CharVec(cosφ,sinφ)は、道路リンクから文字への単位ベクトルを示しており、char_heightmは、m番目の文字の縦幅、char_widthmは、m番目の文字の横幅を示している。
また、下記式(3)の(xk BottomLeft,yk BottomLeft)は、文字の左下座標を示しており、(xkm TopLeft,ykm TopLeft)は、文字の左上座標を示している。
さらに(xkm BottomRight,ykm BottomRight)は、文字の右下座標を示しており、(xkm TopRight,ykm TopRight)は、文字の右上座標を示している。
上向き用文字仮配置部13aは、下記式(3)を用いて配置順序がm番目の文字を文字配置候補点P’に仮配置する(ステップST5b)。
ただし、Pxk,Pykは、k番目の文字配置候補点のx座標、y座標を示し、CharVec(cosφ,sinφ)は、道路リンクから文字への単位ベクトルを示しており、char_heightmは、m番目の文字の縦幅、char_widthmは、m番目の文字の横幅を示している。
また、下記式(3)の(xk BottomLeft,yk BottomLeft)は、文字の左下座標を示しており、(xkm TopLeft,ykm TopLeft)は、文字の左上座標を示している。
さらに(xkm BottomRight,ykm BottomRight)は、文字の右下座標を示しており、(xkm TopRight,ykm TopRight)は、文字の右上座標を示している。
図24は、文字配置候補点P’への文字の仮配置を説明する図である。文字列0で配置順序が最も若い文字“文”(順方向)を文字配置候補点P’(文字配置候補点P0)に仮配置すると、上記式(3)で表される左下座標、左上座標、右下座標及び右上座標は、図24のようになる。なお、破線の矩形は、文字“文”の外接矩形である。
また、図24において、道路リンクから文字への単位ベクトルCharVec(cosφ,sinφ)は、RoadVec(cosθ,sinθ)の偏角θを用いて下記式(4)から算出される。
if -π/2≦θ<π/2 φ=θ-π/2
if π/2≦θ<3π/2 φ=θ+π/2 ・・・(4)
また、図24において、道路リンクから文字への単位ベクトルCharVec(cosφ,sinφ)は、RoadVec(cosθ,sinθ)の偏角θを用いて下記式(4)から算出される。
if -π/2≦θ<π/2 φ=θ-π/2
if π/2≦θ<3π/2 φ=θ+π/2 ・・・(4)
次に、判定処理部14aは、上向き用文字仮配置部13aに仮配置された位置で、文字の可読性が損なわれる状態にあるか否かを判定し(ステップST6b)、この判定結果に基づいて当該仮配置位置への文字配置の可否を判定する(ステップST7b)。ここで、判定処理部14aが、文字配置が可能であると判定した場合(ステップST7b;YES)、当該文字の配置位置を文字位置登録部15aに登録する(ステップST8b)。このとき、当該文字の外接矩形の左下座標、左上座標、右下座標、右上座標の4頂点が文字位置として登録される。
次いで、上向き用文字仮配置部13aは、文字列(i)(ここでは、文字列0)の全ての文字について、上述の処理が実施されたか否かを判定する(ステップST9b)。
ここで、文字の配置順序mの値が文字列0の文字数-1と等しくなり、全ての文字について処理が実施された場合(ステップST9b;YES)、ステップST10bへ進む。ステップST10bでは、判定処理部14aが、文字列0の全ての文字について配置可能であることから、文字列0の配置が可能と判定して処理を終了する。
ここで、文字の配置順序mの値が文字列0の文字数-1と等しくなり、全ての文字について処理が実施された場合(ステップST9b;YES)、ステップST10bへ進む。ステップST10bでは、判定処理部14aが、文字列0の全ての文字について配置可能であることから、文字列0の配置が可能と判定して処理を終了する。
文字の配置順序mの値が文字列0の文字数-1に至らず、未処理の文字があると判定した場合(ステップST9b;NO)、上向き用文字仮配置部13aは、インデックス番号kの値が文字配置候補点の数に至らず、上記処理が未実施の文字配置候補点(k)があれば、インデックス番号k及びインデックス番号mをそれぞれ+1加算して、次に処理する文字(m=1)を次の文字配置候補点(1)に仮配置する(ステップST11b)。これにより、この配置に対して、ステップST6b以降の処理が実施される。
一方、判定処理部14aが、文字の配置不可であると判定した場合(ステップST7b;NO)、上向き用文字仮配置部13aは、インデックス番号kが文字配置候補点の数に至らず、上記処理が未実施の文字配置候補点(k)があれば、当該文字について次の文字配置候補点(k)に仮配置し、ステップST6bの処理に戻る。また、全ての文字配置候補点(k)について処理が完了していれば、文字列0の配置が不可であると判定して処理を終了する。これらの処理がステップST12bに相当する。
(1-2)判定処理
図25は、判定処理部による文字の配置可否の判定処理の流れを示すフローチャートであり、図21中のステップST6bの処理の詳細を示している。判定処理部14aの構成については、図14を参照する。
先ず、文字と道路の重複判定部18は、上向き用文字仮配置部13aにより文字が仮配置されると、仮配置された位置での文字と道路の重複箇所を探索して、重複の有無を判定する(ステップST1c)。図20に示す例では、文字列0の配置順序mが0番目の文字“文”の外接矩形と当該文字列0が沿う道路リンクである道路リンク{A,B,C,D}との重複が探索される。
図25は、判定処理部による文字の配置可否の判定処理の流れを示すフローチャートであり、図21中のステップST6bの処理の詳細を示している。判定処理部14aの構成については、図14を参照する。
先ず、文字と道路の重複判定部18は、上向き用文字仮配置部13aにより文字が仮配置されると、仮配置された位置での文字と道路の重複箇所を探索して、重複の有無を判定する(ステップST1c)。図20に示す例では、文字列0の配置順序mが0番目の文字“文”の外接矩形と当該文字列0が沿う道路リンクである道路リンク{A,B,C,D}との重複が探索される。
図26は、文字と道路の重複判定の流れを示すフローチャートであり、図25中のステップST1cの処理の詳細を示している。
先ず、重複判定対象の道路リンクの各リンクを、0から当該道路リンクのリンク数までの値をとり得るインデックス番号nのリンク(n)で表現する。文字と道路の重複判定部18は、上向き用文字仮配置部13aにより仮配置された文字の文字列が沿う道路リンクのリンクのうち、n=0のリンク(0)から順に処理を実施する(ステップST1d)。
文字と道路の重複判定部18は、上向き用文字仮配置部13aにより仮配置された文字とリンク(n)との重複を探索し(ステップST2d)、この探索結果から重複の有無を判定する(ステップST3d)。ここで、重複がなければ、その旨を判定結果データとして文字と道路の重複判定部18が記憶し(ステップST4d)、重複があれば、その旨を判定結果データとして記憶する(ステップST5d)。
先ず、重複判定対象の道路リンクの各リンクを、0から当該道路リンクのリンク数までの値をとり得るインデックス番号nのリンク(n)で表現する。文字と道路の重複判定部18は、上向き用文字仮配置部13aにより仮配置された文字の文字列が沿う道路リンクのリンクのうち、n=0のリンク(0)から順に処理を実施する(ステップST1d)。
文字と道路の重複判定部18は、上向き用文字仮配置部13aにより仮配置された文字とリンク(n)との重複を探索し(ステップST2d)、この探索結果から重複の有無を判定する(ステップST3d)。ここで、重複がなければ、その旨を判定結果データとして文字と道路の重複判定部18が記憶し(ステップST4d)、重複があれば、その旨を判定結果データとして記憶する(ステップST5d)。
この後、文字と道路の重複判定部18は、重複判定対象の道路リンクの全てのリンクとの重複判定を実施したか否かを判定する(ステップST6d)。ここで、リンクのインデックス番号nの値が、重複判定対象の道路リンクのリンク数に至らず、全てのリンクについて処理が実施されていない場合(ステップST6d;YES)、文字と道路の重複判定部18は、インデックス番号nを+1加算し、次に処理するリンク(n=1)を特定し(ステップST7d)、ステップST2d以降の処理を実施する。また、リンクのインデックス番号nの値が、重複判定対象の道路リンクのリンク数に至り、全てのリンクについて処理が実施された場合(ステップST6d;NO)、処理を終了する。
図20に示す例では、先ず、文字列0が沿う道路リンク{A,B,C,D}のうち、リンク{A,B}と文字“文”との重複が判定される。リンク{A,B}と文字“文”とは重複していないと判定される。次に、リンク{B,C}と文字“文”との重複が判定される。同様の処理を繰り返すことにより、道路リンク{A,B,C,D}と文字“文”との重複を判定すると、文字“文”は、道路リンク{A,B,C,D}と重複しないことがわかる。このため、文字と道路の重複判定部18で重複なしと判定される。
文字と道路の重複があれば、仮配置された位置での文字の配置は不可と判定され、重複がなければ、次の文字間隔判定処理へ移行する。
文字と道路の重複があれば、仮配置された位置での文字の配置は不可と判定され、重複がなければ、次の文字間隔判定処理へ移行する。
図25の説明に戻る。
文字間隔判定部19は、上向き用文字仮配置部13aにより仮配置されている文字と、1つ前に配置された全ての文字との間隔を算出し、当該文字間隔と所定の閾値を比較して文字間隔が広いか狭いかを判定する(ステップST2c)。
文字間隔の計算方法は、先ず、仮配置されている文字の外接矩形の4頂点と、1つ前に配置された全ての文字の外接矩形の4頂点との頂点間の距離をそれぞれ求める。その後、求めた頂点間の距離のうち、最小の距離を当該文字同士の文字間隔とする。
このとき、仮配置されている文字が配置順序mが0番目の文字である場合、その前に配置された文字はないため、文字間隔をMAXとする。つまり、文字列0では、文字“文”の前に配置された文字はないため、文字間隔はMAXとなる。
次いで、上記文字間隔がCCgap以上であれば“文字間隔広”と判定し、CCgap未満であれば“文字間隔狭”と判定される。文字列0の文字“文”は、文字間隔がMAXであるため、“文字間隔広”となる。なお、閾値となるCCgapは、上述したように文字列データに予め設定された値である。
文字間隔が“文字間隔狭”であれば、仮配置された位置での文字の配置は不可と判定され、“文字間隔広”であれば、次の文字同士の重複判定処理へ移行する。
文字間隔判定部19は、上向き用文字仮配置部13aにより仮配置されている文字と、1つ前に配置された全ての文字との間隔を算出し、当該文字間隔と所定の閾値を比較して文字間隔が広いか狭いかを判定する(ステップST2c)。
文字間隔の計算方法は、先ず、仮配置されている文字の外接矩形の4頂点と、1つ前に配置された全ての文字の外接矩形の4頂点との頂点間の距離をそれぞれ求める。その後、求めた頂点間の距離のうち、最小の距離を当該文字同士の文字間隔とする。
このとき、仮配置されている文字が配置順序mが0番目の文字である場合、その前に配置された文字はないため、文字間隔をMAXとする。つまり、文字列0では、文字“文”の前に配置された文字はないため、文字間隔はMAXとなる。
次いで、上記文字間隔がCCgap以上であれば“文字間隔広”と判定し、CCgap未満であれば“文字間隔狭”と判定される。文字列0の文字“文”は、文字間隔がMAXであるため、“文字間隔広”となる。なお、閾値となるCCgapは、上述したように文字列データに予め設定された値である。
文字間隔が“文字間隔狭”であれば、仮配置された位置での文字の配置は不可と判定され、“文字間隔広”であれば、次の文字同士の重複判定処理へ移行する。
文字同士の重複判定部20は、上向き用文字仮配置部13aによって仮配置されている文字と、1つ前に配置された全ての文字との重複箇所を探索し、重複の有無を判定する(ステップST3c)。ここで、文字同士の重複があると判定されると、仮配置された位置での文字の配置は不可と判定され、重複がなければ、処理を終了する。
仮配置されている文字が配置順序mが0番目の文字である場合、その前に配置された文字はないため、文字同士の重複はない。このため、文字同士の重複なしと判定される。
仮配置されている文字が配置順序mが0番目の文字である場合、その前に配置された文字はないため、文字同士の重複はない。このため、文字同士の重複なしと判定される。
文字同士の重複判定部20は、上述のようにして最終的に文字同士の重複もない旨を判定すると、仮配置された当該文字位置を文字位置登録部15aに登録する。
文字列0の文字“文”の場合、文字配置候補点P’に文字配置可能と判定されるため、文字位置登録部15aには、文字“文”の外接矩形の左下、左上、右下、右上の4頂点の座標が文字位置として登録される。つまり、図24に示すように、文字位置登録部15aには、文字“文”の左下座標(0,17)、左上座標(0,12)、右下座標(3,17)、右上座標(3,12)が登録される。
文字列0の文字“文”の場合、文字配置候補点P’に文字配置可能と判定されるため、文字位置登録部15aには、文字“文”の外接矩形の左下、左上、右下、右上の4頂点の座標が文字位置として登録される。つまり、図24に示すように、文字位置登録部15aには、文字“文”の左下座標(0,17)、左上座標(0,12)、右下座標(3,17)、右上座標(3,12)が登録される。
この後、上向き用文字仮配置部13aによって、配置順序mが1番目の文字“字”が、次の文字配置候補点P1に仮配置される。
図27は、配置順序mが0番目の文字に続いて配置順序mが1番目の文字が仮配置された場合を示す図である。図27において、符号Aを付した外接矩形は、配置順序mが0番目の文字“文”の配置位置であり、符号Bを付した外接矩形は、配置順序mが1番目の文字“字”の配置位置である。配置順序mが0番目の文字“文”は、文字配置を開始する文字配置候補点P’(文字配置候補点P0)を基準に配置されたが、配置順序mが1番目の文字“字”は、文字配置候補点P’の次の文字配置候補点P1を基準に仮配置される。
図27は、配置順序mが0番目の文字に続いて配置順序mが1番目の文字が仮配置された場合を示す図である。図27において、符号Aを付した外接矩形は、配置順序mが0番目の文字“文”の配置位置であり、符号Bを付した外接矩形は、配置順序mが1番目の文字“字”の配置位置である。配置順序mが0番目の文字“文”は、文字配置を開始する文字配置候補点P’(文字配置候補点P0)を基準に配置されたが、配置順序mが1番目の文字“字”は、文字配置候補点P’の次の文字配置候補点P1を基準に仮配置される。
文字列0における次の文字が仮配置されると、文字と道路の重複判定部18が、上述と同様にして文字と道路の重複を判定する。この場合、文字“字”は、道路との重複はなしと判定される。
この後、文字間隔判定部19は、仮配置されている文字“字”と1つ前に配置された文字“文”との文字間隔を求め、この文字間隔に基づいて文字配置の可否を判定する。この場合、文字“文”の外接矩形Aの4つの頂点と文字“字”の外接矩形Bの4つの頂点との各々の距離、すなわち合計16個の頂点間距離が算出される。これら頂点間距離のうち、最小の頂点間距離は“1”となり、この頂点間距離は、閾値CCgap(=√2)以下であるため、“文字間隔狭”と判定される。
従って、文字配置候補点P1に文字“字”を配置することは不可と判定される。
この後、文字間隔判定部19は、仮配置されている文字“字”と1つ前に配置された文字“文”との文字間隔を求め、この文字間隔に基づいて文字配置の可否を判定する。この場合、文字“文”の外接矩形Aの4つの頂点と文字“字”の外接矩形Bの4つの頂点との各々の距離、すなわち合計16個の頂点間距離が算出される。これら頂点間距離のうち、最小の頂点間距離は“1”となり、この頂点間距離は、閾値CCgap(=√2)以下であるため、“文字間隔狭”と判定される。
従って、文字配置候補点P1に文字“字”を配置することは不可と判定される。
文字配置候補点P1への配置が不可と判定されると、上向き用文字仮配置部13aが、続く文字配置候補点P2に文字“字”を仮配置することで、判定処理部14aは、上述の判定処理を繰り返す。ここで、文字配置候補点P2においても文字“字”の配置不可と判定されると、さらに、文字“字”を次の文字配置候補点P3に仮配置する。
図28は、配置順序mが2番目の文字の仮配置の一例を示す図である。図28において、符号A1を付した外接矩形は、配置順序mが0番目の文字“文”の配置位置であり、符号A2を付した外接矩形は、配置順序mが1番目の文字“字”の配置位置である。
また、符号B1を付した外接矩形は、配置順序mが2番目の文字“列”を仮配置した位置である。図28では、文字“列”の外接矩形B1が、文字配置候補点P5を基準として外接矩形A1,A2と同様に、道路リンク{A,B}に平行に仮配置される。
また、符号B1を付した外接矩形は、配置順序mが2番目の文字“列”を仮配置した位置である。図28では、文字“列”の外接矩形B1が、文字配置候補点P5を基準として外接矩形A1,A2と同様に、道路リンク{A,B}に平行に仮配置される。
この後、文字と道路の重複判定部18が、文字“列”と道路リンクの重複を判定する。このとき、図28に示すように、文字“列”の外接矩形B1とリンク{B,C}とが重複していることが探索され、重複有りと判定する。従って、文字“列”は、文字配置候補点P5に配置不可となる。
図29は、配置順序mが2番目の文字の仮配置の別の一例を示す図である。図29において、外接矩形A1は、図28と同様に、配置順序mが0番目の文字“文”の配置位置であり、外接矩形A2は、配置順序mが1番目の文字“字”の配置位置である。
図29に示す例は、上向き用文字仮配置部13aが、配置順序mが2番目の文字“列”の外接矩形B1を、文字配置候補点P5を基準として道路リンク{B,C}に平行に仮配置している。この場合においても、図29に示すように、文字“列”の外接矩形B1とリンク{A,B}とが重複していることが探索され、重複有りと判定する。
従って、文字“列”は、文字配置候補点P5に配置不可となる。
図29に示す例は、上向き用文字仮配置部13aが、配置順序mが2番目の文字“列”の外接矩形B1を、文字配置候補点P5を基準として道路リンク{B,C}に平行に仮配置している。この場合においても、図29に示すように、文字“列”の外接矩形B1とリンク{A,B}とが重複していることが探索され、重複有りと判定する。
従って、文字“列”は、文字配置候補点P5に配置不可となる。
図30は、配置順序mが2番目の文字の仮配置のさらに別の一例を示す図である。図30に示す例は、上述の処理を繰り返して、上向き用文字仮配置部13aが、文字“列”の外接矩形B1を文字配置候補点P8に仮配置した場合を示している。この場合、文字と道路の重複判定部18は、文字と道路の重複がないと判定する。
また、文字間隔判定部19は、文字“文”の外接矩形A1及び文字“字”の外接矩形A2と、文字“列”の外接矩形B1との文字間隔(頂点間距離の最小値)は、√2(2の平方根)となるので、閾値CCgap以上であり、文字間隔広と判定する。
しかし、文字同士の重複判定部20が、文字“列”の外接矩形B1が、文字“文”の外接矩形A1と文字“字”の外接矩形A2の双方との重複を探索して重複有りと判定する。
このため、文字“列”は文字配置候補点P8に配置不可と判定される。
また、文字間隔判定部19は、文字“文”の外接矩形A1及び文字“字”の外接矩形A2と、文字“列”の外接矩形B1との文字間隔(頂点間距離の最小値)は、√2(2の平方根)となるので、閾値CCgap以上であり、文字間隔広と判定する。
しかし、文字同士の重複判定部20が、文字“列”の外接矩形B1が、文字“文”の外接矩形A1と文字“字”の外接矩形A2の双方との重複を探索して重複有りと判定する。
このため、文字“列”は文字配置候補点P8に配置不可と判定される。
上述の処理を繰り返して文字ごとに配置可否を判定することで、文字列0は、図31に示すように上向き配置すると、可読性を維持して配置可能であることが判定される。
このとき、文字列0の可読性を維持した上向き配置における各文字の文字配置候補点が決定される。図31の例では、文字“文”を文字配置候補点P0、文字“字”を文字配置候補点P3、文字“列”を文字配置候補点P10、文字“0”を文字配置候補点P11に配置する。この場合、文字列0中の全ての文字は、文字配置候補点P0~P20に対して道路リンクを境にした一方側(上向き)に配置できるため、文字列0は上向き配置が可能である。
このとき、文字列0の可読性を維持した上向き配置における各文字の文字配置候補点が決定される。図31の例では、文字“文”を文字配置候補点P0、文字“字”を文字配置候補点P3、文字“列”を文字配置候補点P10、文字“0”を文字配置候補点P11に配置する。この場合、文字列0中の全ての文字は、文字配置候補点P0~P20に対して道路リンクを境にした一方側(上向き)に配置できるため、文字列0は上向き配置が可能である。
(1-3)文字列の下向き配置及び配置可否判定
文字列上向き配置部7が文字列0を上向き配置して配置可否を判定した後、引き続き、文字列下向き配置部8が、文字列0を下向き配置して配置可否を判定する。
文字列下向き配置部8による文字列0の下向き配置及び配置可否判定の流れは、図21と同様である。
先ず、文字列下向き配置部8の文字配置候補点作成部10bは、文字配置候補点を作成する。この後、開始文字配置候補点決定部11bが、上述と同様にして、文字配置を開始する文字配置候補点を探索する。これにより、文字列配置候補点は、図22(a)に示すようになり、文字配置を開始する文字配置候補点P’は、文字配置候補点P0となる。
文字列上向き配置部7が文字列0を上向き配置して配置可否を判定した後、引き続き、文字列下向き配置部8が、文字列0を下向き配置して配置可否を判定する。
文字列下向き配置部8による文字列0の下向き配置及び配置可否判定の流れは、図21と同様である。
先ず、文字列下向き配置部8の文字配置候補点作成部10bは、文字配置候補点を作成する。この後、開始文字配置候補点決定部11bが、上述と同様にして、文字配置を開始する文字配置候補点を探索する。これにより、文字列配置候補点は、図22(a)に示すようになり、文字配置を開始する文字配置候補点P’は、文字配置候補点P0となる。
次に、下向き用文字配置順序決定部16bが、文字配置候補点P’が存在するリンクの単位ベクトルRoadVec(cosθ,sinθ)を用い、下記式(5)から文字配置順序を決定する。
if -π/2<θ≦π/2 逆方向
else 順方向 ・・・(5)
if -π/2<θ≦π/2 逆方向
else 順方向 ・・・(5)
この後、下向き用文字仮配置部17bが、文字列0における配置順序mが0番目の文字“0”を、文字配置候補点P0を基準に仮配置する。なお、仮配置した文字の外接矩形の頂点座標(4頂点)は、下記式(6)から算出される。
上記式(6)中のφは、下記式(7)で算出することができる。
if -π/2≦θ<π/2 φ=θ+π/2
if π/2≦θ<3π/2 φ=θ-π/2 ・・・(7)
if -π/2≦θ<π/2 φ=θ+π/2
if π/2≦θ<3π/2 φ=θ-π/2 ・・・(7)
次に、判定処理部14bが、文字“0”が文字配置候補点P0に配置可能か否かを判定する。この判定処理は、上述した判定処理部14aの場合と同様であるので、説明を省略する。これにより、文字列0の可読性を維持した下向き配置における各文字の文字配置候補点が決定される。
図32は、文字列0の上向き配置及び下向き配置の一例を示す図である。文字列0を、上述の上向き配置及び下向き配置して文字ごとに配置可否判定を繰り返すことで、図32に示すようになる。この場合、文字列0中の全ての文字は、文字配置候補点P0~P20に対して道路リンクを境にしたもう一方側(下向き)に配置できるため、文字列0は下向き配置が可能である。
(1-4)配置不可な文字列配置開始候補点の削除処理
文字列配置開始候補点作成部3の候補点削除部9は、上述のようにして上向き配置及び下向き配置での配置可否判定が完了すると、候補点作成部6で作成された文字列配置開始候補点のうちから、文字列を上向き配置又は下向き配置のいずれか一方が配置不可である文字列配置開始候補点を削除する。
図20示す例では、文字列配置開始候補点Q0から、道路リンク{A,B,C,D}に沿って文字列0を上向き配置及び下向き配置できるため、文字列配置開始候補点Q0は、削除されない。
この後、文字列上向き配置部7及び文字列下向き配置部8によって、文字列配置開始候補点Q1を起点として、道路リンク{A,B,C,D}に沿って、文字列0を上向き配置及び下向き配置してそれぞれ配置可否を判定する。
この場合においても、文字列配置開始候補点Q1から、道路リンク{A,B,C,D}に沿って、文字列0を上向き配置及び下向き配置できるため、文字列配置開始候補点Q0は、削除されない。
文字列配置開始候補点作成部3の候補点削除部9は、上述のようにして上向き配置及び下向き配置での配置可否判定が完了すると、候補点作成部6で作成された文字列配置開始候補点のうちから、文字列を上向き配置又は下向き配置のいずれか一方が配置不可である文字列配置開始候補点を削除する。
図20示す例では、文字列配置開始候補点Q0から、道路リンク{A,B,C,D}に沿って文字列0を上向き配置及び下向き配置できるため、文字列配置開始候補点Q0は、削除されない。
この後、文字列上向き配置部7及び文字列下向き配置部8によって、文字列配置開始候補点Q1を起点として、道路リンク{A,B,C,D}に沿って、文字列0を上向き配置及び下向き配置してそれぞれ配置可否を判定する。
この場合においても、文字列配置開始候補点Q1から、道路リンク{A,B,C,D}に沿って、文字列0を上向き配置及び下向き配置できるため、文字列配置開始候補点Q0は、削除されない。
次いで、文字列上向き配置部7が、文字列配置開始候補点Q2を起点として道路リンク{A,B,C,D}に沿って、文字列0を上向き配置して配置可否を判定する。
この後、文字列下向き配置部8が、文字列配置開始候補点Q2を起点として道路リンク{A,B,C,D}に沿って、文字列0を下向き配置して配置可否を判定する。
この場合、上述の処理を実施することで、図33に示すように、文字列0の配置順序mが2番目の文字“字”を下向き配置できる。このとき、配置順序mが0番目の文字“0”の文字配置候補点が点P8となり、配置順序mが1番目の文字“列”の文字配置候補点が点P15となり、配置順序mが2番目の文字“字”の文字配置候補点がP18となる。
下向き用文字仮配置部17bによって、配置順序mが3番目の文字“文”が、文字配置候補点P20に仮配置されると、文字と道路の重複判定部18が、文字“文”と道路との重複を判定する。ここでは、文字“文”と道路リンク{A,B,C,D}との重複はないため、重複なしと判定される。
文字と道路との重複が判定されると、文字間隔判定部19が文字間隔を判定する。この場合、文字間隔が“1”であるため、CCgap未満となり、文字間隔狭と判定される。これにより、文字“文”を文字配置候補点P20に配置することはできない。
続いて、下向き用文字仮配置部17bは、文字“文”を次の文字配置候補点に仮配置しようとするが、P20の次の文字配置候補点はない。このため、下向き用文字仮配置部17bは、文字列配置開始候補点Q2を起点にすると、文字列0を道路リンク{A,B,C,D}に沿って配置を不可能であることを候補点削除部9へ通知する。これにより、候補点削除部9は、候補点作成部6で作成された文字列配置開始候補点のうちから、文字列配置開始候補点Q2を削除する。
この後、文字列下向き配置部8が、文字列配置開始候補点Q2を起点として道路リンク{A,B,C,D}に沿って、文字列0を下向き配置して配置可否を判定する。
この場合、上述の処理を実施することで、図33に示すように、文字列0の配置順序mが2番目の文字“字”を下向き配置できる。このとき、配置順序mが0番目の文字“0”の文字配置候補点が点P8となり、配置順序mが1番目の文字“列”の文字配置候補点が点P15となり、配置順序mが2番目の文字“字”の文字配置候補点がP18となる。
下向き用文字仮配置部17bによって、配置順序mが3番目の文字“文”が、文字配置候補点P20に仮配置されると、文字と道路の重複判定部18が、文字“文”と道路との重複を判定する。ここでは、文字“文”と道路リンク{A,B,C,D}との重複はないため、重複なしと判定される。
文字と道路との重複が判定されると、文字間隔判定部19が文字間隔を判定する。この場合、文字間隔が“1”であるため、CCgap未満となり、文字間隔狭と判定される。これにより、文字“文”を文字配置候補点P20に配置することはできない。
続いて、下向き用文字仮配置部17bは、文字“文”を次の文字配置候補点に仮配置しようとするが、P20の次の文字配置候補点はない。このため、下向き用文字仮配置部17bは、文字列配置開始候補点Q2を起点にすると、文字列0を道路リンク{A,B,C,D}に沿って配置を不可能であることを候補点削除部9へ通知する。これにより、候補点削除部9は、候補点作成部6で作成された文字列配置開始候補点のうちから、文字列配置開始候補点Q2を削除する。
上述の処理を繰り返すことで、文字列0の文字列配置開始候補点はQ0(0,20)、Q1(8,20)となり、文字列1の文字列配置開始候補点は、図34に示すように、Q5(30,0)、Q6(30,6)となる。なお、図34において、破線で示すリンクが文字列0が沿う道路リンク{A,B,C,D}のリンクであり、実線で示すリンクが文字列1が沿う道路リンク{E,D,F}のリンクである。
(2)コスト関数を用いた可読性の評価
上述のようにして、文字列配置開始候補点作成部3により文字列配置開始候補点が作成されると、最小コスト関数値算出部4が、下記式(8)で表されるコスト関数fを用いて当該コスト関数値が最小となる文字列位置を算出する。
ただし、下記式(8)において、Iは文字列の数であり、iは文字列を特定するインデックス番号である。
また、OverlapString(i)は、文字列同士の重複を示す関数、Angle(i)は、道路リンクの最大角度を示す関数、Dist(i)は、文字列配置開始候補点と入力文字列配置開始点との距離を示す関数である。なお、α1,α2,α3は、それぞれの関数値を調整するためのパラメータである。上述したように、パラメータα1,α2,α3は全て“1”であるものとする。
さらに、f(i)=α1OverlapString(i)+α2Angle(i)+α3Dist(i)である。
f=Σ[i=0,I]f(i) ・・・(8)
上述のようにして、文字列配置開始候補点作成部3により文字列配置開始候補点が作成されると、最小コスト関数値算出部4が、下記式(8)で表されるコスト関数fを用いて当該コスト関数値が最小となる文字列位置を算出する。
ただし、下記式(8)において、Iは文字列の数であり、iは文字列を特定するインデックス番号である。
また、OverlapString(i)は、文字列同士の重複を示す関数、Angle(i)は、道路リンクの最大角度を示す関数、Dist(i)は、文字列配置開始候補点と入力文字列配置開始点との距離を示す関数である。なお、α1,α2,α3は、それぞれの関数値を調整するためのパラメータである。上述したように、パラメータα1,α2,α3は全て“1”であるものとする。
さらに、f(i)=α1OverlapString(i)+α2Angle(i)+α3Dist(i)である。
f=Σ[i=0,I]f(i) ・・・(8)
図35は、コスト関数値が最小となる文字列配置の算出処理の流れを示すフローチャートであり、図16中のステップST3の処理の詳細を示している。なお、最小コスト関数値算出部4の構成については、図15を参照する。
先ず、文字列配置開始候補点作成部3で配置可能と判定された文字列配置開始候補点の各組み合わせを、0から当該文字列配置開始候補点の組み合わせの数までの値をとり得るインデックス番号naの組み合わせ(na)で表現する。
最小コスト関数値算出部4は、文字列配置開始候補点作成部3から入力された文字列配置開始候補点の全ての組み合わせのうち、na=0である組み合わせ(0)から順に処理を実施する(ステップST1e)。また、コスト関数値の最小値の初期値を、文字列配置装置1として機能するコンピュータで扱える最大の値であるMAXに設定する。
先ず、文字列配置開始候補点作成部3で配置可能と判定された文字列配置開始候補点の各組み合わせを、0から当該文字列配置開始候補点の組み合わせの数までの値をとり得るインデックス番号naの組み合わせ(na)で表現する。
最小コスト関数値算出部4は、文字列配置開始候補点作成部3から入力された文字列配置開始候補点の全ての組み合わせのうち、na=0である組み合わせ(0)から順に処理を実施する(ステップST1e)。また、コスト関数値の最小値の初期値を、文字列配置装置1として機能するコンピュータで扱える最大の値であるMAXに設定する。
図34に示した具体例では、上述までの処理により、文字列0の文字列配置開始候補点はQ0(0,20)、Q1(8,20)となり、文字列1の文字列配置開始候補点は、図34に示すように、Q5(30,0)、Q6(30,6)となっている。
従って、文字列配置開始候補点の組み合わせは{Q0,Q5},{Q0,Q6},{Q1,Q5},{Q1,Q6}となる。
最小コスト関数値算出部4は、最初に、組み合わせ{Q0,Q5}(組み合わせ(0))に対してコスト関数値を計算する。
従って、文字列配置開始候補点の組み合わせは{Q0,Q5},{Q0,Q6},{Q1,Q5},{Q1,Q6}となる。
最小コスト関数値算出部4は、最初に、組み合わせ{Q0,Q5}(組み合わせ(0))に対してコスト関数値を計算する。
文字列同士の重複関数算出部21は、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿う全ての文字列について、コスト関数fにおける文字列同士の重複関数OverlapString(i)の値をそれぞれ算出する(ステップST2e)。
ここでは、文字列同士の重複関数算出部21が、最初に重複度合いを計算する文字列とその他の文字列との重複度合いを計算する。文字列0から重複度合いを計算する場合は、文字列0以外の文字列である文字列1との重複が探索される。
ここでは、文字列同士の重複関数算出部21が、最初に重複度合いを計算する文字列とその他の文字列との重複度合いを計算する。文字列0から重複度合いを計算する場合は、文字列0以外の文字列である文字列1との重複が探索される。
次に、道路リンク角度関数算出部22は、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿う全ての文字列について、コスト関数fにおける文字列が沿う道路リンクの角度を示す関数Angle(i)の値をそれぞれ算出する(ステップST3e)。ここでは、道路リンク角度関数算出部22が、文字列0が沿う道路リンク{A,B,C,D}の各リンクがなす角度が算出される。
次いで、距離関数算出部23は、文字列配置開始候補点の組み合わせ(na)の各文字列配置開始候補点と、文字列データ取得部2により文字列データから取得された文字列配置開始点との距離を示す関数Dist(i)の値をそれぞれ算出する(ステップST4e)。ここでは、文字列配置開始候補点Q0,Q1と、文字列0についての文字列配置開始点との距離、及び、文字列配置開始候補点Q5,Q6と、文字列1についての文字列配置開始点との距離が算出される。
ステップST5eにおいて、文字列同士の重複関数算出部21、道路リンク角度関数算出部22及び距離関数算出部23は、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿う全ての文字列(i)について処理したか否かを判定する。
ここで、未実施の文字列(i)があれば(ステップST5e;YES)、インデックス番号iが+1加算されて(ステップST7e)、次の文字列について、ステップST2e以降の処理が繰り返される。
ここで、未実施の文字列(i)があれば(ステップST5e;YES)、インデックス番号iが+1加算されて(ステップST7e)、次の文字列について、ステップST2e以降の処理が繰り返される。
未実施の文字列(i)がなくなれば(ステップST5e;NO)、関数値足し合わせ部24が、文字列同士の重複関数算出部21、道路リンク角度関数算出部22及び距離関数算出部23によってそれぞれ算出された関数値を足し合わせて、文字列配置開始候補点の組み合わせ(na)に対応するコスト関数値を算出する(ステップST6e)。
次に、関数値足し合わせ部24は、ステップST6eで算出したコスト関数値が最小であるか否かを判定する(ステップST8e)。
ここでは、前回に判定したコスト関数値と今回判定するコスト関数値が大小比較され、今回判定するコスト関数値が小さければ(ステップST8e;YES)、関数値足し合わせ部24が、最小なコスト関数値と当該コスト関数値に対応する組み合わせ(na)とを更新する(ステップST9e)。
次に、関数値足し合わせ部24は、ステップST6eで算出したコスト関数値が最小であるか否かを判定する(ステップST8e)。
ここでは、前回に判定したコスト関数値と今回判定するコスト関数値が大小比較され、今回判定するコスト関数値が小さければ(ステップST8e;YES)、関数値足し合わせ部24が、最小なコスト関数値と当該コスト関数値に対応する組み合わせ(na)とを更新する(ステップST9e)。
今回判定するコスト関数値が大きければ(ステップST8e;NO)、関数値足し合わせ部24は、文字列配置開始候補点の全ての組み合わせ(na)についてコスト関数の算出処理を実施したか否かを判定する(ステップST10e)。ここで、未実施の組み合わせ(na)がなければ(ステップST10e;NO)、処理を終了する。
未実施の組み合わせ(na)があれば(ステップST10e;YES)、インデックス番号naが+1加算されて(ステップST11e)、ステップST2e以降の処理が繰り返される。
未実施の組み合わせ(na)があれば(ステップST10e;YES)、インデックス番号naが+1加算されて(ステップST11e)、ステップST2e以降の処理が繰り返される。
(2-1)文字列同士の重複関数値の算出処理
図36は、文字列同士の重複関数値の算出処理の流れを示すフローチャートであり、図35中のステップST2eの処理の詳細を示している。
文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿う各文字列を、0から文字列数までの値をとり得るインデックス番号iの文字列(i)で表現する。
また、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿う文字列のうち、重複度合いを計算する対象となる文字列以外の各文字列を、0から重複度合いを計算する対象となる文字列以外の文字列の数までの値をとり得るインデックス番号iaの文字列(ia)で表現する。
さらに、文字同士の重複関数算出部21は、文字列同士の重複数をカウントするカウンタを有し、カウンタの値をパラメータcountで表す。
図36は、文字列同士の重複関数値の算出処理の流れを示すフローチャートであり、図35中のステップST2eの処理の詳細を示している。
文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿う各文字列を、0から文字列数までの値をとり得るインデックス番号iの文字列(i)で表現する。
また、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿う文字列のうち、重複度合いを計算する対象となる文字列以外の各文字列を、0から重複度合いを計算する対象となる文字列以外の文字列の数までの値をとり得るインデックス番号iaの文字列(ia)で表現する。
さらに、文字同士の重複関数算出部21は、文字列同士の重複数をカウントするカウンタを有し、カウンタの値をパラメータcountで表す。
先ず、文字同士の重複関数算出部21が、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿う文字列のうち、i=0の文字列(0)から順に以降の処理を実施する(ステップST1f)。このとき、カウンタの初期値としてcount=0を設定する。
次に、文字同士の重複関数算出部21の文字列上向き配置部25aは、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿って、文字列(i)を上向き配置する(ステップST2f)。この後、文字列下向き配置部25bが、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿って、文字列(i)を下向き配置する(ステップST3f)。この場合、重複計算の対象となる文字列は文字列0であるので、文字列0を、文字列配置開始候補点Q0を起点として上向き配置及び下向き配置する。
なお、上向き配置及び下向き配置は、図21を用いて説明した内容と同様の処理で実施する。
次に、文字同士の重複関数算出部21の文字列上向き配置部25aは、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿って、文字列(i)を上向き配置する(ステップST2f)。この後、文字列下向き配置部25bが、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿って、文字列(i)を下向き配置する(ステップST3f)。この場合、重複計算の対象となる文字列は文字列0であるので、文字列0を、文字列配置開始候補点Q0を起点として上向き配置及び下向き配置する。
なお、上向き配置及び下向き配置は、図21を用いて説明した内容と同様の処理で実施する。
同様にして、文字列上向き配置部25aが、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿って、文字列(i)以外の文字列(ia)を上向き配置する(ステップST4f)。なお、ia=0の文字列(0)から順に以降の処理を実施する。
次いで、文字列下向き配置部25bが、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿って、文字列(i)以外の文字列(ia)を下向き配置する(ステップST5f)。この場合、重複計算の対象となる文字列以外の文字列は文字列1であるので、文字列1を、文字列配置開始候補点Q5を起点として上向き配置及び下向き配置する。
次いで、文字列下向き配置部25bが、文字列配置開始候補点の組み合わせ(na)に対応する道路リンクに沿って、文字列(i)以外の文字列(ia)を下向き配置する(ステップST5f)。この場合、重複計算の対象となる文字列以外の文字列は文字列1であるので、文字列1を、文字列配置開始候補点Q5を起点として上向き配置及び下向き配置する。
ここで、文字列(i)における各文字を、0から文字列(i)の文字数までの値をとり得るインデックス番号laの文字(la)で表現し、文字列(ia)における各文字を、0から文字列(ia)の文字数までの値をとり得るインデックス番号lbの文字(lb)で表現する。文字列重複算出部25cは、文字列(i)の文字のうちのla=0の文字(0)及び文字列(ia)の文字のうちのlb=0の文字(0)から順に以降の処理を実施する(ステップST6f)。
次に、文字列重複算出部25cは、文字列(i)の文字(la)と、文字列(i)以外の文字列のうちの1つである文字列(ia)の文字(lb)との重複を判定する(ステップST7f)。ここでは、文字列(i)が文字列0であり、文字列(ia)が文字列1となる。図37は、文字列配置開始候補点Q0を起点として文字列0を上向き配置及び下向き配置し、文字列配置開始候補点Q5を起点として文字列1を上向き配置及び下向き配置した場合を示す図である。文字列重複算出部25cは、文字列0の0番目(la=0)の文字と、文字列1の0番目(lb=0)の文字との重複を判定する。
先ず、文字列0の0番目(la=0)の上向き配置された文字“文”と、文字列1の0番目(lb=0)の上向き配置された文字“文”との重複が調べられる。
次に、文字列0の0番目(la=0)の上向き配置された文字“文”と、文字列1の0番目(lb=0)の下向き配置された文字“1”との重複が調べられる。
同様にして、文字列0の0番目(la=0)の下向き配置された文字“0”と、文字列1の0番目(lb=0)の上向き配置された文字“文”との重複が調べられる。
文字列0の0番目(la=0)の下向き配置された文字“0”と、文字列1の0番目(lb=0)の上向き配置された文字“文”との重複がそれぞれ調べられる。
これらの合計4回の重複調査の結果、重複がなければ、文字列重複算出部25cは、判定結果を重複なしとし、ステップST8fの処理に進む。一方、重複があれば、文字列重複算出部25cは、判定結果を重複ありとし、カウンタのカウント値countを+1加算する(ステップST9f)。
この場合、文字列0の0番目(la=0)の文字と、文字列1の0番目(lb=0)の文字は、重複なしと判定される。
先ず、文字列0の0番目(la=0)の上向き配置された文字“文”と、文字列1の0番目(lb=0)の上向き配置された文字“文”との重複が調べられる。
次に、文字列0の0番目(la=0)の上向き配置された文字“文”と、文字列1の0番目(lb=0)の下向き配置された文字“1”との重複が調べられる。
同様にして、文字列0の0番目(la=0)の下向き配置された文字“0”と、文字列1の0番目(lb=0)の上向き配置された文字“文”との重複が調べられる。
文字列0の0番目(la=0)の下向き配置された文字“0”と、文字列1の0番目(lb=0)の上向き配置された文字“文”との重複がそれぞれ調べられる。
これらの合計4回の重複調査の結果、重複がなければ、文字列重複算出部25cは、判定結果を重複なしとし、ステップST8fの処理に進む。一方、重複があれば、文字列重複算出部25cは、判定結果を重複ありとし、カウンタのカウント値countを+1加算する(ステップST9f)。
この場合、文字列0の0番目(la=0)の文字と、文字列1の0番目(lb=0)の文字は、重複なしと判定される。
ステップST8fにおいて、文字列重複算出部25cは、文字列(ia)における全ての文字(lb)について重複調査したか否かを判定する。ここで、未調査の文字(lb)があれば(ステップST8f;YES)、文字列重複算出部25cは、インデックス番号lbを+1加算し(ステップST10f)、ステップST7fに戻って、文字列0の0番目(la=0)の文字と、次の文字(lb)との重複調査を実施する。
ここでは、文字列0の0番目(la=0)の文字と、文字列1の1番目(lb=1)の文字との重複が調べられる。この場合、図32及び図37に示す配置であることから、文字列0の0番目(la=0)の文字と、文字列1の1番目(lb=1)の文字との重複はなしと判定される。
ここでは、文字列0の0番目(la=0)の文字と、文字列1の1番目(lb=1)の文字との重複が調べられる。この場合、図32及び図37に示す配置であることから、文字列0の0番目(la=0)の文字と、文字列1の1番目(lb=1)の文字との重複はなしと判定される。
文字列1で未調査の文字(lb)がなくなると(ステップST8f;NO)、文字列重複算出部25cは、文字列(i)における全ての文字(la)について重複調査したか否かを判定する(ステップST11f)。ここで、未調査の文字(la)があれば(ステップST11f;YES)、文字列重複算出部25cは、インデックス番号laを+1加算し(ステップST12f)、ステップST7fに戻って、文字列0の次の文字と、文字列1の文字(lb)との重複調査を実施する。ここでは、文字列0の1番目(la=1)の文字と、文字列1の文字(lb)との重複が調べられる。
文字列0で未調査の文字(la)がなくなると(ステップST11f;NO)、文字列重複算出部25cは、文字列(i)以外の全ての文字列(ia)について重複調査したか否かを判定する(ステップST13f)。ここで、未調査の文字列(ia)があれば(ステップST13f;YES)、文字列重複算出部25cは、インデックス番号iaを+1加算し(ステップST14f)、ステップST4fに戻って、文字列(ia=1)との重複調査を実施する。この場合、文字列0と文字列1との重複が無いため、カウンタの値である文字列0の重複数は“0”となる。
未調査の文字列(ia)がなくなると(ステップST13f;NO)、文字列重複算出部25cは、重複計算の対象の文字列(i)の重複数を用いて、下記式(9)から文字列同士の重複関数OverlapString(i)の値を算出する(ステップST15f)。
なお、下記式(9)中の重複数(i)は、文字列(i)の重複数である。この場合に、文字列0の重複数は“0”であるため、OverlapString(0)=0となる。同様に他の文字列に対してもOverlapString(i)を算出する。
if 重複数(i)≧OverlapStringThreshold
OverlapString(i)=100
else
OverlapString(i)
=重複数(i)×100/OverlapStringThreshold
・・・(9)
なお、下記式(9)中の重複数(i)は、文字列(i)の重複数である。この場合に、文字列0の重複数は“0”であるため、OverlapString(0)=0となる。同様に他の文字列に対してもOverlapString(i)を算出する。
if 重複数(i)≧OverlapStringThreshold
OverlapString(i)=100
else
OverlapString(i)
=重複数(i)×100/OverlapStringThreshold
・・・(9)
(2-2)道路リンクの角度関数値の算出処理
図38は、道路リンクの角度関数値の算出処理の流れを示すフローチャートであり、図35中のステップST3eの処理の詳細を示している。
文字列配置開始候補点の組み合わせに対応する道路リンクに沿う各文字列を、0から文字列の数までの値をとり得るインデックス番号iの文字列(i)で表現する。
また、文字列(i)が沿う道路リンクを構成する各ノードを、0から当該道路リンクのノード数-2までの値をとり得るインデックス番号lcで特定する。
さらに、道路リンク角度関数算出部22は、文字列(i)が沿う道路リンクがなす角度をAngle(i)で表す。
図38は、道路リンクの角度関数値の算出処理の流れを示すフローチャートであり、図35中のステップST3eの処理の詳細を示している。
文字列配置開始候補点の組み合わせに対応する道路リンクに沿う各文字列を、0から文字列の数までの値をとり得るインデックス番号iの文字列(i)で表現する。
また、文字列(i)が沿う道路リンクを構成する各ノードを、0から当該道路リンクのノード数-2までの値をとり得るインデックス番号lcで特定する。
さらに、道路リンク角度関数算出部22は、文字列(i)が沿う道路リンクがなす角度をAngle(i)で表す。
先ず、道路リンク角度関数算出部22が、文字列(i)が沿う道路リンク中のノード(lc)のうち、lc=0から順に以降の処理を実施する(ステップST1g)。このとき、角度Angle(i)=0を設定する。
次に、道路リンク角度関数算出部22は、文字列(i)が沿う道路リンク中の3つのノードを用い、下記式(10)に従って、隣り合う3つのノードのそれぞれに接続する2つのリンクの角度を示すAnglelc(i)を算出する(ステップST2g)。ただし、下記式(10)において、nlc,nlc+1,nlc+2は、文字列(i)が沿う道路リンク中の連続して並ぶ3ノードである。図20の例では、文字列0が沿う道路リンク中で連続して並ぶ3つのノードA,B,Cをそれぞれ結ぶリンク{A,B}とリンク{B,C}が成す角度がπ/2であるので、Angle(0)=50となる。
Anglelc(i)={π-∠(mlc,mlc+1,mlc+2)}×100/π
・・・(10)
次に、道路リンク角度関数算出部22は、文字列(i)が沿う道路リンク中の3つのノードを用い、下記式(10)に従って、隣り合う3つのノードのそれぞれに接続する2つのリンクの角度を示すAnglelc(i)を算出する(ステップST2g)。ただし、下記式(10)において、nlc,nlc+1,nlc+2は、文字列(i)が沿う道路リンク中の連続して並ぶ3ノードである。図20の例では、文字列0が沿う道路リンク中で連続して並ぶ3つのノードA,B,Cをそれぞれ結ぶリンク{A,B}とリンク{B,C}が成す角度がπ/2であるので、Angle(0)=50となる。
Anglelc(i)={π-∠(mlc,mlc+1,mlc+2)}×100/π
・・・(10)
次いで、道路リンク角度関数算出部22は、下記式(11)に示すように、今回算出した関数Anglelc(i)の値が、文字列(i)が沿う道路リンク中で、前回角度関数の算出対象とした3つのノードをそれぞれ結ぶ2つのリンクがなす角度を示す関数値が設定されたAngle(i)よりも大きいか否かを判定する(ステップST3g)。
ここで、Anglelc(i)の値がAngle(i)の値よりも大きければ(ステップST3g;YES)、道路リンク角度関数算出部22は、関数Angle(i)の値を、今回算出した関数Anglelc(i)の値で更新する(ステップST4g)。
なお、初回の場合は、ステップST1gでAngle(i)を“0”に設定するので、i=0のAngle(0)<AngleA(0)である。よって、Angle(i)の値をAngleA(0)の値で更新する。
Angle(i)=max{Anglelc(i)} ・・・(11)
ここで、Anglelc(i)の値がAngle(i)の値よりも大きければ(ステップST3g;YES)、道路リンク角度関数算出部22は、関数Angle(i)の値を、今回算出した関数Anglelc(i)の値で更新する(ステップST4g)。
なお、初回の場合は、ステップST1gでAngle(i)を“0”に設定するので、i=0のAngle(0)<AngleA(0)である。よって、Angle(i)の値をAngleA(0)の値で更新する。
Angle(i)=max{Anglelc(i)} ・・・(11)
Anglelc(i)の値がAngle(i)以下であるか(ステップST3g;NO)、若しくは、ステップST4gの処理が完了すると、道路リンク角度関数算出部22は、文字列(i)が沿う道路リンク中の全てのノードについて、上記処理を実施したか否かを判定する(ステップST5g)。
ここで、インデックス番号lcが、文字列(i)が沿う道路リンクのノード数-2未満であり、文字列(i)が沿う道路リンクに上記処理が未実施のノードがある場合(ステップST5g;YES)、道路リンク角度関数算出部22は、インデックス番号lcに+1加算して(ステップST6g)、文字列(i)が沿う道路リンク中の次の3つのノードについて、ステップST2g以降の処理を実施する。
図20に示す例では、ノードA,B,Cの次にノードB,C,Dが特定され、これらを結ぶリンク{B,C}とリンク{C,B}との成す角度が、上記式(10)を用いて算出される。この場合は、AngleB(0)=50であるため、Angle(0)=AngleB(0)である。よって、Angle(0)の値は更新されない。
ここで、インデックス番号lcが、文字列(i)が沿う道路リンクのノード数-2未満であり、文字列(i)が沿う道路リンクに上記処理が未実施のノードがある場合(ステップST5g;YES)、道路リンク角度関数算出部22は、インデックス番号lcに+1加算して(ステップST6g)、文字列(i)が沿う道路リンク中の次の3つのノードについて、ステップST2g以降の処理を実施する。
図20に示す例では、ノードA,B,Cの次にノードB,C,Dが特定され、これらを結ぶリンク{B,C}とリンク{C,B}との成す角度が、上記式(10)を用いて算出される。この場合は、AngleB(0)=50であるため、Angle(0)=AngleB(0)である。よって、Angle(0)の値は更新されない。
このように、文字列(i)が沿う道路リンク中の全てのノードについて上記処理を実施したと判定されるまで(ステップST5g;NO)、Anglelc(i)を繰り返して、上記式(11)に従ってAngle(i)の値を更新する。図20では、文字列0が沿う道路リンクでの角度を示す関数Angle(0)は50となる。
(2-3)文字列配置開始候補点と文字列配置開始点との距離を示す関数値の算出処理
図35中のステップST4eにおける文字列配置開始点と文字列配置開始候補点との距離を示す関数の算出処理についての詳細を説明する。
距離関数算出部23が、下記式(12)に従って、文字列データに予め設定された文字列(i)についての文字列配置開始点(以下、入力文字列配置開始点と呼ぶ)と、文字列配置開始候補点との距離を示す関数Dist(i)の値を算出する。
ただし、下記式(12)における、(Qxi,Qyi)は、文字列(i)の文字列配置開始候補点の位置である。また、(Sxi,Syi)は、文字列(i)の入力文字列配置開始点である。図20に示す場合には、文字列0の文字列配置開始候補点はQ0であるので、(Qx0,Qy0)=Q0(0,20)となる。また、上述したように、文字列0の文字列配置開始点Iは、(Sx0,Sy0)=I(12,10)である。
従って、下記式(12)より、Dist(0)=√244(244の平方根)となる。
図35中のステップST4eにおける文字列配置開始点と文字列配置開始候補点との距離を示す関数の算出処理についての詳細を説明する。
距離関数算出部23が、下記式(12)に従って、文字列データに予め設定された文字列(i)についての文字列配置開始点(以下、入力文字列配置開始点と呼ぶ)と、文字列配置開始候補点との距離を示す関数Dist(i)の値を算出する。
ただし、下記式(12)における、(Qxi,Qyi)は、文字列(i)の文字列配置開始候補点の位置である。また、(Sxi,Syi)は、文字列(i)の入力文字列配置開始点である。図20に示す場合には、文字列0の文字列配置開始候補点はQ0であるので、(Qx0,Qy0)=Q0(0,20)となる。また、上述したように、文字列0の文字列配置開始点Iは、(Sx0,Sy0)=I(12,10)である。
従って、下記式(12)より、Dist(0)=√244(244の平方根)となる。
上述の処理を文字列1に対しても行った後、関数値足し合わせ部24が、上記式(8)に従って、コスト関数値fを算出する。文字列0及び文字列1では下記式の関係となる。
f(0)=OverlapString(0)+Angle(0)+Dist(0)
=50+√244
f(1)=OverlapString(1)+Angle(1)+Dist(1)
=12
よって、コスト関数値fは、f=f(0)+f(1)=62+√244となる。
f(0)=OverlapString(0)+Angle(0)+Dist(0)
=50+√244
f(1)=OverlapString(1)+Angle(1)+Dist(1)
=12
よって、コスト関数値fは、f=f(0)+f(1)=62+√244となる。
上述の処理を、文字列配置開始候補点の他の組み合わせ{Q0,Q6},{Q1,Q5},{Q1,Q6}に対しても行う。この結果、コスト関数値は、図39に示すようになる。この場合、最小コスト関数値算出手段4は、{Q0,Q6}のとき、コスト関数値fが最小になると判定する。よって、この{Q0,Q6}を出力文字列配置開始候補点記憶領域5に保存する。
実施の形態1による文字列配置装置1が、画面上に文字列を配置する際、出力文字列配置開始候補点記憶部5に保存された文字列配置開始候補点の組を用いることで、文字列同士の重複が少ない位置に文字列を配置することができる。上述した例では、文字列配置開始候補点の組{Q0,Q6}を文字列配置に用いる。
以上のように、この実施の形態1によれば、表示画面上に配置する文字列のデータを取得する文字列データ取得部2と、文字列データ取得部2によって取得された文字列の配置を開始する表示画面上の文字列配置開始候補点を作成する文字列配置開始候補点作成部3と、文字列配置開始候補点作成部3で作成された文字列配置開始候補点を起点として表示画面上の相対する方向で読みがそれぞれ順方向となるように文字列を配置して、各配置の文字列同士の位置関係に基づいて、当該文字列の可読性に影響を与える因子(文字列同士の重複、道路リンクのなす角度、及び入力文字列配置開始点と文字列配置開始候補点との距離)を評価するコスト関数値を算出する最小コスト関数値算出部4と、コスト関数値が最小の位置候補を、文字列の配置開始位置を変更する際の文字列配置開始候補点として記憶する出力文字列配置開始候補点記憶部5とを備える。
このように構成することで、例えば、道路に関して上向き配置及び下向き配置した文字列同士の重複を示す関数を含むコスト関数値を最小化すれば、いかなる地図向きでも文字列同士の重複が少ない位置に文字列を配置することができる。
これにより、カーナビゲーションシステムのように自車の位置の変化により地図向きが変わる場合であっても、表示画面中に文字列同士が重複して表示されることを抑制でき、文字列を容易に認識することができる。
このように構成することで、例えば、道路に関して上向き配置及び下向き配置した文字列同士の重複を示す関数を含むコスト関数値を最小化すれば、いかなる地図向きでも文字列同士の重複が少ない位置に文字列を配置することができる。
これにより、カーナビゲーションシステムのように自車の位置の変化により地図向きが変わる場合であっても、表示画面中に文字列同士が重複して表示されることを抑制でき、文字列を容易に認識することができる。
実施の形態2.
上記実施の形態1では、道路リンクを挟んで上向き配置及び下向き配置した文字列ペアの重複を示すコスト関数値を最小化することで、いかなる地図の向きであっても、文字列同士の重複が少ない位置となる文字列配置開始候補点を決定し、文字列配置開始候補点を基に文字列を再配置する装置を示した。
この実施の形態2では、文字列同士の重複だけではなく、文字列とシンボルの重複が少ない位置を文字列配置開始候補点として決定する態様を述べる。また、実施の形態2は、コスト関数fの最小値を求める際に、遺伝的アルゴリズム(Genetic Algorithm;以下、GAと略す)を用いる点も、上記実施の形態1と異なる。
上記実施の形態1では、道路リンクを挟んで上向き配置及び下向き配置した文字列ペアの重複を示すコスト関数値を最小化することで、いかなる地図の向きであっても、文字列同士の重複が少ない位置となる文字列配置開始候補点を決定し、文字列配置開始候補点を基に文字列を再配置する装置を示した。
この実施の形態2では、文字列同士の重複だけではなく、文字列とシンボルの重複が少ない位置を文字列配置開始候補点として決定する態様を述べる。また、実施の形態2は、コスト関数fの最小値を求める際に、遺伝的アルゴリズム(Genetic Algorithm;以下、GAと略す)を用いる点も、上記実施の形態1と異なる。
図40は、この発明の実施の形態2による文字列配置装置の構成を示すブロック図である。実施の形態2の文字列配置装置1Aは、上記実施の形態1と同様に、例えばナビゲーション装置等に利用される地図表示装置を構成する装置であって、地図上の道路等を表現するリンクに沿ってその名称等の情報を示す文字列を配置する。以降の説明においても、文字列配置装置1Aが、道路の名称等を示す文字列を当該道路の道路リンクに沿って配置する場合について述べる。
図40において、実施の形態2による文字列配置装置1Aは、文字列データ取得部2、文字列配置開始候補点作成部3、出力文字列配置開始候補点記憶部5a、シンボルデータ取得部26、個体初期化部27、個体毎のコスト関数値算出部28、コスト関数値最小個体保存部29、収束判定部30、個体再作成部31、交叉部32、及び突然変異部33を備える。上記構成部27~33により、GAを用いた最小のコスト関数値の抽出が実行される。
図40において、実施の形態2による文字列配置装置1Aは、文字列データ取得部2、文字列配置開始候補点作成部3、出力文字列配置開始候補点記憶部5a、シンボルデータ取得部26、個体初期化部27、個体毎のコスト関数値算出部28、コスト関数値最小個体保存部29、収束判定部30、個体再作成部31、交叉部32、及び突然変異部33を備える。上記構成部27~33により、GAを用いた最小のコスト関数値の抽出が実行される。
文字列データ取得部2は、外部の記憶装置から文字列データを取得する構成部である。なお、文字列データとは、例えば、地図表示に利用される地図データに含まれる、地図画面に表示する道路名の文字列、文字列が沿う道路リンクを示す道路リンクデータ及び地図画面で文字列の配置を開始する位置を示す文字列配置開始点を含むデータである。
シンボルデータ取得部26は、外部の記憶装置からシンボルデータを取得する構成部である。なお、シンボルデータとは、例えば、地図表示に利用される地図データに含まれ、地図画面上で道路上若しくは道路沿いに表示されるシンボルを示すデータ、及び当該シンボルを配置する位置を示すシンボル配置点を含むデータである。ナビゲーション装置であれば、自車の現在位置を示すシンボルが挙げられる。
シンボルデータ取得部26は、外部の記憶装置からシンボルデータを取得する構成部である。なお、シンボルデータとは、例えば、地図表示に利用される地図データに含まれ、地図画面上で道路上若しくは道路沿いに表示されるシンボルを示すデータ、及び当該シンボルを配置する位置を示すシンボル配置点を含むデータである。ナビゲーション装置であれば、自車の現在位置を示すシンボルが挙げられる。
文字列配置開始候補点作成部3は、文字列データ取得部2により文字列データから取得された文字列の文字列配置開始点を変更する場合に、地図画面で当該文字列の配置を開始する点の候補(以下、文字列配置開始候補点と呼ぶ)を作成する構成部である。
個体初期化部27は、文字列配置開始候補点作成部3で作成され配置可能と判定された文字列配置開始候補点の組み合わせから、最初に処理する文字列配置開始候補点の組み合わせを作成する構成部である。このように、文字列配置開始候補点作成部3で作成された文字列配置開始候補点から文字列毎に文字列配置開始候補点を等確率に選択して、最初に処理する個体を決定する処理を、個体の初期化という。この処理の詳細は図44を用いて後述する。
個体初期化部27は、文字列配置開始候補点作成部3で作成され配置可能と判定された文字列配置開始候補点の組み合わせから、最初に処理する文字列配置開始候補点の組み合わせを作成する構成部である。このように、文字列配置開始候補点作成部3で作成された文字列配置開始候補点から文字列毎に文字列配置開始候補点を等確率に選択して、最初に処理する個体を決定する処理を、個体の初期化という。この処理の詳細は図44を用いて後述する。
個体毎のコスト関数値算出部28は、個体毎の文字列配置開始候補点を起点として上向き配置した文字列と下向き配置した文字列とのペアにおいて、文字列の可読性に影響を与える因子として、各配置の文字列同士の重複を示す関数、隣り合う道路リンク同士の角度を示す関数、文字列データから取得された文字列配置開始点と文字列配置開始候補点との距離を示す関数、シンボルと文字列との重複を示す関数の値を足し合わせたコスト関数値をそれぞれ算出し、当該コスト関数値が最小となる個体とそのコスト関数値を求める構成部である。
コスト関数値最小個体保存部29は、個体毎のコスト関数値算出部28にて算出されたコスト関数値の最小値及びその個体を保存する構成部であり、保存した個体毎のコスト関数値の最小値のうち、さらに最小なコスト関数及びその個体を出力文字列配置開始候補点記憶部5aに記憶する。出力文字列配置開始候補点記憶部5aは、コスト関数値最小個体保存部29に保存された個体及びそのコスト関数値のうち、最小のコスト関数値及びその個体をを記憶する記憶部である。
収束判定部30は、コスト関数値最小個体保存部29に保存される個体毎のコスト関数値の最小値が一定に収束したか否かを判定する構成部である。
個体再作成部31は、個体初期化部27に初期化された個体、又は自身で前回作成した個体から、所定の選択確率で文字列配置開始候補点を選択することにより、所定数の個体を再作成する構成部である。
交叉部32は、個体再作成部31で作成された個体から所定の確率(交叉確率CROSSOVER)で選択した複数の交叉対象の個体から2つずつ個体をさらに選択し、選択した個体間で文字列配置開始候補点の組み合わせの一部を入れ替える、いわゆる交叉処理を実行する構成部である。
突然変異部33は、個体再作成部31で作成された個体、及び交叉部32で交叉処理が実行された個体の文字列配置開始候補点を、所定の確率(突然変異確率Mutation)で、これら個体に登録されている文字列配置開始候補点のうちから選択した別の文字列配置開始候補点に変換する構成部である。
個体再作成部31は、個体初期化部27に初期化された個体、又は自身で前回作成した個体から、所定の選択確率で文字列配置開始候補点を選択することにより、所定数の個体を再作成する構成部である。
交叉部32は、個体再作成部31で作成された個体から所定の確率(交叉確率CROSSOVER)で選択した複数の交叉対象の個体から2つずつ個体をさらに選択し、選択した個体間で文字列配置開始候補点の組み合わせの一部を入れ替える、いわゆる交叉処理を実行する構成部である。
突然変異部33は、個体再作成部31で作成された個体、及び交叉部32で交叉処理が実行された個体の文字列配置開始候補点を、所定の確率(突然変異確率Mutation)で、これら個体に登録されている文字列配置開始候補点のうちから選択した別の文字列配置開始候補点に変換する構成部である。
なお、文字列データ取得部2、文字列配置開始候補点作成部3、出力文字列配置開始候補点記憶部5a、シンボルデータ取得部26、個体初期化部27、個体毎のコスト関数値算出部28、コスト関数値最小個体保存部29、収束判定部30、個体再作成部31、交叉部32、及び突然変異部33は、例えば、この発明の趣旨に従う文字列配置用プログラムをコンピュータに実行させることにより、ハードウェアとソフトウェアが協働した具体的な手段として実現される。つまり、上記構成部2,3,26~33の各機能は、上記文字列配置用プログラムを構成する各プログラムモジュールに規定される。また、出力文字列配置開始候補点記憶部5aは、例えば、上記のコンピュータに搭載された記憶装置の記憶領域上に構築される。記憶装置としては、ハードディスク装置、半導体メモリ、CDやDVD等の記憶メディアのドライブ装置等が挙げられる。
図41は、図40中の個体毎のコスト関数値算出部の構成を示すブロック図であり、図41(a)は、個体毎のコスト関数値算出部28の全体構成を示しており、図41(b)は、図41(a)中のシンボルと文字列の重複関数算出部34の構成を示している。図41(a)において、個体毎のコスト関数値算出部28は、文字列同士の重複関数算出部21a、道路リンク角度関数算出部22a、距離関数算出部23a、シンボルと文字列の重複関数算出部34、及び関数値足し合わせ部24aを備える。
また、図41(b)に示すように、シンボルと文字列の重複関数算出部34は、外接矩形作成部35、外接矩形とシンボルの重複判定部36、及び外接矩形とシンボルの重複関数算出部37を備える。
また、図41(b)に示すように、シンボルと文字列の重複関数算出部34は、外接矩形作成部35、外接矩形とシンボルの重複判定部36、及び外接矩形とシンボルの重複関数算出部37を備える。
文字列同士の重複関数算出部21aは、個体初期化部27で初期化された個体又は個体再作成部31で作成された個体の文字列配置開始候補点を起点としてそれぞれ配置した場合における文字列同士の重複を、当該文字列同士の重複を示す関数を用いて判定する構成部である。
道路リンク角度関数算出部22aは、文字列データから取得された文字列が沿う道路リンクがなす角度を示す関数Angle(i)の値を算出する構成部である。
距離関数算出部23aは、文字列データ取得部2で文字列データから取得された文字列の文字列配置開始点と、個体初期化部27で初期化された個体又は個体再作成部31で作成された個体の文字列配置開始候補点との距離を示す関数Dist(i)の値を算出する構成部である。
関数値足し合わせ部24aは、関数OverlapString(i)、関数Angle(i)、関数Dist(i)及び関数Overlapsymbol(i)を足し合わせてなるコスト関数f(i)の値を、個体初期化部27で初期化された個体又は個体再作成部31で作成された個体の文字列配置開始候補点にそれぞれ配置した文字列について算出し、当該コスト関数f(i)の値が最小となる個体とそのコスト関数値を決定する構成部である。関数値足し合わせ部24aに決定された最小コスト関数値の個体とそのコスト関数値は、コスト関数値最小個体保存部29に保存される。
道路リンク角度関数算出部22aは、文字列データから取得された文字列が沿う道路リンクがなす角度を示す関数Angle(i)の値を算出する構成部である。
距離関数算出部23aは、文字列データ取得部2で文字列データから取得された文字列の文字列配置開始点と、個体初期化部27で初期化された個体又は個体再作成部31で作成された個体の文字列配置開始候補点との距離を示す関数Dist(i)の値を算出する構成部である。
関数値足し合わせ部24aは、関数OverlapString(i)、関数Angle(i)、関数Dist(i)及び関数Overlapsymbol(i)を足し合わせてなるコスト関数f(i)の値を、個体初期化部27で初期化された個体又は個体再作成部31で作成された個体の文字列配置開始候補点にそれぞれ配置した文字列について算出し、当該コスト関数f(i)の値が最小となる個体とそのコスト関数値を決定する構成部である。関数値足し合わせ部24aに決定された最小コスト関数値の個体とそのコスト関数値は、コスト関数値最小個体保存部29に保存される。
シンボルと文字列の重複関数算出部34は、個体初期化部27で初期化された個体又は個体再作成部31で作成された個体の文字列配置開始候補点を起点としてそれぞれ配置した場合における文字列とシンボルとの重複を、文字列とシンボルの重複を示す関数を用いて判定する構成部である。
また、外接矩形作成部35は、処理対象の文字列が沿う道路リンクを介して当該文字列を構成する文字を2文字ずつ上向き配置及び下向き配置し、これら上向き配置及び下向き配置された4つの文字に外接する外接矩形を作成する構成部である。
外接矩形とシンボルの重複判定部36は、シンボルデータ取得部26でシンボルデータから取得された各シンボルと、外接矩形作成部35で作成された外接矩形との重複を判定する構成部である。
外接矩形とシンボルの重複関数算出部37は、外接矩形とシンボルの重複判定部36による重複判定で求められた外接矩形とシンボルの重複数を用いて、外接矩形とシンボルの重複関数Overlapsymbol(i)の値を算出する構成部である。
また、外接矩形作成部35は、処理対象の文字列が沿う道路リンクを介して当該文字列を構成する文字を2文字ずつ上向き配置及び下向き配置し、これら上向き配置及び下向き配置された4つの文字に外接する外接矩形を作成する構成部である。
外接矩形とシンボルの重複判定部36は、シンボルデータ取得部26でシンボルデータから取得された各シンボルと、外接矩形作成部35で作成された外接矩形との重複を判定する構成部である。
外接矩形とシンボルの重複関数算出部37は、外接矩形とシンボルの重複判定部36による重複判定で求められた外接矩形とシンボルの重複数を用いて、外接矩形とシンボルの重複関数Overlapsymbol(i)の値を算出する構成部である。
図42は、図40中の個体再作成部の構成を示すブロック図である。図42において、個体再作成部31は、個体順番付け部38及び再作成部39を備える。
個体順番付け部38は、個体初期化部27に初期化された個体、又は自身で前回作成した個体に対して、個体毎のコスト関数値算出部28で算出されたコスト関数値に応じた順番を付与する構成部である。
再作成部39は、個体順番付け部38で付与された順番及びこれに対応するコスト関数値を用いて決定した所定の選択確率で、体初期化部27に初期化された個体又は自身で前回作成した個体から文字列配置開始候補点を選択することにより、所定数の個体を再作成する構成部である。上記選択確率の算出方法は、図52を用いて後述する。
個体順番付け部38は、個体初期化部27に初期化された個体、又は自身で前回作成した個体に対して、個体毎のコスト関数値算出部28で算出されたコスト関数値に応じた順番を付与する構成部である。
再作成部39は、個体順番付け部38で付与された順番及びこれに対応するコスト関数値を用いて決定した所定の選択確率で、体初期化部27に初期化された個体又は自身で前回作成した個体から文字列配置開始候補点を選択することにより、所定数の個体を再作成する構成部である。上記選択確率の算出方法は、図52を用いて後述する。
図43は、図40中の交叉部の構成を示すブロック図である。図43において、交叉部32は、交叉対象個体決定部40、2個体決定部41、交叉位置決定部42、及び2個体交叉部43を備える。
交叉対象個体決定部40は、個体再作成部31で作成された個体から所定の確率(交叉確率CROSSOVER)で、交叉処理を実行する対象である交叉対象個体を選択する構成部である。
2個体決定部41は、交叉対象個体決定部40で選択された交叉対象個体から、交叉処理を実行する個体を2つずつ決定する構成部である。
交叉位置決定部42は、2個体決定部41で決定された2個体のうち、交叉処理を実行する文字列配置開始候補点(個体中の交叉位置)を決定する構成部である。
2個体交叉部43は、2個体決定部41で決定された2個体間で、交叉位置決定部42で決定された交叉位置となる文字列配置開始候補点を入れ替える交叉処理を実行する構成部である。
交叉対象個体決定部40は、個体再作成部31で作成された個体から所定の確率(交叉確率CROSSOVER)で、交叉処理を実行する対象である交叉対象個体を選択する構成部である。
2個体決定部41は、交叉対象個体決定部40で選択された交叉対象個体から、交叉処理を実行する個体を2つずつ決定する構成部である。
交叉位置決定部42は、2個体決定部41で決定された2個体のうち、交叉処理を実行する文字列配置開始候補点(個体中の交叉位置)を決定する構成部である。
2個体交叉部43は、2個体決定部41で決定された2個体間で、交叉位置決定部42で決定された交叉位置となる文字列配置開始候補点を入れ替える交叉処理を実行する構成部である。
図44は、実施の形態2で扱われる個体の一例を示す図である。図44に示すように、個体とは、文字列配置開始候補点作成部3により文字列ごとに作成されて配置可能と判定された文字列配置開始候補点の組み合わせである。図44の例では、個体0は、文字列0の文字列配置開始候補点Q0,Q1のうちのQ0と、文字列1の文字列配置開始候補点Q5,Q6のうちのQ6とを組み合わせて構成される。
また、個体は、図44に示すように文字列配置開始候補点が原点に近い順に並べられたデータとなる。つまり、個体0は、文字列1の文字列配置開始候補点Q6より文字列0の文字列配置開始候補点Q0が原点に近いので、Q0,Q6の並びが規定されたデータとなる。
また、個体は、図44に示すように文字列配置開始候補点が原点に近い順に並べられたデータとなる。つまり、個体0は、文字列1の文字列配置開始候補点Q6より文字列0の文字列配置開始候補点Q0が原点に近いので、Q0,Q6の並びが規定されたデータとなる。
次に動作について説明する。
図45は、実施の形態2の文字列配置装置による動作の流れを示すフローチャートである。この図45に沿って、文字列配置開始候補点を取得する処理の概要を説明する。
先ず、文字列データ取得部2が、地図データベース等の外部記憶装置から文字列データを取得し、当該文字列データに含まれる全ての文字列と、それぞれの文字列に対応する道路リンク及び文字列配置開始点を抽出する(ステップST1h)。
次に、シンボルデータ取得部26が、地図データベース等の外部記憶装置からシンボルデータを取得し、当該シンボルデータに含まれる全てのシンボル及びその配置位置を抽出する(ステップST2h)。
図45は、実施の形態2の文字列配置装置による動作の流れを示すフローチャートである。この図45に沿って、文字列配置開始候補点を取得する処理の概要を説明する。
先ず、文字列データ取得部2が、地図データベース等の外部記憶装置から文字列データを取得し、当該文字列データに含まれる全ての文字列と、それぞれの文字列に対応する道路リンク及び文字列配置開始点を抽出する(ステップST1h)。
次に、シンボルデータ取得部26が、地図データベース等の外部記憶装置からシンボルデータを取得し、当該シンボルデータに含まれる全てのシンボル及びその配置位置を抽出する(ステップST2h)。
なお、以降では、文字列データ取得部2によって文字列データから文字列0と文字列1の2つの文字列が取得されたものとし、文字列0と文字列1、これらにそれぞれ対応する道路リンク及び文字列配置開始点は、下記のように規定されているものとして説明する。
図46は、文字列0と文字列1が沿う道路リンク、文字列配置開始点及びシンボル位置の関係の一例を示す図であり、地図の向きが北(ノースアップ)である地図画面において東西方向をx軸、南北方向をy軸とした二次元座標系を設定している。
文字列0が沿う道路リンクは、ノードA(0,20)、ノードB(10,20)、ノードC(10,10)及びノードD(30,10)を、それぞれリンク(図46中に破線で示すリンク)で結んで構成される。また、文字列データに予め設定された文字列0の文字列配置開始点はI(12,10)であるものとする。
また、文字列1が沿う道路リンクは、ノードE(30,0)、ノードD(30,10)及びノードF(30,30)を、それぞれリンク(図46中に実線で示すリンク)で結んで構成される。文字列データに予め設定された文字列1の文字列配置開始点はJ(30,12)であるものとする。
図46は、文字列0と文字列1が沿う道路リンク、文字列配置開始点及びシンボル位置の関係の一例を示す図であり、地図の向きが北(ノースアップ)である地図画面において東西方向をx軸、南北方向をy軸とした二次元座標系を設定している。
文字列0が沿う道路リンクは、ノードA(0,20)、ノードB(10,20)、ノードC(10,10)及びノードD(30,10)を、それぞれリンク(図46中に破線で示すリンク)で結んで構成される。また、文字列データに予め設定された文字列0の文字列配置開始点はI(12,10)であるものとする。
また、文字列1が沿う道路リンクは、ノードE(30,0)、ノードD(30,10)及びノードF(30,30)を、それぞれリンク(図46中に実線で示すリンク)で結んで構成される。文字列データに予め設定された文字列1の文字列配置開始点はJ(30,12)であるものとする。
また、文字列0に含まれる“文”、“字”、“列”、“0”の各文字は、縦幅が5で横幅が3であり、文字列1に含まれる“文”、“字”、“列”、“1”の各文字についても同様に縦幅が5で横幅が3であるものとする。
上記の道路リンクと文字列0及び文字列1の各文字との間隔RCgapは“3”、文字と文字の間隔CCgapは“√2(2の平方根)”であるものとする。
上記の道路リンクと文字列0及び文字列1の各文字との間隔RCgapは“3”、文字と文字の間隔CCgapは“√2(2の平方根)”であるものとする。
さらに、文字列配置開始候補点作成部3が、文字列ごとに作成する文字列配置開始候補点の候補点数PATTERN_NUMは5個であり、文字列の各文字を配置する文字配置候補点の間隔DIF_CAND_POINTは“2”であるものとし、文字列同士の重複数に関する閾値OverlapStringThresholdが“5”であるものとする。
後述するコスト関数値を算出する際のパラメータα1,α2,α3,α4は全て“1”とする。文字列配置装置1Aとして機能するコンピュータによって処理可能な上述の間隔RCgap,CCgap,DIF_CAND_POINT等の最大値は“MAX”とする。
シンボルデータ取得部26によってシンボルデータからシンボル0とシンボル1の2つのシンボルが取得されたものとし、シンボル0の配置位置を、図46中のK(5,20)とし、シンボル1の配置位置をL(30,24)とする。
また、個体初期化部27及び個体再作成部31によって作成される個体の数POPULATION_SIZEを“3”とし、交叉部32で交叉対象の個体として選択する交叉確率CROSSOVERを60%とし、突然変異部33で突然変異処理として文字列配置開始候補点を変換する個体を選択する突然変異確率MUTATIONを5%する。
さらに、収束判定部30で収束判定に利用するCONVERGENCE_CONTINUOUSを“5”とし、CONVERGENCE_RATEを50%とする。
なお、上述した各パラメータ及び確率の値は、文字列データに文字列ごとに予め設定されているものとする。
また、個体初期化部27及び個体再作成部31によって作成される個体の数POPULATION_SIZEを“3”とし、交叉部32で交叉対象の個体として選択する交叉確率CROSSOVERを60%とし、突然変異部33で突然変異処理として文字列配置開始候補点を変換する個体を選択する突然変異確率MUTATIONを5%する。
さらに、収束判定部30で収束判定に利用するCONVERGENCE_CONTINUOUSを“5”とし、CONVERGENCE_RATEを50%とする。
なお、上述した各パラメータ及び確率の値は、文字列データに文字列ごとに予め設定されているものとする。
文字列配置開始候補点作成部3は、文字列データ取得部2によって取得された各文字列がそれぞれ沿う道路リンクにおける文字列配置開始候補点を作成する(ステップST3h)。このとき、文字列配置開始候補点作成部3によって、各文字列の文字ごとに文字列配置開始候補点での配置可否が判定される。文字列配置開始候補点の作成及びその配置可否の判定方法は、上記実施の形態1と同様である。この場合、上記実施の形態1と同様に、文字列0の文字列配置開始候補点Q0,Q1と、文字列1の文字列配置開始候補点Q5,Q6が作成される。
次に、個体初期化部27が、文字列配置開始候補点作成部3で作成されて配置可能と判定された文字列配置開始候補点から、POPULATION_SIZE個の文字列配置開始候補点の組み合わせ(個体)を作成する、いわゆる個体の初期化を実施する(ステップST4h)。ここでは、文字列配置開始候補点作成部3で作成された文字列配置開始候補点から、文字列ごとに文字列配置開始候補点を等確率に選択して、最初に処理する個体を決定する。上述した前提として仮定した条件では、文字列0の文字列配置開始候補点としてQ0,Q1が作成され、文字列1の文字列配置開始候補点としてQ5,Q6が作成されているので、文字列毎に文字列配置開始候補点を等確率に選択すると、図47に示す個体0~2が作成される。
個体毎のコスト関数値算出部28は、下記式(13)に従って、個体毎の文字列配置開始候補点を起点として、上向き配置した文字列と下向き配置した文字列とのペアにおける重複、隣り合う道路リンク同士の角度に応じた変形、文字列データ取得部2により文字列データから取得された文字列配置開始点と文字列配置開始候補点との距離、シンボルと文字列との重複をそれぞれ示す各関数を含むコスト関数をそれぞれ算出し、当該コスト関数値が最小となる個体とそのコスト関数値を算出する(ステップST5h)。コスト関数値最小個体保存部29は、個体毎のコスト関数値算出部28にて算出されたコスト関数値の最小値及びその個体を保存する(ステップST6h)。
なお、下記式(13)中のパラメータiは、文字列のインデックス番号を示しており、OverlapString(i)、Angle(i)、Dist(i)、α1,α2,α3は、全て上記式(8)と同様の関数、変数であるものとする。
また、OverlapString(i)は、文字列とシンボルの重複を示す関数であり、α4は、関数Overlapsymbol(i)の値を調整するパラメータである。
ただし、f’(i)=α1OverlapString(i)+α2Angle(i)+α3Dist(i)+α4Overlapsymbol(i)である。
f’=Σ[i]f’(i) ・・・(13)
なお、下記式(13)中のパラメータiは、文字列のインデックス番号を示しており、OverlapString(i)、Angle(i)、Dist(i)、α1,α2,α3は、全て上記式(8)と同様の関数、変数であるものとする。
また、OverlapString(i)は、文字列とシンボルの重複を示す関数であり、α4は、関数Overlapsymbol(i)の値を調整するパラメータである。
ただし、f’(i)=α1OverlapString(i)+α2Angle(i)+α3Dist(i)+α4Overlapsymbol(i)である。
f’=Σ[i]f’(i) ・・・(13)
次に、収束判定部30が、コスト関数値最小個体保存部29に保存されている個体毎のコスト関数値の最小値が一定に収束したか否かを判定する(ステップST7h)。
収束判定の方法としては、コスト関数値最小個体保存部29に保存されている個体が、CONVERGENCE_CONTINUOUS回だけ変化しない場合、もしくは、コスト関数値最小個体保存部29に保存されている個体におけるCONVERGENCE_RATE%以上の個体が同じコスト関数値である場合は、コスト関数値の最小値に収束ありと判定する。また、これ以外の場合には、収束なしと判定する。
ここで、収束ありと判定された場合(ステップST7h;YES)、処理を終了する。
また、収束なしと判定された場合(ステップST7h;NO)には、ステップST8hの処理へ進む。
収束判定の方法としては、コスト関数値最小個体保存部29に保存されている個体が、CONVERGENCE_CONTINUOUS回だけ変化しない場合、もしくは、コスト関数値最小個体保存部29に保存されている個体におけるCONVERGENCE_RATE%以上の個体が同じコスト関数値である場合は、コスト関数値の最小値に収束ありと判定する。また、これ以外の場合には、収束なしと判定する。
ここで、収束ありと判定された場合(ステップST7h;YES)、処理を終了する。
また、収束なしと判定された場合(ステップST7h;NO)には、ステップST8hの処理へ進む。
ステップST8hにおいて、個体再作成部31が、個体初期化部27に初期化された個体、又は自身で前回作成した個体から、所定の選択確率で文字列配置開始候補点を選択することにより、所定数の個体を再作成する。個体再作成の方法は、先ず、個体の選択確率を下記式(17)から算出する。
下記式(17)のうち、lは各個体を特定するためのインデックス番号であり、glは個体順番付け部38により順番付けされた個体のコスト関数値の相対的な大きさである。また、Selection_problは、新たな個体として個体lが選択される確率を示している。
下記式(17)のうち、lは各個体を特定するためのインデックス番号であり、glは個体順番付け部38により順番付けされた個体のコスト関数値の相対的な大きさである。また、Selection_problは、新たな個体として個体lが選択される確率を示している。
次に、交叉部32が、個体再作成部31で作成された個体から所定の交叉確率CROSSOVERで選択した複数の交叉対象の個体から2つずつ個体をさらに選択し、選択した個体間で文字列配置開始候補点の組み合わせの一部を入れ替える交叉処理を実行する(ステップST9h)。
次いで、突然変異部33が、個体再作成部31で作成された個体及び交叉部32で交叉処理が実行された個体の文字列配置開始候補点を、所定の突然変異確率Mutationで、これら個体に登録されている文字列配置開始候補点のうちから選択した別の文字列配置開始候補点に変換する(ステップST10h)。別の文字列配置開始候補点が、複数ある場合には、その中から等確率に1つを選択する。
次いで、突然変異部33が、個体再作成部31で作成された個体及び交叉部32で交叉処理が実行された個体の文字列配置開始候補点を、所定の突然変異確率Mutationで、これら個体に登録されている文字列配置開始候補点のうちから選択した別の文字列配置開始候補点に変換する(ステップST10h)。別の文字列配置開始候補点が、複数ある場合には、その中から等確率に1つを選択する。
この後、個体毎のコスト関数値算出部28が、収束判定部30によって収束なしと判定されており、かつ上述までの処理を所定の反復回数だけ実行したか否かを判定する(ステップST11h)。ここで、収束判定部30によって収束なしと判定されているが、上述までの処理を所定の反復回数だけ実行したと判定される場合(ステップST11h;YES)には、処理を終了する。
また、収束判定部30に収束なしと判定されており、かつ上述までの処理を実行した回数が所定の反復回数に満たないと判定された場合(ステップST11h;NO)、個体毎のコスト関数値算出部28は、個体再作成部31で作成された個体、交叉部32で交叉処理が実行された個体、及び突然変異部33での処理が施された個体を入力して、ステップST5h以降の処理を繰り返す。
また、収束判定部30に収束なしと判定されており、かつ上述までの処理を実行した回数が所定の反復回数に満たないと判定された場合(ステップST11h;NO)、個体毎のコスト関数値算出部28は、個体再作成部31で作成された個体、交叉部32で交叉処理が実行された個体、及び突然変異部33での処理が施された個体を入力して、ステップST5h以降の処理を繰り返す。
(1A)個体毎のコスト関数値の算出処理
図48は、個体毎のコスト関数値の算出処理の流れを示すフローチャートであり、図45中のステップST5hの処理の詳細を示している。
ここで、コスト関数値を算出する対象となる各個体を0から個体数までの値をとり得るインデックス番号nbの個体(nb)で表現する。
また、個体(nb)に対応する道路リンクに沿う各文字列を、0から文字列数までの値をとり得るインデックス番号iの文字列(i)で表現する。
図48は、個体毎のコスト関数値の算出処理の流れを示すフローチャートであり、図45中のステップST5hの処理の詳細を示している。
ここで、コスト関数値を算出する対象となる各個体を0から個体数までの値をとり得るインデックス番号nbの個体(nb)で表現する。
また、個体(nb)に対応する道路リンクに沿う各文字列を、0から文字列数までの値をとり得るインデックス番号iの文字列(i)で表現する。
文字同士の重複関数算出部21aは、nb=0の個体(0)に対応する文字列(i)のうち、i=0の文字列(0)から順に以降の処理を実施する(ステップST1i)。
先ず、文字同士の重複関数算出部21aは、個体(nb)に対応する文字列(i)について、文字列同士の重複を示す関数OverlapString(i)の値を算出する(ステップST2i)。関数OverlapString(i)の値の算出方法は、上記実施の形態1の文字同士の重複関数算出部21と同様である。
図47に示した個体0、個体1、個体2では、図49の(a)欄に示すように、個体0において文字列0と文字列1で0、個体1において文字列0と文字列1で40、個体2においても文字列0と文字列1で40となる。
先ず、文字同士の重複関数算出部21aは、個体(nb)に対応する文字列(i)について、文字列同士の重複を示す関数OverlapString(i)の値を算出する(ステップST2i)。関数OverlapString(i)の値の算出方法は、上記実施の形態1の文字同士の重複関数算出部21と同様である。
図47に示した個体0、個体1、個体2では、図49の(a)欄に示すように、個体0において文字列0と文字列1で0、個体1において文字列0と文字列1で40、個体2においても文字列0と文字列1で40となる。
次に、道路リンク角度関数算出部22aが、個体(nb)に対応する文字列(i)について、文字列(i)が沿う道路リンクの角度を示す関数Angle(i)の値を算出する(ステップST3i)。関数Angle(i)の値の算出方法は、上記実施の形態1の道路リンク角度関数算出部22と同様である。
図47に示した個体0、個体1、個体2では、図49の(b)欄に示すように、個体0において文字列0で50、文字列1で0、個体1においても文字列0で50、文字列1で0、個体2においても文字列0で50、文字列1で0となる。
図47に示した個体0、個体1、個体2では、図49の(b)欄に示すように、個体0において文字列0で50、文字列1で0、個体1においても文字列0で50、文字列1で0、個体2においても文字列0で50、文字列1で0となる。
次いで、距離関数算出部23aが、個体(nb)における各文字列配置開始候補点と、文字列データ取得部2によって文字列データから取得された文字列(i)の文字列配置開始点との距離を示す関数Dist(i)の値を算出する(ステップST4i)。関数Dist(i)の値の算出方法は、上記実施の形態1の距離関数算出部23と同様である。
図47に示した個体0、個体1、個体2では、図49の(c)欄に示すように、個体0において文字列0で√244、文字列1で12、個体1において文字列0で√116、文字列1で6、個体2において文字列0で√116、文字列1で12となる。
図47に示した個体0、個体1、個体2では、図49の(c)欄に示すように、個体0において文字列0で√244、文字列1で12、個体1において文字列0で√116、文字列1で6、個体2において文字列0で√116、文字列1で12となる。
この後、シンボルと文字列の重複関数算出部34が、個体(nb)に対応する文字列(i)とシンボルとの重複を示す関数値を算出する(ステップST5i)。この処理の詳細は、図50を用いて後述する。
ステップST6iにおいて、文字列同士の重複関数算出部21a、道路リンク角度関数算出部22a、距離関数算出部23a及びシンボルと文字列の重複関数算出部34は、個体(nb)に対応する全ての文字列(i)について処理したか否かを判定する。
ここで、未実施の文字列(i)があれば(ステップST6i;YES)、インデックス番号iが+1加算されて(ステップST7i)、次の文字列について、ステップST2i以降の処理が繰り返される。
ステップST6iにおいて、文字列同士の重複関数算出部21a、道路リンク角度関数算出部22a、距離関数算出部23a及びシンボルと文字列の重複関数算出部34は、個体(nb)に対応する全ての文字列(i)について処理したか否かを判定する。
ここで、未実施の文字列(i)があれば(ステップST6i;YES)、インデックス番号iが+1加算されて(ステップST7i)、次の文字列について、ステップST2i以降の処理が繰り返される。
未実施の文字列(i)がなくなれば(ステップST6i;NO)、文字列同士の重複関数算出部21a、道路リンク角度関数算出部22a、距離関数算出部23a及びシンボルと文字列の重複関数算出部34は、全ての個体(nb)について処理したか否かを判定する(ステップST8i)。ここで、未実施の個体(nb)があれば(ステップST8i;YES)、インデックス番号nbが+1加算されて(ステップST9i)、次の個体について、ステップST2i以降の処理が繰り返される。未実施の個体(nb)がなければ(ステップST8i;NO)、処理を終了する。
(1A-1)シンボルと文字列の重複関数値の算出処理
図50は、シンボルと文字列の重複関数値の算出処理の流れを示すフローチャートであり、図48中のステップST5iの処理の詳細を示している。
個体(nb)に対応する各文字列を、0から文字列数までの値をとり得るインデックス番号iの文字列(i)で表現する。
また、上向き配置及び下向き配置した文字列(i)中の各2文字からなる外接矩形を、0から文字列(i)の文字数-1までの値をとり得るインデックス番号ncの外接矩形(nc)で表現する。
さらに、重複度合いを計算する対象となる各シンボルを、0からシンボルの数までの値をとり得るインデックス番号kaのシンボル(ka)で表現する。
さらに、シンボルと文字列の重複関数算出部34は、文字列と重複するシンボルの数をカウントするカウンタを有し、カウンタの値をパラメータcountで表す。
図50は、シンボルと文字列の重複関数値の算出処理の流れを示すフローチャートであり、図48中のステップST5iの処理の詳細を示している。
個体(nb)に対応する各文字列を、0から文字列数までの値をとり得るインデックス番号iの文字列(i)で表現する。
また、上向き配置及び下向き配置した文字列(i)中の各2文字からなる外接矩形を、0から文字列(i)の文字数-1までの値をとり得るインデックス番号ncの外接矩形(nc)で表現する。
さらに、重複度合いを計算する対象となる各シンボルを、0からシンボルの数までの値をとり得るインデックス番号kaのシンボル(ka)で表現する。
さらに、シンボルと文字列の重複関数算出部34は、文字列と重複するシンボルの数をカウントするカウンタを有し、カウンタの値をパラメータcountで表す。
先ず、シンボルと文字列の重複関数算出部34が、nb=0の個体(0)に対応する文字列のうち、i=0の文字列(0)から順に以降の処理を実施する(ステップST1j)。このとき、カウンタの初期値としてcount=0を設定し、nc=0を設定する。
次に、外接矩形作成部31が、個体(0)に対応する道路リンクに沿って文字列(0)を上向き配置する(ステップST2j)。続いて、外接矩形作成部31は、当該道路リンクに沿って文字列(0)を下向き配置する(ステップST3j)。これにより、上記実施の形態1において、図32で示したような配置となる。
次に、外接矩形作成部31が、個体(0)に対応する道路リンクに沿って文字列(0)を上向き配置する(ステップST2j)。続いて、外接矩形作成部31は、当該道路リンクに沿って文字列(0)を下向き配置する(ステップST3j)。これにより、上記実施の形態1において、図32で示したような配置となる。
次いで、外接矩形作成部31は、上向き配置及び下向き配置した文字列(i)中の左側の2文字をそれぞれ特定し、これら4つの文字に外接する外接矩形(nc)を作成する(ステップST4j)。図32で示した配置の場合は、図51に示すように、上向き配置及び下向き配置された文字列0の初めの各2文字から、頂点が、T0(0,12)、T1(0,28)、T2(9,28)、T3(9,12)である外接矩形0(nc=0)が作成される。なお、図51において、外接矩形A3が道路リンクbを境に上向き配置及び下向き配置した文字列1の各文字の外接矩形であり、外接矩形B3が道路リンクaを境に上向き配置及び下向き配置した文字列0の各文字の外接矩形である。また、図51に示すK位置のシンボルがシンボル0であり、L位置のシンボルがシンボル1である。図45中のステップST2hの説明で述べたように、シンボル0はK(5,20)に位置し、シンボル1はL(30,24)に位置するものとする。
この後、外接矩形とシンボルの重複判定部36が、外接矩形(nc)とシンボル(ka)との重複があるか否かを判定する(ステップST5j)。ここでは、先ず、外接矩形とシンボルの重複判定部36が、下記式(14)に示すoverlap1~overlap4を算出する。なお、下記式(14)中の(xrect
TopLeft,yrect
TopLeft)は、外接矩形(nc)の左上座標、(xrect
BottomLeft,yrect
BottomLeft)は、外接矩形(nc)の左下座標、(xrect
BottomRight,yrect
BottomRight)は、外接矩形(nc)の右下座標、(xrect
TopRight,yrect
TopRight)は、外接矩形(nc)の右上座標を示している。また、(xsymbol,ysymbol)は、シンボルの座標を示している。
続いて、外接矩形とシンボルの重複判定部36は、上記のoverlap1~overlap4が、下記式(15)を満たす場合には重複ありと判定し、そうでない場合は重複なしと判定する。図51に示した例の場合、overlap1=80、overlap2=72、overlap3=64、overlap4=72となり、下記式(15)を満たす。このため、外接矩形0(nc=0)とシンボル0(ka=0、シンボル(0))とは重複ありと判定される。
overlap1>0&overlap2>0&overlap3>0&overlap4>0 ・・・(15)
overlap1>0&overlap2>0&overlap3>0&overlap4>0 ・・・(15)
外接矩形(nc)とシンボル(ka)との重複がないと判定すると、外接矩形とシンボルの重複判定部36は、文字列(i)から作成できる全ての外接矩形(nc)について、上記の処理を実行したか否かを判定する(ステップST6j)。ここで、インデックス番号ncが文字列(i)の文字数-1に至らず、未処理の外接矩形(nc)があると判定される場合(ステップST6j;YES)には、インデックス番号ncが+1加算されて(ステップST7j)、ステップST4jに戻って、次の外接矩形とシンボルの重複が判定される。
一方、ステップST5jで外接矩形(nc)とシンボル(ka)との重複があると判定された場合、外接矩形とシンボルの重複判定部36は、文字列(i)と重複するシンボルの数のカウント値countを+1加算する(ステップST8j)。
インデックス番号ncが文字列(i)の文字数-1に至り、未処理の外接矩形(nc)がないと判定された場合(ステップST6j;NO)若しくはステップST8jの処理が完了すると、外接矩形とシンボルの重複判定部36は、全てのシンボル(ka)について上記の処理を実行したか否かを判定する(ステップST9j)。ここで、インデックス番号kaがシンボル数に至り、未処理のシンボル(ka)がないと判定された場合(ステップST9j;NO)、ステップST10jに進む。
インデックス番号ncが文字列(i)の文字数-1に至り、未処理の外接矩形(nc)がないと判定された場合(ステップST6j;NO)若しくはステップST8jの処理が完了すると、外接矩形とシンボルの重複判定部36は、全てのシンボル(ka)について上記の処理を実行したか否かを判定する(ステップST9j)。ここで、インデックス番号kaがシンボル数に至り、未処理のシンボル(ka)がないと判定された場合(ステップST9j;NO)、ステップST10jに進む。
また、インデックス番号kaがシンボル数に至らず、未処理のシンボル(ka)があると判定された場合(ステップST9j;YES)、インデックス番号kaが+1加算されて(ステップST11j)、ステップST4jに戻り、次のシンボルと文字列(i)の重複が判定される。このとき、図51に示す例では、文字列0とシンボル1(ka=1、シンボル(1))との重複が判定される。先ず、文字列0について上述と同様にして外接矩形0を作成し、外接矩形0とシンボル1との重複が判定される。この場合、シンボル1の座標がL(30,24)であることから、overlap1=480、overlap2=36、overlap3=-336、overlap4=108となり、上記式(15)を満たさない。このため、外接矩形0とシンボル1は重複なしと判定される。
上述の処理を繰り返して文字列0と重複するシンボルの数を求める。図51の場合は、文字列0と重複するシンボルはシンボル0のみである。文字列(i)と重複するシンボル(ka)の数を文字列とシンボルの重複数とする。従って、文字列0とシンボルの重複数は“1”となる。
この後、外接矩形とシンボルの重複関数算出部37は、下記式(16)を用いて、外接矩形とシンボルの重複関数を算出する(ステップST10j)。なお、下記式(16)中のoverlapsymbol数(i)は、文字列iとシンボルとの重複数を示している。図51の例では、overlapsymbol数(0)が1、overlapsymbol(0)が20となる。
if overlapsymbol数(i)≧OverlapsymbolThreshold
overlapsymbol(i)=100
else
overlapsymbol(i)
=overlapsymbol数(i)×100/(OverlapsymbolThreshold)
・・・(16)
この後、外接矩形とシンボルの重複関数算出部37は、下記式(16)を用いて、外接矩形とシンボルの重複関数を算出する(ステップST10j)。なお、下記式(16)中のoverlapsymbol数(i)は、文字列iとシンボルとの重複数を示している。図51の例では、overlapsymbol数(0)が1、overlapsymbol(0)が20となる。
if overlapsymbol数(i)≧OverlapsymbolThreshold
overlapsymbol(i)=100
else
overlapsymbol(i)
=overlapsymbol数(i)×100/(OverlapsymbolThreshold)
・・・(16)
上述のようにして、同様に、次の文字列、個体に対しても、文字列とシンボルの重複関数を計算する。これにより、図49の(d)欄に示すように、文字列0と文字列1のシンボルとのoverlapsymbol数は、個体0において文字列0で20、文字列1で0、個体1において文字列0で0、文字列1で20、個体2において文字列0で0、文字列1で0となる。
この後、関数値足し合わせ部24aは、上記式(13)によるコスト関数の足し合わせをする。この場合、各個体のコスト関数fの値は、図49の(e)欄に示すように、個体0で82+√244、個体1で156+√116、個体2で142+√116となる。
コスト関数値最小個体保存部29は、各個体0~2及びそのコスト関数fの値を保持しており、これらのうち、コスト関数fの値が最も低い個体と、そのコスト関数値を出力文字列配置開始候補点記憶部5aに格納する。上述の例では、個体0のコスト関数fの値が最も低いことから、個体0の文字列配置開始候補点Q0,Q5と、個体0のコスト関数値82+√244が出力文字列配置開始候補点記憶部5aに格納される。
コスト関数値最小個体保存部29は、各個体0~2及びそのコスト関数fの値を保持しており、これらのうち、コスト関数fの値が最も低い個体と、そのコスト関数値を出力文字列配置開始候補点記憶部5aに格納する。上述の例では、個体0のコスト関数fの値が最も低いことから、個体0の文字列配置開始候補点Q0,Q5と、個体0のコスト関数値82+√244が出力文字列配置開始候補点記憶部5aに格納される。
(2A)個体再作成処理
ここで、図45中のステップST8hの個体再作成処理について詳細に説明する。
先ず、個体順番付け部38が、コスト関数値最小個体保存部29に保存されている個体に対してコスト関数fの値が大きい順に順番付けする。
上述の例では、個体0のコスト関数fの値が82+√244、個体1のコスト関数fの値が156+√116、個体2のコスト関数fの値が142+√116であることから、個体0は3、個体1は2、個体3は1となる。
ここで、図45中のステップST8hの個体再作成処理について詳細に説明する。
先ず、個体順番付け部38が、コスト関数値最小個体保存部29に保存されている個体に対してコスト関数fの値が大きい順に順番付けする。
上述の例では、個体0のコスト関数fの値が82+√244、個体1のコスト関数fの値が156+√116、個体2のコスト関数fの値が142+√116であることから、個体0は3、個体1は2、個体3は1となる。
次に、個体再作成部39が、上記式(17)に従ってPOPULATION_SIZE個の個体を再作成する。上述の例では、個体0の順番が3、個体1の順番が2、個体3の順番が1となることから、図49の(f)欄に示すように、選択確率Selection_probは、個体0で3/6、個体1で1/6、個体2で2/6となる。
以降の説明では、個体初期化部27によって作成された個体から、図49の(f)欄に示す選択確率で新たに個体を作成することで、例えば、図52に示すような個体が新たに作成されたものとする。なお、新たな個体は古い個体から確率的に文字列配置開始候補点を選択して作成されるため、必ずしも毎回、図52に示すような個体が作成されるとは限らない。
以降の説明では、個体初期化部27によって作成された個体から、図49の(f)欄に示す選択確率で新たに個体を作成することで、例えば、図52に示すような個体が新たに作成されたものとする。なお、新たな個体は古い個体から確率的に文字列配置開始候補点を選択して作成されるため、必ずしも毎回、図52に示すような個体が作成されるとは限らない。
(3A)交叉処理
図53は、交叉処理の流れを示すフローチャートであり、図45中のステップST9hの処理の詳細を示している。交叉部32の構成については図43を参照する。また、個体初期化部27で作成された個体における交叉対象個体の数を0から交叉対象の個体数までの値をとり得るインデックス番号ndで表現する。
先ず、交叉対象個体決定部40が、個体初期化部27で作成された個体から、個体毎に交叉対象であるか否かを決定する(ステップST1k)。ここで、各個体は、CROSSOVER%の確率で交叉対象の個体(nd個)となり(ステップST2k)、100-CROSSOVER%の確率で交叉対象でない個体となる。
図45で述べた前提条件から交叉確率CROSSOVERが60%であるので、個体が交叉対象個体になる確率は60%であり、交叉対象個体にならない確率は40%である。これらの確率で交叉対象個体を選択した結果、個体0と個体2が交叉対象として選択されたものとする。つまり、nd=2である。
図53は、交叉処理の流れを示すフローチャートであり、図45中のステップST9hの処理の詳細を示している。交叉部32の構成については図43を参照する。また、個体初期化部27で作成された個体における交叉対象個体の数を0から交叉対象の個体数までの値をとり得るインデックス番号ndで表現する。
先ず、交叉対象個体決定部40が、個体初期化部27で作成された個体から、個体毎に交叉対象であるか否かを決定する(ステップST1k)。ここで、各個体は、CROSSOVER%の確率で交叉対象の個体(nd個)となり(ステップST2k)、100-CROSSOVER%の確率で交叉対象でない個体となる。
図45で述べた前提条件から交叉確率CROSSOVERが60%であるので、個体が交叉対象個体になる確率は60%であり、交叉対象個体にならない確率は40%である。これらの確率で交叉対象個体を選択した結果、個体0と個体2が交叉対象として選択されたものとする。つまり、nd=2である。
次に、2個体決定部41が、交叉対象個体決定部40によって決定された交叉対象個体の中から、2つの個体を選択する(ステップST3k)。上述の例では、交叉対象個体が2つしかないので、個体0と個体2が選択される。
この後、交叉位置決定部42が、2個体決定部41で選択された2つの個体間での交叉数を決定する(ステップST4k)。ここでは、2つの個体間での交叉数として個体間で入れ替える文字列配置開始候補点(配置開始位置)を特定するので、便宜上交叉数を“交叉位置”と呼ぶ。
交叉位置の決定方法は、図44で示したように、個体は文字列配置開始候補点が原点に近い順に並べられたデータであるので、個体の1番目から(交叉対象の個体に登録されている文字列配置開始候補点の数-1)番目までの文字列配置開始候補点のうち、等確率に1つの文字列配置開始候補点を決定する。
上述の例では、個体0と個体2に登録されている文字列配置開始候補点はそれぞれ2個であるため、交叉位置は1となる。
この後、交叉位置決定部42が、2個体決定部41で選択された2つの個体間での交叉数を決定する(ステップST4k)。ここでは、2つの個体間での交叉数として個体間で入れ替える文字列配置開始候補点(配置開始位置)を特定するので、便宜上交叉数を“交叉位置”と呼ぶ。
交叉位置の決定方法は、図44で示したように、個体は文字列配置開始候補点が原点に近い順に並べられたデータであるので、個体の1番目から(交叉対象の個体に登録されている文字列配置開始候補点の数-1)番目までの文字列配置開始候補点のうち、等確率に1つの文字列配置開始候補点を決定する。
上述の例では、個体0と個体2に登録されている文字列配置開始候補点はそれぞれ2個であるため、交叉位置は1となる。
次いで、2個体交叉部43が、交叉位置決定部42で決定された交叉位置から、2個体決定部41で選択された2つの個体間で文字列配置開始候補点を入れ替える、交叉処理を実行する(ステップST5k)。つまり、2つの個体の初めから交叉位置番目の文字列配置開始候補点を互いに入れ替える。上述の例では交叉位置が1であるので、個体0と個体2の1番目の文字列配置開始候補点が入れ替えられる。このようにすることで、図54に示すようになる。
この後、交叉した個体を交叉対象個体から除外し(ステップST6k)、全ての交叉対象個体について交叉処理を実行するまで(ステップST7k)、ステップST3k以降の処理を繰り返す。上述の例では交叉対象個体は2個であるため、上述の交叉をした後に、処理を終了する。
(4A)突然変異処理
ここで、図45中のステップST10hの突然変異処理について詳細に説明する。
ステップST10hにおいて、突然変異部33は、一部の個体の文字列配置開始候補点を別の文字列配置開始候補点に変換する、いわゆる突然変異処理を実行する。
突然変異の方法は、個体に登録されている文字列配置開始候補点をMutation%の確率で別の文字列配置開始候補点に変換する。別の文字列配置開始候補点が複数ある場合は、その中から等確率に1つを選択する。
上述した例では、図55に示すように個体2の文字列0に対応する文字列配置開始候補点Q1を突然変異によって別の文字列配置開始候補点に変換する。個体0~2において、文字列0に対応する文字列配置開始候補点は、Q1以外ではQ0のみであるため、個体1のQ1はQ0に変わる。
ここで、図45中のステップST10hの突然変異処理について詳細に説明する。
ステップST10hにおいて、突然変異部33は、一部の個体の文字列配置開始候補点を別の文字列配置開始候補点に変換する、いわゆる突然変異処理を実行する。
突然変異の方法は、個体に登録されている文字列配置開始候補点をMutation%の確率で別の文字列配置開始候補点に変換する。別の文字列配置開始候補点が複数ある場合は、その中から等確率に1つを選択する。
上述した例では、図55に示すように個体2の文字列0に対応する文字列配置開始候補点Q1を突然変異によって別の文字列配置開始候補点に変換する。個体0~2において、文字列0に対応する文字列配置開始候補点は、Q1以外ではQ0のみであるため、個体1のQ1はQ0に変わる。
突然変異処理を施した後、上述と同様に、個体毎のコスト関数値算出部28が各個体のコスト関数を計算する。上述の例では、各個体のコスト関数fの値は、図56のようになる。コスト関数値最小個体保存部29にはコスト関数の値が最も低い個体が保存される。図56の例では、個体0、個体1が最もコスト関数値が低い個体である。この後、収束判定部30が収束しているか否かを判定する。上述の例では、3つの個体のうち、2つの個体が、コスト関数f値の最小値82+√244であるので収束ありと判定する。これにより、処理が終了する。
実施の形態2による文字列配置装置1Aが、画面上に文字列を配置する際、出力文字列配置開始候補点記憶部5aに保存された文字列配置開始候補点の組を用いることで、文字列同士の重複や文字列とシンボルの重複が少ない位置に文字列を配置することができる。上述の例では、文字列配置開始候補点の組{Q0,Q5}を文字列配置に用いる。
以上のように、この実施の形態2によれば、表示画面上に配置するシンボルのデータを取得するシンボルデータ取得部26を備え、個体毎のコスト関数値算出部28が、文字列配置開始候補点作成部3で作成された位置候補を起点として表示画面上の相対する方向で読みがそれぞれ順方向となるように文字列を配置し、各配置の文字列同士の位置関係及びシンボルデータ取得部26で取得されたシンボルと文字列の位置関係に基づいて、当該文字列の可読性に影響を与える因子(文字列同士の重複、道路リンクのなす角度、入力文字列配置開始点と文字列配置開始候補点との距離、及び文字列とシンボルとの重複)を評価するコスト関数値を算出する。
このように構成することで、文字列とシンボルの重複を示す関数を含んだコスト関数値が最小の文字列配置開始候補点を決定することができ、文字列同士の重複だけでなく、文字列とシンボルの重複も避けた位置に文字配置を変更することができる。
これにより、カーナビゲーションシステムのように自車位置の変化によって地図の向きが変わる場合であっても、画面中に文字列同士若しくは文字列とシンボルが重複して表示されることを抑制することができる。従って、文字列を容易に認識することができる。
また、最小のコスト関数値となる文字列配置開始候補点の組み合わせを決定する処理にGAを用いることにより、文字列数が多くなった場合に上記実施の形態1と比べて少ない計算量で文字配置の変更が可能となる。
このように構成することで、文字列とシンボルの重複を示す関数を含んだコスト関数値が最小の文字列配置開始候補点を決定することができ、文字列同士の重複だけでなく、文字列とシンボルの重複も避けた位置に文字配置を変更することができる。
これにより、カーナビゲーションシステムのように自車位置の変化によって地図の向きが変わる場合であっても、画面中に文字列同士若しくは文字列とシンボルが重複して表示されることを抑制することができる。従って、文字列を容易に認識することができる。
また、最小のコスト関数値となる文字列配置開始候補点の組み合わせを決定する処理にGAを用いることにより、文字列数が多くなった場合に上記実施の形態1と比べて少ない計算量で文字配置の変更が可能となる。
上記実施の形態1及び上記実施の形態2では、文字列を道路に沿って配置する場合について説明したが、本願発明は、これに限定されるものではない。例えば、線状の地物の画像を示すリンク(線分)であれば、河川や鉄道の線路を示すリンクであってもよく、またある領域を区画する境界を示すリンクであっても適用することが可能である。
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
この発明に係る文字列配置装置は、用意すべき情報量の増大を招くことなく、可読性を損なわずに文字列を表示画面に配置することができるので、カーナビゲーションシステムの地図表示画面上での文字列表示に好適である。
1,1A 文字列配置装置、2 文字列データ取得部、3 文字列配置開始候補点作成部、4 最小コスト関数値算出部、5,5a 出力文字列配置開始候補点記憶部、6 候補点作成部、7 文字列上向き配置部、8 文字列下向き配置部、9 候補点削除部、10a,10b 文字配置候補点作成部、11a,11b 開始文字配置候補点決定部、12a 上向き用文字配置順序決定部、13a 上向き用文字仮配置部、14a,14b 判定処理部、15a,15b 文字位置登録部、16b 下向き用文字配置順序決定部、17b 下向き用文字仮配置部、18 文字と道路の重複判定部、19 文字間隔判定部、20 文字同士の重複判定部、21,21a 文字列同士の重複関数算出部、22,22a 道路リンク角度関数算出部、23,23a 距離関数算出部、24,24a 関数値足し合わせ部、25a 文字列上向き配置部、25b 文字列下向き配置部、25c 文字列重複算出部、26 シンボルデータ取得部、27 個体初期化部、28 個体毎のコスト関数値算出部、29 コスト関数値最小個体保存部、30 収束判定部、31 個体再作成部、32 交叉部、33 突然変異部、34 シンボルと文字列の重複関数算出部、35 外接矩形作成部、36 外接矩形とシンボルの重複判定部、37 外接矩形とシンボルの重複関数算出部、38 個体順番付け部、39 再作成部、40 交叉対象個体決定部、41 2個体決定部、42 交叉位置決定部、43 2個体交叉部、100 表示画面、101 道路リンク、102,102a,102b 文字列、103,103a,103b,103A 文字列配置開始点。
Claims (11)
- 表示画面上に配置する文字列のデータを取得する文字列データ取得部と、
前記文字列データ取得部によって取得された文字列の配置を開始する前記表示画面上の位置候補を作成する位置候補作成部と、
前記位置候補作成部で作成された位置候補を起点として前記表示画面上の相対する方向で読みがそれぞれ順方向となるように前記文字列を配置して、前記各配置の文字列同士の位置関係に基づいて、当該文字列の可読性に影響を与える因子を評価するコスト関数値を算出するコスト関数値算出部と、
前記コスト関数値が最小の位置候補を、前記文字列の配置開始位置を変更する際の位置候補として記憶する記憶部とを備えた文字列配置装置。 - 前記位置候補作成部は、前記表示画面上に表示される線状の画像を示す線分群に沿って前記文字列の配置を開始する位置候補を作成し、
前記コスト関数値算出部は、前記位置候補作成部で作成された位置候補を起点として、
前記線分群を境とした一方の側に前記表示画面上の一方向で読みが順方向となるように前記文字列を配置するとともに、前記線分群を境とした他方の側に前記表示画面上の前記一方向と相対する方向で読みが順方向となるように当該文字列を配置して、前記各配置の文字列同士の重複を示す関数、前記線分群の線分がなす角度を示す関数、及び当該文字列に設定された配置開始位置と前記位置候補との距離を示す関数の値をそれぞれ算出し、これらを足し合わせた値を、当該文字列の可読性に影響を与える因子を評価するコスト関数値として算出することを特徴とする請求項1記載の文字列配置装置。 - 前記位置候補作成部は、前記位置候補を起点として、前記線分群を境とした一方の側に前記表示画面上の一方向で読みが順方向となるように前記文字列の文字を順に仮配置して、前記各文字及び順次仮配置した文字同士の位置関係から、文字ごとに当該文字列の配置の可否を判定する第1の文字列配置部と、前記線分群を境とした他方の側に前記表示画面上の前記一方向と相対する方向で読みが順方向となるように当該文字列の文字を順に仮配置して、前記各文字及び順次仮配置した文字同士の位置関係から、文字ごとに当該文字列の配置の可否を判定する第2の文字列配置部とを備え、
前記コスト関数値算出部は、前記第1及び前記第2の文字列配置部で配置可と判定された位置候補を起点として前記コスト関数値を算出することを特徴とする請求項2記載の文字列配置装置。 - 前記第1及び前記第2の文字列配置部は、前記文字と前記線分群の線分の重複の有無、前記順次仮配置した文字の文字間隔が所定の閾値より狭いか広いか、及び前記順次仮配置した文字同士の重複の有無に基づいて、前記位置候補を起点とした前記文字列の配置可否を判定することを特徴とする請求項3記載の文字列配置装置。
- 前記表示画面上に配置するシンボルのデータを取得するシンボルデータ取得部を備え、
前記コスト関数値算出部は、前記位置候補作成部で作成された位置候補を起点として前記表示画面上の相対する方向で読みがそれぞれ順方向となるように前記文字列を配置し、前記各配置の文字列同士の位置関係、及び前記シンボルデータ取得部で取得されたシンボルと前記文字列の位置関係に基づいて、当該文字列の可読性に影響を与える因子を評価するコスト関数値を算出することを特徴とする請求項1記載の文字列配置装置。 - 遺伝的アルゴリズム(Genetic Algorithm)を用いて、前記位置候補作成部で作成された前記文字列ごとの位置候補のうちから、最小のコスト関数値の位置候補を決定することを特徴とする請求項5記載の文字列配置装置。
- 前記位置候補作成部で作成された文字列ごとの位置候補の組み合わせに対して、コスト関数値算出部で算出されたコスト関数値の大きさに応じた順番付けを行い、前記組み合わせの順番に応じて作成した確率分布に基づいて、コスト関数値の算出対象となる前記位置候補の新たな組み合わせを作成する再作成部と、
前記再作成部で作成された組み合わせから、所定の交叉確率で交叉対象の組み合わせを選択し、選択した組み合わせ間で位置候補を入れ替える交叉を実行する交叉部と、
前記再作成部で作成された組み合わせ、及び前記交叉部で交叉が実行された組み合わせの位置候補を、所定の突然変異確率で、これらの組み合わせに登録されている位置候補のうちから選択した別の位置候補点に変換する突然変異部とをを備え、
前記コスト関数値算出部は、前記文字列ごとの位置候補の組み合わせのコスト関数値が最小に収束するまで、前記再作成部で作成された組み合わせ、前記交叉部で交叉が実行された組み合わせ、及び前記突然変異部での処理が実行された組み合わせのコスト関数値の算出を繰り返すことを特徴とする請求項6記載の文字列配置装置。 - 前記位置候補作成部は、前記表示画面上に表示される線状の画像を示す線分群に沿って前記文字列の配置を開始する位置候補を作成し、
前記コスト関数値算出部は、前記位置候補作成部で作成された位置候補を起点として、
前記線分群を境とした一方の側に前記表示画面上の一方向で読みが順方向となるように前記文字列を配置するとともに、前記線分群を境とした他方の側に前記表示画面上の前記一方向と相対する方向で読みが順方向となるように当該文字列を配置して、前記各配置の文字列同士の重複を示す関数、前記線分群の線分がなす角度を示す関数、当該文字列に設定された配置開始位置と前記位置候補との距離を示す関数、及びシンボルと当該文字列との重複を示す関数の値をそれぞれ算出し、これらを足し合わせた値を、当該文字列の可読性に影響を与える因子を評価するコスト関数値として算出することを特徴とする請求項5記載の文字列配置装置。 - 前記コスト関数値算出部は、前記線分群を境とした一方の側に前記表示画面上の一方向で読みが順方向となるように配置した前記文字列の隣り合う2文字と、前記線分群を境とした他方の側に前記表示画面上の前記一方向と相対する方向で読みが順方向となるように配置した当該文字列における、前記隣り合う2文字に前記線分群の線分を介して対向する2文字とからなる4文字に外接する外接矩形を作成し、当該外接矩形とシンボルとの重複を示す関数の値を算出することを特徴とする請求項7記載の文字列配置装置。
- 文字列データ取得部、位置候補作成部及びコスト関数値算出部を備えた文字列配置装置の文字列配置位置候補決定方法において、
前記文字列データ取得部が、表示画面上に配置する文字列のデータを取得する文字列データ取得ステップと、
前記位置候補作成部が、前記文字列データ取得ステップで取得された文字列の配置を開始する前記表示画面上の位置候補を作成する位置候補作成ステップと、
前記コスト関数値算出部が、前記位置候補作成ステップで作成された位置候補を起点として前記表示画面上の相対する方向で読みがそれぞれ順方向となるように前記文字列を配置して、前記各配置の文字列同士の位置関係に基づいて、当該文字列の可読性に影響を与える因子を評価するコスト関数値を算出するコスト関数値算出ステップとを備え、
前記コスト関数値が最小の位置候補を、前記文字列の配置開始位置を変更する際の位置候補とすることを特徴とする文字列配置候補決定方法。 - 表示画面上に配置する文字列のデータを取得する文字列データ取得部、
前記文字列データ取得部によって取得された文字列の配置を開始する前記表示画面上の位置候補を作成する位置候補作成部、
前記位置候補作成部で作成された位置候補を起点として前記表示画面上の相対する方向で読みがそれぞれ順方向となるように前記文字列を配置して、前記各配置の文字列同士の位置関係に基づいて、当該文字列の可読性に影響を与える因子を評価するコスト関数値を算出するコスト関数値算出部、
前記コスト関数値が最小の位置候補を、前記文字列の配置開始位置を変更する際の位置候補として記憶する記憶部としてコンピュータを機能させるための文字列配置候補決定用プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/007107 WO2012077158A1 (ja) | 2010-12-07 | 2010-12-07 | 文字列配置装置、文字列配置候補決定方法、及び文字列配置候補決定用プログラム |
JP2012547598A JP5253675B2 (ja) | 2010-12-07 | 2010-12-07 | 文字列配置装置、文字列配置候補決定方法、及び文字列配置候補決定用プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/007107 WO2012077158A1 (ja) | 2010-12-07 | 2010-12-07 | 文字列配置装置、文字列配置候補決定方法、及び文字列配置候補決定用プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012077158A1 true WO2012077158A1 (ja) | 2012-06-14 |
Family
ID=46206682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/007107 WO2012077158A1 (ja) | 2010-12-07 | 2010-12-07 | 文字列配置装置、文字列配置候補決定方法、及び文字列配置候補決定用プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5253675B2 (ja) |
WO (1) | WO2012077158A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114627745B (zh) * | 2022-05-16 | 2023-05-12 | 成都航空职业技术学院 | 一种用于车间规划的演示系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0384416A (ja) * | 1989-08-28 | 1991-04-10 | Matsushita Electric Ind Co Ltd | 車載用地図表示装置 |
JPH0456988A (ja) * | 1990-06-26 | 1992-02-24 | Furuno Electric Co Ltd | 図中文字表示装置 |
JPH0561927A (ja) * | 1991-08-30 | 1993-03-12 | Mitsubishi Electric Corp | データ自動配置装置 |
JPH07244719A (ja) * | 1994-03-02 | 1995-09-19 | Pioneer Electron Corp | 描画領域データ生成方法 |
JPH0996540A (ja) * | 1995-09-29 | 1997-04-08 | Nissan Motor Co Ltd | 車両用経路誘導装置 |
JP2005189004A (ja) * | 2003-12-24 | 2005-07-14 | Aisin Aw Co Ltd | ナビゲーション装置 |
JP2007156101A (ja) * | 2005-12-05 | 2007-06-21 | Navitime Japan Co Ltd | 地図表示システム、地図表示装置および地図表示方法 |
-
2010
- 2010-12-07 JP JP2012547598A patent/JP5253675B2/ja not_active Expired - Fee Related
- 2010-12-07 WO PCT/JP2010/007107 patent/WO2012077158A1/ja active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0384416A (ja) * | 1989-08-28 | 1991-04-10 | Matsushita Electric Ind Co Ltd | 車載用地図表示装置 |
JPH0456988A (ja) * | 1990-06-26 | 1992-02-24 | Furuno Electric Co Ltd | 図中文字表示装置 |
JPH0561927A (ja) * | 1991-08-30 | 1993-03-12 | Mitsubishi Electric Corp | データ自動配置装置 |
JPH07244719A (ja) * | 1994-03-02 | 1995-09-19 | Pioneer Electron Corp | 描画領域データ生成方法 |
JPH0996540A (ja) * | 1995-09-29 | 1997-04-08 | Nissan Motor Co Ltd | 車両用経路誘導装置 |
JP2005189004A (ja) * | 2003-12-24 | 2005-07-14 | Aisin Aw Co Ltd | ナビゲーション装置 |
JP2007156101A (ja) * | 2005-12-05 | 2007-06-21 | Navitime Japan Co Ltd | 地図表示システム、地図表示装置および地図表示方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5253675B2 (ja) | 2013-07-31 |
JPWO2012077158A1 (ja) | 2014-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Schlieder | Qualitative shape representation | |
CN102521884B (zh) | 一种基于LiDAR数据与正射影像的3维屋顶重建方法 | |
CN110689598B (zh) | 一种多层道路三维建模方法及系统 | |
JP6132033B2 (ja) | 形状判定装置、形状判定プログラム、形状判定方法 | |
CN110363054B (zh) | 道路标识线识别方法、装置和系统 | |
CN113724279B (zh) | 路网自动划分交通小区的系统、方法、设备及存储介质 | |
CN111275807A (zh) | 一种3d道路建模的方法和系统 | |
Ficzere et al. | Time–space analysis of transport system using different mapping methods | |
Franken et al. | Rebuilding the cadastral map of The Netherlands, the artificial intelligence solution | |
US20170323033A1 (en) | Flow pattern regular expression creating method, regular expression creating apparatus, and computer-executable program | |
Zhou et al. | Move and remove: Multi-task learning for building simplification in vector maps with a graph convolutional neural network | |
Wang et al. | Computational methods and GIS applications in social science | |
JP5253675B2 (ja) | 文字列配置装置、文字列配置候補決定方法、及び文字列配置候補決定用プログラム | |
Sun et al. | DriveSceneGen: Generating Diverse and Realistic Driving Scenarios from Scratch | |
Peng et al. | Complexity-based matching between image resolution and map scale for multiscale image-map generation | |
Vieth | Point cloud classification and segmentation of catenary systems | |
CN116258701A (zh) | 基于hrocr算法的耕地变化识别方法 | |
WU et al. | Overview of Research Progress and Reflections in Intelligent Map Generalization | |
CN112379692B (zh) | 无人机航线的确定方法、装置、设备及存储介质 | |
Zhou et al. | 3d lane detection from front or surround-view using joint-modeling & matching | |
Kolibarov et al. | Roof Segmentation Towards Digital Twin Generation in LoD2+ Using Deep Learning | |
Bose et al. | Boundary labeling for rectangular diagrams | |
Wang et al. | NLA-GCL-Net: semantic segmentation of large-scale surveying point clouds based on neighborhood label aggregation (NLA) and global context learning (GCL) | |
Koshel | Algorithm for topologically correct gridding of contour data | |
Kuspekov | Optimization Geometric Models of Transport Network Tracing Used in City Planning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10860566 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012547598 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10860566 Country of ref document: EP Kind code of ref document: A1 |