throbber
(12) United States Patent
`Khavakh et al.
`
`USOO619231.4B1
`(10) Patent No.:
`US 6, 192,314 B1
`(45) Date of Patent:
`Feb. 20, 2001
`
`(54) METHOD AND SYSTEM FOR ROUTE
`CALCULATION IN A NAVIGATION
`APPLICATION
`
`i.
`-
`(75) Inventors: S5 Shyba,. William
`Unough, enten; leg
`Voloshin, Deerfield; Yaoguang Wang,
`Rosemont, all of IL (US)
`(73) Assignee: Navigation Technologies Corp.,
`Rosemont, IL (US)
`Under 35 U.S.C. 154(b), the term of this
`patent shall be extended for 0 days.
`
`(*) Notice:
`
`21) Appl. No.: 09/047,698
`(21) Appl. No.: 09/047,
`(22) Filed:
`Mar. 25, 1998
`7
`(51) Int. Cl." ..................................................... GO1C 21/00
`(52) U.S. Cl. .............................................................. 701/209
`(58) Field of Search ..................................... 701/209, 202,
`701/208
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`2/1986 Tachi et al. .......................... 364/444
`4,570.227
`8/1988 Itoh et al. ...
`. 364/449
`4,763,270
`11/1988 Ueno et al. .
`. 364/449
`4,782,447
`4,794,528 * 12/1988 Hirose et al. ..
`707/101
`4,796,189
`1/1989 Nakayama et al.
`. 364/449
`4,812,990
`3/1989 Adams et al. ....................... 701/202
`4,926,336
`5/1990 Yamada ................................ 364/444
`4,937,753
`6/1990 Yamada ...
`. 364/449
`5,031,104
`7/1991 Ikeda et al. ....
`. 364/449
`5,041,983
`8/1991 Nakahara et al. .
`. 364/449
`5,103,400
`4/1992 Yamada et al.
`. 364/444
`5,184,303
`2/1993 Link ............
`. 364/449
`5,187,667
`2/1993 Short .................................... 701/202
`5,204.817
`4/1993 Yoshida ................................ 364/449
`5,262,775
`11/1993 Tamai et al.
`340/995
`5,272.638
`12/1993 Martin et al. ........................ 364/444
`5,291,412
`3/1994 Tamai et al. ......................... 364/449
`5,291,413
`3/1994 Tamai et al.
`. 364/449
`5,291,414
`3/1994 Tamai et al.
`. 364/449
`5,303,159
`4/1994 Tamai et al.
`. 364/449
`
`5,311,434
`5,369,588
`5,371,678
`5,410,485
`5,428,545
`5,442,349
`5,459,667
`5,467,276
`5,475,387
`5,502,640
`
`5/1994 Tamai ................................... 364/449
`11/1994 Hayami et al.
`... 364/449
`12/1994 Nomura - - - -
`... 364/444
`4/1995 Ichikawa ......
`... 364/444
`6/1995 Maegawa et al.
`... 364/444
`8/1995 Inoue et al. .......................... 340/995
`10/1995 Odagaki et al. ..................... 364/444
`11/1995 Tsuyuki ........
`... 364/449
`12/1995 Matsumoto .......................... 340/990
`3/1996 Yagyu et al. ........................ 364/443
`(List continued on next page.)
`Primary Examiner Gregory C. Issing
`(74) Attorney, Agent, or Firm-Frank J. Kozak; Lawrence
`M. Kaplan
`(57)
`
`ABSTRACT
`
`A program and method for route calculation for use with a
`navigation System and used with a map database that rep
`resents a road network in a geographic region. A route
`calculation program is adapted to find at least one Solution
`route between a first location on a road network and a Second
`location on the road network. The route calculation program
`includes a first Search tree associated with the first location
`and a Second Search tree associated with the Second location.
`Each Search tree is adapted to hold gates. Each of the gates
`represents a physical position on the road network and a
`direction from the position to another location along a path
`on the road network. The route calculation program also
`includes at least one priority queue associated with one of
`the Search trees. The priority queue assigns a priority to one
`of the gates in the associated Search tree based upon an
`evaluation using a Search algorithm. The gate identified as
`having a higher priority than any other gate in its respective
`Search tree is expanded to determine one or more Successor
`gates thereof. Each of these Successor gates So formed is
`compared to the gates in the other Search tree. The process
`of growing at least one of the Search trees by expanding the
`gate in the Search tree that has a higher priority than any
`other gate in the Search tree is continued until a gate in one
`Search tree corresponds to at least one gate in the other
`Search tree.
`
`18 Claims, 13 Drawing Sheets
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`represented by
`"PORTAL"
`
`represented by
`SEGSMENENTY
`W
`represented by
`\s. < 2.
`"PORTAL"
`
`represented by
`NODENTY
`
`SEED \, 'SEED w
`GATE"
`GATE GATE"
`-
`
`SEED
`
`represented by
`SEGMNTENTITY
`
`ARKING
`GARAGE
`
`represented by
`"WAYOINT"
`
`
`
`
`
`represented by
`"PORTAL
`
`Apple Exhibit 1010
`Page 1 of 35
`
`

`

`US 6,192,314 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`4/1996 Nobe et al. .......... 364/424.05
`4/1996 Kanki ................................ 364/449
`4/1996 Smith, Jr.
`... 364/444
`4/1996 Fujita et al.
`... 364/449
`
`5/1996 Seda ............
`
`... 364/444
`
`2- - -2 4 -
`
`9/1996 Nakayama et al. ............. 364/424.02
`5,557.522
`9/1996 Ito et al. .....
`... 340/995
`5,559,511
`3/1997 Tamai .......
`... 364/449.3
`5,608,635
`3/1997 Moroto et al. .................... 364/449.3
`5,612,881
`6/1997 Nishimura et al. .............. 364/449 B
`5,638,280
`5,938,720 * 8/1999 Tamai
`701/209
`
`
`
`1
`
`- - - -
`
`a stillwk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
`
`... 364/449
`5/1996 Matsumoto .
`8/1996 Fujii et al. ........................... 340/995
`
`* cited by examiner
`
`5,506.774
`5,506.779
`5,508930
`5,513,110
`
`5,519,619
`
`5,521,826
`5,550,538
`
`Apple Exhibit 1010
`Page 2 of 35
`
`

`

`U.S. Patent
`
`US 6, 192,314 B1
`
`
`
`ZZ AVTCHSIC]
`
`5? SHEXVEdS
`
`Apple Exhibit 1010
`Page 3 of 35
`
`

`

`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 2 of 13
`
`US 6,192,314 B1
`
`
`
`|----
`
`//
`
`Apple Exhibit 1010
`Page 4 of 35
`
`

`

`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 3 of 13
`
`US 6,192,314 B1
`
`
`
`GEOGRAPHICDATABASE 30
`
`SEGMENT
`
`NODE
`
`LAYER 1
`
`SEGMENT
`
`NODE
`
`LAYERO
`
`SEGMENT
`
`NODE
`
`FIG. 3
`
`Apple Exhibit 1010
`Page 5 of 35
`
`

`

`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 4 of 13
`
`US 6,192,314 B1
`
`
`
`POSITIONING
`SYSTEM 14
`
`NAVGATION
`PROGRAM 18
`
`ROUTE
`GUIDANCE
`TOOL-91
`
`S59DING
`
`NAV. POS.
`OBJECTS 56
`
`NAVIGATION
`APPLICATION 47
`
`ROUTE CALCULATION
`TOOL 40
`
`wront.
`
`WAYPOINT
`OBJECTS 100
`
`ROUTE
`OBJECT
`(INPUT)
`72
`--a
`
`ROUTE
`OBJECT
`(OUTPUT)
`60
`
`TIME
`OBJECT
`
`69
`
`CONFIG
`OBJECT
`64
`
`VEHICLE
`OBJECT
`68
`
`Apple Exhibit 1010
`Page 6 of 35
`
`

`

`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet S of 13
`
`US 6,192,314 B1
`
`CONFIGURATION
`OBJECT 64
`parameters 64(1)
`
`parameters 64(n)
`
`TIME OBJECT 69
`START TIME 69(1)
`
`other 69(n)
`
`FIG. 8
`
`
`
`ROUTE OBJECT 60
`
`LIST OF
`SEGMENTS
`60(1)
`SEG
`
`LIST 60(2) OF WAYPOINT
`DATA STRUCTURES
`
`WAYPOINT 400
`
`SEG
`
`WAYPOINT 400
`
`WAYPOINT 400
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`VEHICLE OBJECT 68
`TYPE 68(1)
`
`HEIGHT 68(2)
`
`WEIGHT 68(3
`
`LENGTH 68(4
`
`NO OF AXLES 685
`
`NO. OF PEOPL
`E 68(6
`
`OTHER 68(n)
`
`F.G. 6
`
`FIG. 7
`
`START DATE/TIME 60(3)
`
`RT. GENERATION
`DATE/TIME 6O(4
`(4)
`
`EHICLE OBJ. 68
`
`GEODB VER. 60(5)
`S-FLAG 60(6)
`
`OTHER 60(n)
`
`Apple Exhibit 1010
`Page 7 of 35
`
`

`

`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 6 of 13
`
`US 6,192,314 B1
`
`FIG. 9
`NAVIGATION POSITION
`OBJECT 56
`
`
`
`
`
`
`
`LOCUS 92
`
`GEOGRAPHIC
`POSITION 93
`
`OTHER 56(n)
`
`FIG 10
`LOCUS 92
`SEGMENT 94
`
`SPOT 95
`
`SIDE 96
`
`FIG 11
`
`WAYPOINT OBJECT 100
`POSITION 102
`DESCRIPTION104
`
`DELAY 1 12
`
`
`
`PORTAL 106 6
`
`LOCUS 92
`
`DIRECTIONS 107
`
`ENFORCE SIDE FLAG 109
`
`PORTAL 106
`
`LOCUS 92
`
`
`
`DIRECTIONS 107
`
`ENFORCE SIDE FLAG 109
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Apple Exhibit 1010
`Page 8 of 35
`
`

`

`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 7 of 13
`
`US 6,192,314 BI
`
`
`
`ALILNALNSAWS3S
`
`Aqpejueseidal
`
`ALINCONqpejusseldel«WLYOd,«WLYOd,,—2>>AqpejusseidasAqpajuesaida
`
`
`
`ALILNALNAWS3AS
`
`Aqpajuesaidas
`
`
`
`qaajas,44s:gqaas.
`
`
`LDLO12/
`
`LV«LVSWALVD
`
`|(aouel}Ua)
`
`ONIMYVd
`
`dSVeVS
`
`(a0ues}Uua)
`
`élOla
`
`Aqpeyuesaidas
`
`«LNIOdAVM,
`
`«SILV9S,
`
`Aqpajueseaidas
`
`«WLYOd.
`
`Apple Exhibit 1010
`Page 9 of 35
`
`Apple Exhibit 1010
`Page 9 of 35
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 8 of 13
`
`US 6,192,314 BI
`
`LNIOGAWM
`
`1oargo
`
`
`
`OOF(LS3q)
`
`
`
`CISSQ)0S¢SYNLONYLS
`
`‘fdODIVOALY
`
`
`
`VIVdLINIOdAVM
`
`
`
`(NIDTHO)OSPANNLONYLS
`
`
`
`VLVdLNIOdAVM
`
`EO“OTWO
`
`
`
`(NOPELOarao
`
`
`
`(INO)OFTLoarao
`
`dauHOYVAS
`
`ALIMOdd
`
`anand
`
`(LINO)OST
`
`“ALY
`
`
`
`0SLOArONOILV1INOV93LNOY
`
`Apple Exhibit 1010
`Page 10 of 35
`
`Apple Exhibit 1010
`Page 10 of 35
`
`

`

`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 9 of 13
`
`US 6,192,314 BI
`
`
`(NDOPELoargo
`(NDOSFANAND
`
`JaylHOYVAS
`ALIMO!Yd
`PelSALVO
`
`velALVOD
`
`
`
`
`
`WLIVGLNIOdAVMdO‘O1V9“SLY
`
`
`
`CISSQ)0SPSYNLONYLS
`
`
`
`0SLOAraONOILV1ND1V93LNOY
`
`
`
`“ALY
`
`VlOla
`
`
`
`VIVdLNIOdAVMEO‘O1V9
`
`
`
`(NISTHO)OSPAUNLONYLS
`
`
`
`
`
`(INO)0SFANANDALIMOId
`
`belLVSretALW9
`velS1LV
`
`velALV
`
`(inO)OFTLoargdo
`
`dau.HOYXVsAS
`
`LAO)&rb
`
`SNOO4
`
`
`
`relSLWOM-PelALY
`
`Apple Exhibit 1010
`Page 11 of 35
`
`Apple Exhibit 1010
`Page 11 of 35
`
`
`
`

`

`US 6,192,314 B1
`
`OG Loarao Noi LwT no Two = Lnow
`
`U.S. Patent
`
`
`
`
`
`
`
`(NIJ?GT EnEnoOT\/O ELTON
`
`Apple Exhibit 1010
`Page 12 of 35
`
`

`

`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 11 of 13
`
`US 6,192,314 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 16
`ROUTE OBJECT WAYPOINT
`DATA STRUCTURE 400
`
`DESCRIPTION 404
`POSITION (LAT, LONG) 402
`2 LOC (ENTRANCE/EXIT) 422
`
`DSTANCE 41
`
`TIME 41
`
`TIME 416
`
`T 414
`C O S 4.
`
`INDEX TO
`SEGMENT LIST 424
`
`TYPE (ORIGIN/
`DESTINATION/
`INTERMEDIATE) 420
`
`GATE 124
`ASSOCATED NODE 125
`
`TARGET NODE 127
`
`PREDECESSOR 131
`
`SEGMENT 12
`
`TIME 13
`
`COST 13
`
`DISTANCE 13
`
`FIG. 17
`
`FIG. 20
`ROUTE CALCULATION OBJECT
`WAYPOINT DATASTRUCTURE 450
`
`DESCRIPTION 404
`
`POSITION (LAT, LONG) 402
`2 LOC (ENTRANCE/EXIT) 422
`
`PORTAL 106
`
`LOCUS
`
`DIRECTIONS 107
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ENFORCE SIDE FLAG 1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`PORTAL 106
`
`LOCUS
`
`DIRECTIONS 107
`
`ENFORCE SIDE FLAG 109
`
`DELAY 421
`
`COST 414
`
`416 6
`TIME 41
`
`418
`DISTANCE 41
`
`
`
`
`
`
`
`Apple Exhibit 1010
`Page 13 of 35
`
`

`

`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 12 of 13
`
`US 6,192,314 B1
`
`
`
`SEED GATE 108
`
`POSITION 125
`LOCUS FROM
`PORTAL
`
`TARGET NODE 127
`
`SEGMENT 129
`SEGMENT FROM
`LOCUS
`
`LIST OF SEGMENTS 50
`
`
`
`FIG. 18
`
`FIG. 19
`
`SEGMENT
`
`Apple Exhibit 1010
`Page 14 of 35
`
`

`

`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 13 of 13
`
`US 6,192,314 BI
`
`leOld
`
`QS31N3S3ed3y
`
`NISALVSAd—S
`
`aad
`
`QNNOGNI~~
`
`~
`
`eu
`
`HLOIM/ONINSNOO4/;
`/HLOIMONITY
`
`}I
`
`—ft|cui
`{PT
`!SSMLNI
`/SNOOJOL|1S3S010!
`
`1“daNsSSNdO4
`
`bu
`
`LNIOGAVM
`
`LZ
`
`YANNI
`
`-_——
`
`||
`
`dV9SNOOSA
`
`Snood
`
`Apple Exhibit 1010
`Page 15 of 35
`
`Apple Exhibit 1010
`Page 15 of 35
`
`
`
`
`
`

`

`1
`METHOD AND SYSTEM FOR ROUTE
`CALCULATION IN ANAVIGATION
`APPLICATION
`
`BACKGROUND OF THE INVENTION
`The present invention relates to a System and method for
`route calculation in a navigation application program.
`Computer-based navigation Systems are able to provide
`end-users, Such as vehicle drivers and as well as others, with
`various navigating functions and features. For example,
`Some navigation Systems are able to determine an optimum
`route to travel by roads between locations in a geographic
`region. Using input from the end-user, and optionally from
`equipment that can determine the end-user's physical loca
`tion (Such as a GPS System), a navigation System can
`examine various routes between two locations to determine
`an optimum route to travel from a starting location to a
`destination location in the geographic region. The naviga
`tion System may then provide the end-user with information
`about the optimum route in the form of instructions that
`identify the maneuverS required to be taken by the end-user
`to travel from the Starting location to the destination loca
`tion. The navigation System may be located in an automobile
`and the instructions may take the form of audio instructions
`that are provided as the end-user is driving the route. Some
`navigation Systems are able to Show detailed maps on
`computer displays that outline routes to destinations, the
`types of maneuvers to be taken at various locations along the
`routes, locations of certain types of features, and So on.
`In order to provide these and other navigating functions,
`present navigation Systems include navigation application
`Software programs and use one or more detailed databases
`that include data which represent physical features in geo
`graphic regions. The detailed database(s) includes data
`which represent the road network in a region, including the
`roads and interSections in the region and information about
`the roads and interSections, Such as turn restrictions at
`interSections, Speed limits along the roads, Street names of
`the various roads, address ranges along the various roads,
`and So on. Further, the data may include information about
`points-of-interest. Presently, the collection of Such geo
`graphic data and the provision of Such data in a computer
`usable database format are provided by Navigation Tech
`nologies of Rosemont, Ill.
`Present navigation application programs and navigation
`Systems are able to provide many advantages and many
`useful features. However, there continues to be a need for
`improvement. One area in which there is need for improve
`ment relates to providing the end-user with better and more
`detailed navigation instructions at an initial Stage of a route.
`Another area in which there is need for improvement relates
`to providing the end-user with better instructions as the
`desired destination is approached. Still another area in which
`navigation Systems can be improved relates to providing the
`end-user with better instructions as to how to get back on a
`route to a desired destination when the end-user either
`accidentally or deliberately deviates from a previously cal
`culated route. Still another area in which there is a need for
`improvement relates to handling of intermediate stops along
`a route. For example, an end-user will often want to make
`one or more intermediate Stops between a starting location
`and a final destination. Thus, there is a need for a navigation
`System application that can not only calculate a route
`between two locations, but also that can calculate quickly
`and effectively a route that includes Stops at one or more
`intermediate locations along the way between a starting
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,192,314 B1
`
`2
`location and a destination. A further area in which there is
`need for improvement relates to provision of a universal
`route calculation module or tool that can be readily used in
`a variety of different software and hardware environments
`without the need for extensive revisions and customizations
`to the tool.
`Accordingly, it is an objective to provide a navigation
`application that provides improved route calculation fea
`tures to an end-user.
`
`SUMMARY OF THE INVENTION
`To address the above concerns, according to one aspect of
`the present invention, there is provided a program and
`method for a route calculation tool for use with a navigation
`System and used with a map database. The route calculation
`tool is adapted to find at least one Solution route between a
`first location on a road network in a geographic region and
`a Second location on the road network in the geographic
`region. The route calculation tool includes a first Search tree
`asSociated with the first location and a Second Search tree
`asSociated with the Second location. Each of the Search trees
`is adapted to hold gates. Each of the gates represents a
`physical position on the road network and a direction from
`the position to another location along a path on the repre
`Sented road network. The route calculation tool also includes
`a priority queue associated with each of the Search trees.
`Starting with one of the Search trees, the priority queue
`assigns a priority to each of the gates based upon an
`evaluation by a Search algorithm. A Search engine expands
`the gate that has the highest priority to determine one or
`more Successor gates thereof and compares the one or more
`Successor gates So formed to one or more gates in the other
`Search tree. The process of growing either or both Search
`trees by expanding the gate that has the highest priority in its
`respective Search tree is continued until a gate in the Search
`tree corresponds to at least one of the one or more gates in
`the other Search tree.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a block diagram of an exemplary navigation
`System.
`FIG. 2 is a map illustrating physical geographic features
`in a portion of a geographic region represented by the
`geographic database in FIG. 1.
`FIG. 3 is a block diagram illustrating the organization of
`the geographic database in FIG. 1.
`FIG. 4 is a block diagram showing components of the
`navigation application of FIG. 1.
`FIG. 5 is a diagram illustrating the components of the
`configuration object of FIG. 4.
`FIG. 6 is a diagram illustrating the components of the
`vehicle object of FIG. 4.
`FIG. 7 is a diagram illustrating the components of the
`output route object of FIG. 4.
`FIG. 8 is a diagram illustrating the components of the time
`object of FIG. 4.
`FIG. 9 is a diagram illustrating the components of the
`navigation position object of FIG. 4.
`FIG. 10 is a diagram illustrating the components of the
`locus structure of FIG. 9.
`FIG. 11 is a diagram illustrating the components of the
`waypoint object of FIG. 4.
`FIG. 12 is a diagram illustrating the geographic features
`represented by the waypoint object of FIG. 11.
`
`Apple Exhibit 1010
`Page 16 of 35
`
`

`

`3
`FIG. 13 is a diagram of the components in the route
`calculation object of FIG. 4 in one Stage of operation.
`FIG. 14 is a diagram of the components in the route
`calculation object of FIG. 4 in another Stage of operation.
`FIG. 15 is a diagram of the components in the route
`calculation object of FIG. 4 in yet another Stage of operation.
`FIG. 16 is a diagram illustrating the components of the
`waypoint structure which is stored in the route object of FIG.
`7.
`FIG. 17 is a diagram illustrating the components of the
`gate data structure of FIGS. 13-15.
`FIG. 18 is a diagram illustrating the components of the
`gate data Structure of FIGS. 17 when used as a Seed gate.
`FIG. 19 is a diagram illustrating the list of solution routes
`in FIG. 15.
`FIG. 20 is a diagram illustrating the components of the
`Waypoint data structure which is used in route calculation
`object of FIGS. 13–15.
`FIG. 21 is a map illustrating the concepts associated with
`a rank Suppression feature according to one alternative
`embodiment of the route calculation program.
`DETAILED DESCRIPTION OF THE
`PRESENTLY PREFERRED EMBODIMENTS
`I. Navigation System Overview
`Referring to FIG. 1, there is a block diagram of a
`navigation system 10. The navigation system 10 is installed
`in a vehicle 11, Such as a car or truck, although in alternative
`embodiments, the navigation System 10 may be located
`outside of a vehicle or may be implemented in various other
`platforms. For example, the navigation System may be
`implemented as a hand-held portable system, or may be
`implemented on a personal computer (Such as a desktop or
`portable notebook) or a personal digital assistant. The navi
`gation System may also be implemented in a networked
`environment or on a client-Server platform.
`Referring to the embodiment illustrated in FIG. 1, the
`navigation System 10 is a combination of hardware and
`Software components. In one embodiment, the navigation
`System 10 includes a processor 12, a drive 14 connected to
`the processor 12, and a non-volatile memory Storage device
`16 for Storing a navigation Software program 18, as well as
`other information, Such as configuration parameters 19. The
`processor 12 may be of any type used in navigation Systems,
`Such as 32-bit processors using a flat address Space, Such as
`a Hitachi SHI, an Intel 80386, an Intel 960, a Motorola
`68020 (or other processors having Similar or greater address
`ing space). Processor types other than these, as well as
`processors that may be developed in the future, are also
`Suitable.
`The navigation System 10 may also include a positioning
`system 24. The positioning system 24 may utilize GPS-type
`technology, a dead reckoning-type System, or combinations
`of these, or other Systems, all of which are known in the art.
`The positioning System 24 may include Suitable Sensing
`devices 25 that measure the Speed, direction, and So on, of
`the vehicle. The positioning System 24 may also include
`appropriate wireleSS communication technology to obtain a
`GPS signal, in a manner which is known in the art. The
`positioning System 24 outputs a signal 26 to the processor
`12. The signal 26 may be used by the navigation software
`program 18 that is run on the processor 12 to determine the
`location, direction, Speed, etc., of the navigation System 10.
`The navigation System 10 also includes a user interface
`31. The user interface 31 includes appropriate equipment
`that allows the end-user to input information into the navi
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,192,314 B1
`
`4
`gation System. This input information may include a request
`to use the navigation features of the navigation System. For
`example, the input information may include a request for a
`route to a desired destination. The input information may
`also include other kinds of information, Such as configura
`tion information or vehicle information, as explained further
`below. The equipment used to input information into the
`navigation System may include a keypad, a keyboard, a
`microphone, etc., as well as appropriate Software, Such as a
`Voice recognition program. The user interface 31 also
`includes Suitable equipment that provides information back
`to the end-user. This equipment may include a display 27,
`Speakers 29, or other means.
`The navigation system 10 uses a map database 30 stored
`on a storage medium 32. The Storage medium 32 is installed
`in the drive 14 so that the map database 30 can be read and
`used by the navigation System. The Storage medium 32 may
`be removable and replaceable So that a storage medium with
`an appropriate map database for the geographic region in
`which the vehicle is traveling can be used. In addition, the
`Storage medium 32 may be replaceable So that the map
`database 32 on it can be updated easily.
`In one embodiment, the storage medium 32 is a CD-ROM
`disc. In an alternative embodiment, the Storage medium 32
`may be a PCMCIA card in which case the drive 14 would be
`substituted with a PCMCIA slot. Various other storage
`media may be used, including fixed or hard disks, DVD
`(digital video disks) or other currently available storage
`media, as well as Storage media that may be developed in the
`future.
`The map database 30 contains information about the
`roadway network in the geographic region. FIG. 2 shows a
`map illustrating physical geographic features in a portion of
`a geographic region. FIG. 3 is a block diagram illustrating
`the data entities that represent the geographic features in
`FIG. 2. In one embodiment, the map database 30 includes
`node data and Segment data. Node data represent physical
`locations in the geographic region (Such as roadway inter
`Sections and other positions) and segment data represent
`portions of roadways between the physical locations repre
`Sented by nodes. Each road Segment in the geographic
`region is represented by a road segment data entity (i.e., a
`record) in the map database 30. Each road segment data
`record in the map database has two nodes which represent
`the coordinate positions at each end of the road Segment
`represented by the road Segment data record. The data
`records include information that can be used during route
`calculation, Such as turn restrictions, vehicle access,
`restricted driving conditions, etc. (The terms "nodes' and
`"Segments' represent only one terminology for describing
`these physical geographic features and other terminology for
`these feature is intended to be encompassed within the Scope
`of these concepts.)
`In one embodiment of the map database 30, the roadways
`are classified by rank in accordance with the importance or
`Significance of the roadway for vehicle travel. For example,
`roadways of rank “0” may be alleyways and side streets,
`roadways of rank “1” may be primary city Streets, roadways
`of rank "2" may be highways, and So on. Each road Segment
`data record in the map database 30 also identifies the rank of
`the corresponding portion of the roadway that it represents.
`As illustrated in FIG. 3, the map database 30 for a geo
`graphical area may be Stored in layers. The lowest layer
`(“0”) contains records that represent roadways of all ranks,
`the next higher layer (“1”) contains roadways of rank “1”
`and higher, the next higher layer ("2") contains roadways of
`rank "2" and higher, and So on. The road Segment records
`
`Apple Exhibit 1010
`Page 17 of 35
`
`

`

`S
`may include additional information about the represented
`road Segments, Such as the Speeds along the represented road
`Segments, turn restrictions, weight restrictions, the names of
`the roads that the Segments are parts of, address ranges along
`the road Segments, and So on. In an alternative embodiment,
`the geographic database 30 may include more than one rank
`of road in a single layer. The map database 30 may include
`additional information as well.
`Referring again to FIG. 1, the navigation application
`Software program 18 is loaded from the non-volatile
`memory 16 into a RAM 20 associated with the processor 12
`in order to operate the navigation System. The navigation
`system 10 uses the map database 30 stored on the storage
`medium 32, possibly in conjunction with the output 26 from
`the positioning System 24, to provide various navigation
`features and functions. The navigation Software program 18
`may include separate applications (or Subprograms) that
`provide these various navigation features and functions.
`These functions and features may include route calculation,
`map display, vehicle positioning (e.g., map matching), route
`guidance (wherein detailed directions are provided for
`reaching a desired destination), destination resolution
`capabilities, and other functions.
`II. The Route Calculation Tool Program
`A. Overview
`Referring to FIG. 4, in the navigation Software program
`18 the route calculation features are provided by a route
`calculation tool 40. The route calculation tool 40 is a
`computer program that may be used as part of the navigation
`Software program 18. The route calculation tool 40 deter
`mines routes between Specified locations. If used with a
`navigation Software program 18 in a navigation System
`installed in a vehicle, the route calculation tool 40 deter
`mines routes for the vehicle to travel. The route calculation
`tool 40 may be used in combination with the map database
`30 and other programs or Subprograms within the navigation
`program 18, or even with other programs outside the navi
`gation program 18 or navigation System 10. Specifically, in
`the navigation Software program 18, the route calculation
`tool 40 interfaces with a navigation application 47. The
`navigation application 47 may include appropriate programs
`that provide the remainder of the navigating functions
`provided by the navigation System 10, Such as route
`guidance, vehicle positioning, the user interface, and So on.
`Alternatively, the navigation application 47 may operate as
`a manager that uses other tool programs, Such as a geo
`coding tool 90, a route guidance tool 91, a map display tool,
`and So on, to implement one or more of the other various
`navigation functions.
`In a preferred embodiment, the route calculation tool 40
`is provided as a module that is relatively portable and that
`can be incorporated into different kinds of systems. The
`route calculation tool may be compiled into an executable
`module with the navigation application or may be used as a
`Standalone program. In a preferred embodiment, the route
`calculation tool 40 employs an object oriented approach to
`both its programming, its use of data, and its relationship to
`the navigation application 47. Each object that forms the
`route calculation tool receives input data and generates
`output data according to a predefined function and may
`invoke methods on other objects. In one present
`embodiment, each object has its own private memory which
`is opaque to other objects. In the disclosed embodiment, an
`object may be used to convey data from one object to
`another object or may be used to transform data received as
`input. The route calculation tool 40 is written in the C
`programming language although in alternative embodiments
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,192,314 B1
`
`6
`other programming languages may be used, Such as C++ or
`Java. In general, programming languages that Support object
`oriented programming are preferred.
`B. Objects input to and output from the Route Calculation
`Tool Program
`In one embodiment, the route calculation tool 40 com
`prises a route calculation object 50. This route calculation
`object 50 receives as input as least two waypoint objects 100
`and provides an output in the form of a route object 60. In
`a present embodiment, the route calculation object 50 may
`also use as input a configuration object 64, a vehicle object
`68, a time object 69, and an input route object 72. (There
`may be additional objects in addition to these. For example,
`there may be an object that defines Specific application
`defined callbacks, i.e., wherein the application may want
`partial Solutions, as described below.)
`(1). The configuration object
`Referring to FIG. 5, the configuration object 64 is a data
`structure that holds parameters 64(1) . . . 64(n), which are
`used to control the route calculation object 50. Some or all
`of these parameters may be configurable by the end-user.
`Some of these parameters may include items, Such as
`weighting factors, that may be used in route calculation. For
`example, these parameters may include "avoid highways,'
`"avoid U-turns,” “determine shortest route,” “determine
`quickest route,” etc. These parameters may also include the
`maximum layer of map data (as represented in FIG. 3) at
`which route Searching is to be performed and whether the
`route Searching Should use logical or physical Suppression to
`enforce the maximum layer. Some configurable parameters
`in the configuration object 64 may be selected by the
`navigation System manufacturer or by a Service technician
`and thus may not be configurable by the end-user. The data
`included in the configuration object 64 is Stored in a
`re-writable and non-volatile memory of the navigation
`system, such as the non-volatile memory 16 (in FIG. 1).
`(2). The vehicle object
`Referring to FIG. 6, the vehicle object 68 is a data
`structure that includes data 68(1) . . . 68(n) that provide the
`characteristics of the vehicle for which the route will be
`calculated by the route calculation tool 40. Under some
`circumstances, characteristics of the vehicle may affect
`generation of the route. For example, the vehicle object 68
`may include data that indicates that the vehicle is a truck
`having a given weight and number of axles. In Such a case,
`the route Searching tool 40 ensures that the calculated route
`include only roadways with weight limits that allow Such a
`vehicle. In another example, the vehicle object 68 may
`include information indicating that the vehicle is a passenger
`vehicle having more than one perSon on board. The route
`Searching tool 40 can then include lanes restricted to mul
`tiple passenger vehicles. The data included in the vehicle
`object 68 is stored in a re-writable and non-volatile memory
`of the navigation System, Such as the non-volatile memory
`16 (in FIG. 1). Some or all of the data in the vehicle object
`68 may be configurable by the end-user. Alternatively, some
`or all may be determined by the navigation System manu
`facturer or a technician.
`(3). The (output) route object
`Referring to FIG. 7, the output route object 60 is illus
`trated. The route object 60 is a data structure generated by
`the route calculation object 50. The output route object 60
`includes a Single route determined by the route calculation
`object 50. The route is comprised of a list 60(1) of road
`Segment data records (Such as the segment data records
`described in connection with FIG. 3) that represent portions
`of roadways that together comprise the calculated route. The
`
`Apple Exhibit 1010
`Page 18 of 35
`
`

`

`US 6,192,314 B1
`
`15
`
`25
`
`35
`
`40
`
`7
`route object 60 also contains waypoint information 60(2)
`describing the origin, destination, and intermediate way
`points and indicating where they are located relat

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket