`US 6,674,849 B1
`(10) Patent No.:
`Jan. 6, 2004
`(45) Date of Patent:
`Froeberg
`
`
`US006674849B1
`
`2/2000 Fultz scessewrswweneerse 701/200
`6,021,371 A
`5/2000 Suder et al.
`..cccesee 379/88.19
`6,067,349 A *
`6,459,782 B1 * 10/2002 Bedrosian et al.
`...... 379/201.08
`6,487,495 Bl * 11/2002 Gale etal. ...... 701/209
`* cited by
`examiner
`,
`Primary Examiner—Bing Bui
`(74) Attorney, Agent, or Firm—Menlo Patent Agency LLC
`@7)
`ABSTRACT
`Asystemproviding a map and driving directions to a user of
`a user telephone for a remote location associated with a
`remote telephone number. The system includes the user
`(21) Appl. No.: 09/627,547
`telephone and a server connected through a telephone sys-
`“44.
`tem. The user telephone includes a location number desig-
`Filed:
`(22)
`Jul. 28; 2000
`_nator for designating a remote telephone number and an
`(51) Unt, CI? access cccssstecsssteceseseeersneessseeesses HO4M 3/42
`object decoder for decoding software objects such as a maj
`5
`:
`s
`J
`s
`J
`Pp
`(52) US. Che eee 379/201.06; 379/201.07;
`object having map
`information for the area about the loca-
`‘
`:
`,
`map
`0]
`g
`!
`a
`379/201.08; 701/201; 701/202
`ion of a remote address associated with the remote tele-
`(58) Field of Search oo... 379/142.01, 142.04,
`phone numberand a driving directions object having driving
`379/142.06, 201.06, 201.07, 201 as. 207 r.
`907.15, 355.02, 355.04: 701/201, 202__directions information fortraveling to the remote location.
`,
`,
`,
`,
`The server includes a map object generator for generating
`References Cited
`the map object from the remote telephone number and a
`driving directions object generator for generating the driving
`directions object from the remote telephone numberand user
`location determination information for a local address, a
`local telephone number, or geodetic coordinates provided b
`P
`,
`Ore
`P
`y
`a geodetic location device in the user telephone.
`
`(54) TELEPHONE PROVIDING DIRECTIONS TO
`A LOCATION
`
`Inventor: Peter L. Froeberg, Cupertino, CA (US)
`(75)
`(73) Assignee: Trimble Navigation Limited,
`Sunnyvale, CA (US)
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`USS.C. 154(b) by 559 days.
`
`(56)
`
`U.S. PATENT DOCUMENTS
`701/202
`4,954,958 A *
`9/1990 Savage et al
`
`170.
`: oo =
`5,479,482 A
`wee 379/59
`12/1995 Grimes.........
`
`.......-eeeeee 379/58
`5,625,668 A
`4/1997 Loomis et al.
`.....
`ve 379/211
`5,727,057 A
`3/1998 Emery et al.
`9/1998 Froeberget al. «0.0... 701/117
`5,812,959 A
`
`
`USER
`
`
`
`TELEPHONE
`12
`
`
`
`26
`LOCATION
`
`NUMBER
`
`DESIGNATOR
`OPTIONAL
`
`GEODETIC
`
`LOCATION DEVICE
`
`
`OBJECT
`DECODER
`
`24
`
`15 Claims, 5 Drawing Sheets
`
`28
`
`
`
`
`
`
`
`SERVER
`14
`
`
`
`DRIVING
`
`DIRECTIONS
`OBJECT
`
`GENERATOR
`
`
`MAP
`
`OBJECT
`
`GENERATOR
`
`TELEPHONE
`SYSTEM
`
`16
`
`I||IL
`
`|
`
`||
`
`I---
`REMOTE
`
`TELEPHONE
`18
`
`10
`
`Google v. Mullen
`
`Google Exhibit 1051
`Google Exhibit 1051
`Google v. Mullen
`
`
`
`U.S. Patent
`
`Jan. 6, 2004
`
`Sheet 1 of 5
`
`US 6,674,849 BI
`
`vlYsaAYAS
`
`SNOILGSHIC
`
`LOArdo
`
`YOLVYANAD
`
`ONIAITHC
`
`8c
`
`YOLVYANAD
`
`LOArdo
`
`dv
`
`AINOHd]s131
`
`WALSAS
`
`ob
`
`INOHd]a13L
`
`Yasn
`
`SL
`
`i|||||
`
`ANOHds131
`
`ALOWS4
`
`Y3ado0o08d
`
`LOsrao
`
`NOILVOO1T
`
`YSasWnn
`
`YOLVNOISAC
`TWNOILdO
`
`OILAGOAD
`
`NOILVYOO71
`
`ADIAAG
`
`|‘bis
`
`OL
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jan. 6, 2004
`
`Sheet 2 of 5
`
`US 6,674,849 BI
`
`
`
`USER TELEPHONE
`RETRIEVES REMOTE
`TELEPHONE
`NUMBER FROM
`DATABASE
`
`36
`
`USER TELEPHONE
`RECEIVES REMOTE
`TELEPHONE CALL
`
`
`
`USER TELEPHONE
`IDENTIFIES REMOTE
`TELEPHONE
`NUMBER
`
`USER SELECTS
`MAP FUNCTION
`
`
`
`USER TELEPHONE
`
`
`TRANSMITS REMOTE
`TELEPHONE NUMBER
`
`TO SERVER
`
`SERVER CONVERTS
`REMOTE TELEPHONE
`NUMBER TO REMOTE
`
`STREET ADDRESS
`
`
`
`SERVER GEOCODES
`REMOTE STREET
`ADDRESS TO REMOTE
`
`
`GEODETIC LOCATION
`
`
`
`
`
`SERVER GENERATES
`
`MAP OBJECT FOR
`REMOTE GEODETIC
`
`LOCATION
`
`SERVER TRANSMITS
`MAP OBJECT TO
`USER TELEPHONE
`
`USER TELEPHONE
`DECODES MAP
`OBJECT
`
`USER TELEPHONE
`DISPLAYS MAP FOR
`REMOTE LOCATION
`
`Fig. 2
`
`32
`
`USER ENTERS
`REMOTE
`TELEPHONE
`
`NUMBER
`
`38
`
`34
`
`42
`
`44
`
`46
`
`48
`
`52
`
`54
`
`56
`
`58
`
`
`
`U.S. Patent
`
`Jan. 6, 2004
`
`Sheet 3 of 5
`
`US 6,674,849 B1
`
`
`
`
`
`
`USER TELEPHONE
`RETRIEVES REMOTE
`
`
`DATABASE
`
`
`36
`
`TELEPHONE NUMBER FROM
`
`USER TELEPHONE
`RECEIVES REMOTE
`TELEPHONE CALL
`
`USER TELEPHONE
`IDENTIFIES REMOTE
`TELEPHONE
`NUMBER
`
`32
`
`USER ENTERS
`REMOTE
`TELEPHONE
`NUMBER
`
`34
`
`32
`
`USER TELEPHONE
`DETERMINES USER
`GEODETIC LOCATION
`
`82
`
`USER SELECTS
`DRIVING DIRECTIONS
`FUNCTION
`
`72
`
`84
`
`USER ENTERS LOCAL
`STREET ADDRESS
`
`USER ENTERSFIXED
`LOCAL TELEPHONE
`NUMBER
`
`88
`
`74
`
`
`USER TELEPHONE TRANSMITS
`
`
`REMOTE TELEPHONE NUMBER
`AND USER LOCATION-DETERMINATION
`
`INFORMATION TO SERVER
`
`STREET NETWORK
`
`
`
`SERVER CONVERTS
`
`
`REMOTE TELEPHONE
`NUMBER TO REMOTE
`
`
`STREET ADDRESS
`
`
`
`
`
`
`SERVER GEOCODES
`REMOTE STREET
`ADDRESS TO REMOTE
`
`SEGMENT
`
`90
`
`
`
`
`
`
`
`SERVER CREATES
`ROUTE AND DRIVING
`
`
`DIRECTIONS
`BETWEEN USER
`
`AND REMOTE
`STREET SEGMENTS
`
`102
`
`SERVER TRANSMITS
`DRIVING DIRECTIONS
`OBJECT
`
`USER TELEPHONE
`DECODESDRIVING
`DIRECTIONS OBJECT
`
`112
`
`USER TELEPHONE
`DISPLAYS DRIVING
`DIRECTIONS
`
`Fig. 3
`
`
`
`U.S. Patent
`
`Jan. 6, 2004
`
`Sheet 4 of 5
`
`US 6,674,849 BI
`
`AYLNAYasn
`
`WVdS0dd
`
`
`
`YsadWNNNOILVOOT
`
`YOLVNSISAG
`
`
`
`YAlsILNAC!YST1VO
`
`cl|\Po
`
`oFWALSASANOHd3TAL
`
`
`
`
`
`AAILNOAX]AASVaVLVGYSadEWNNN
`
`ANOHd3sTALGAYOLS
`
`
`
`SANOHdA1SLYASN
`
`AYOWSAW
`
`
`
`SDIAAGTWNOILdO
`
`ANOHd3A1SL
`
`Y3asn
`
`Ndd
`
`AW1dS10
`
`YALLINSNVYL
`
`Y4asn
`
`YsAI034
`
`y3asn
`
`OILAqdOAD
`
`NOILVOO1
`
`AJDIAIG
`
`
`
`
`U.S. Patent
`
`Jan. 6, 2004
`
`Sheet 5 of 5
`
`US 6,674,849 BI
`
`pleSALLNOAXSLeYaAuaS
`
`(ard
`
`YOsss00ddWVeoOdd
`SecYOLVYANAD
`
`(4x4L4d5eLsSle -YaaWNNdsAldosY
`
`ASesaAsaYYSAdsS
`
`LAAYLS6éG —OlLAQOADYALLINSNVaL
`
`—
`LNAWSAS adadOQO0AD
` YOLVYANAD
`
`AYOWAWYOLVYANAD
`
`Y30d000389YaLYSAANOD
`
`LNSW93Sssadaqv
`
`ONIATYHO
`
`8cSec
`
`LOsrgo
`
`SNOILOAYIC
`
`Loardo
`
`YsaqdOONa
`
`02
`
`Zé
`
`
`
`LOArdoOdvW
`
`VL
`
`g‘bl
`
`VEC
`
`aYdaqdO9089
`
`YOLVYANAD
`
`aLNO’
`
`vee
`
`VaHuvdvi
`
`NdOYAAYAS
`
`YaAdsS
`
`YSAue$
`
`|
`
`3731)L |OFWALSAS)|__ANOHd
`
`
`
`
`
`fl
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US 6,674,849 Bl
`
`1
`TELEPHONE PROVIDING DIRECTIONS TO
`A LOCATION
`
`2
`in the art after having read the following detailed
`skill
`description of the preferred embodiments whichare illus-
`trated in the variousfigures.
`
`BACKGROUND OP THE INVENTION
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`1. Field of the Invention
`
`‘The invention relates generally to telephones and more
`particularly to a cellular telephone providing a map and
`driving directions for a remote location associated with a
`remote telephone number.
`2. Description of the Prior Art
`For three decades public call takers and dispatchers have
`had the capability known as automatic numberidentification
`(ANI) for identifying the telephone numberof a 911 caller.
`‘This capability is now available to the general public with a
`service known as caller ID.
`In addition to ANI, E911
`provides a capability known as automatic location identifi-
`cation (ALI) for translating the telephone number of the
`caller to a street address. It is the ANI/ALI capabilities that
`enable an E911 dispatcher to route emergency personnel to
`the caller without depending upon the accuracy of verbal
`information from the caller.
`
`In more recent times, a capability knownas geocoding has
`enabled E911 centers to convert a street address determined
`by ANI/ALI into a geodetic location, such as latitude and
`longitude, and to display a map of the local area about the
`street address to the dispatcher. The map can be important
`for public safety for removing ambiguity for locating street
`addresses and facilitating better dispatch to an emergency
`scene. ‘he most advanced E911installations have the capa-
`bility of tracking the mobile locations of emergency vehicles
`that are available or proceeding to the scene.
`However, these capabilities, with the exception of caller
`ID, are not available to a general public user of a cellular or
`fixed telephone. General users of telephones have a need for
`generating a map anddriving directions to a remote location
`associated with a remote telephone number.
`SUMMARY OF THE INVENTION
`
`It is therefore an object of the present invention to provide
`a system for providing a map and driving directions for a
`remote location associated with a remote telephone number
`designated with a user telephone.
`Briefly, in a preferred embodiment, the system includes a
`user telephone and a server connected throughthe telephone
`system. The user telephone includes a location number
`designator for designating a remote telephone number and
`an object decoder for decoding software objects such as a
`map object having map information for the area about the
`remote location of a remote address associated with the
`remote telephone number and a driving directions object
`having driving directions information for traveling to the
`remote location. The server includes a map object generator
`for generating the map object from the remote telephone
`oumber and a driving directions object generator for gener-
`ating the driving directions object from the remote telephone
`number and user location-determination information for a
`
`local address, a local telephone number, or local geodetic
`coordinates provided by a geodetic location device in the
`user telephone.
`An advantage of the system of the present inventionis that
`a user of a cellular telephone receives a map and/or driving
`directions for a remote location associated with a remote
`
`telephone number.
`These and other objects and advantages of the present
`invention will no doubt become obviousto those of ordinary
`
`FIG. 1 is a block diagram of a communication system of
`the present invention comprising a user telephone and a
`server;
`
`FIG. 2 is a flow chart for a methodof the present invention
`for generating a map on the user telephone of FIG. 1 about
`a remote location associated with a remote telephone num-
`ber;
`FIG. 3 is a flow chart for a methodof the present invention
`for generating driving directions on the user telephone FIG.
`1 to a remote location associated with a remote telephone
`number;
`FIG. 4 is a block diagram of the user telephone of FIG. 1;
`and
`
`FIG. 5 is a block diagram of the server of FIG. 1.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`FIG. 1 is a block diagram of a system of the present
`invention referred to by the general reference number 10.
`The system 10 includes a user telephone 12 and a server 14
`connected through a telephone system 16. A remote tele-
`phone 18 having a remote telephone number also connects
`into the telephone system 16. In a typical application the
`user telephone 12 is a cellular telephone with additional
`features of the present invention including a location number
`designator 22, an object decoder 24, and an optional geo-
`detic location device 26. The telephone system 16 includes
`all the service providers, routing, switching, transponders,
`and lines for providing access, including wireless access,
`betweenthe user telephone 12, the server 14, and the remote
`telephone 18. The server 14 is a computer adapted for
`communication into the telephone system having computer-
`readable programming of the present invention for a map
`object generator 27 and a driving directions object generator
`28. A prior system described by Fultz in a United States
`patent for a “Communication and Navigation System Incor-
`poraling Position Determination” having a US. Pat. No.
`6,021,371 is incorporated herein by reference.
`FIG. 2 is flow chart of a method for gencrating a map on
`the user telephone 12 for a remote location associated with
`the remote telephone 18.
`At
`the start,
`the user telephone 12 uses the location
`number designator 22 for designating a remote telephone
`number. This can be done in any one of three ways. First, in
`a step 32 the uscr telephone 12 reccives a telephone call
`from the remote telephone 18 having the remote telephone
`numberandthen in a step 34 the location numberdesignator
`22 usescaller identification to identify the remote telephone
`number. Second, in a step 36 the user of the user telephone
`12 instructs the location number designator 22 to use one of
`a set of stored telephone numbers as the remote telephone
`number. Third, in a step 38 the user manually enters the
`remote telephone number into the location number desig-
`nator 22.
`
`Theuser, in a step 42 selects the desired function from the
`user telephone 12, for example, “map”. In a step 44 the user
`telephone 12 transmits a telephone call having the remote
`telephone number as message data through the telephone
`system 16 to the server 14. Of course, this use of the remote
`telephone numberdiffers from the standard use of a desti-
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`
`
`US 6,674,849 Bl
`
`3
`nation telephone number in header data for routing and
`switching the telephone call through the telephone system
`16. In the present invention, the message data includes the
`remote telephone number and the header data includes the
`telephone number of the server 14. Such message data is
`carried in the same wayas a digitized voice conversation is
`carried to a human user of another telephone.
`The server 14 in a step 46 converts the remote telephone
`numberto an associated remote street address. If the remote
`
`the server 14
`telephone number is found to be invalid,
`transmits an error indication through the telephone system
`16 back to the user telephone 12. In a step 48 the server 14
`geocodes the remote street address to a remote geodetic
`location such asa latitude and a longitude. In a step 52 the
`server 14 uses the remote geodetic location and a map
`database for generating a map object having information for
`a map of the area around the remote geodetic location, an
`indication of the remote geodetic location itself shown on
`the map, and a default map scale suitable for the remote
`geodetic location. The default scale would depend upon the
`intensity of map information in the area of the remote
`geodetic location.
`In a step 54 the server 14 transmits a telephone message
`having the map object through the telephone system 16 to
`the user telephone 12. In a step 56 the object decoder 24 in
`the user telephone 12 decodes the map object with into map
`data the can be used for a map display. Then,in a step 58 the
`user telephone 12 displays the map to the user of the user
`telephone 12.
`FIG. 3 is a flow chart of a method for generating driving
`directions from a local location of the user telephone 12 to
`a remote location associated with the remote telephone 18.
`Atthe start, the user telephone 12 uses the location number
`designator 22 for designating a remote telephone number as
`described above for the steps 32-38. Then, in a step 72 the
`user selects the desired function from the user telephone 12,
`for example, “driving directions”. In a step 74 the user
`telephone 12 transmits a telephone message having the
`remote telephone number and user location-determination
`information as message data through the telephone system
`16 to the server 14. As described above, this use of the
`remote telephone numberdiffers from the standard use of a
`telephone number in a message header for routing and
`switching the telephone message through the telephone
`system 16.
`The user location-determination information can be des-
`
`ignated in any oneofthree ways. First, the user telephone 12
`may include a geodetic location device 26, such as a global
`positioning system (GPS) receiver. Then, in a step 82, the
`geodetic location device 26 provides the local location as a
`geodetic location such as latitude and longitude. Second,in
`a step 84 the user may enter the user location-determination
`information in the form of a local street address. Third, in a
`step 86 the user may enter the location-determination infor-
`mation in the form of a fixed local telephone number. The
`fixed local telephone number may be the telephone number
`for the user telephone 12 whenthe user telephone 12 has a
`fixed location, or may be the telephone number of a nearby
`fixed telephone that is entered by the user. Alternatively, in
`the steps 84 and 86 the user may enter any address or
`telephone number, respectively, from a telephone book.
`The server 14 in a step 88 converts the remote telephone
`numberto an associated remote strect address. If the remote
`
`the server 14
`telephone number is found to be invalid,
`transmits an error indication through the telephone system
`16 back to the user telephone 12. In a stcp 90 the server 14
`
`10
`
`20
`
`30
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`geocodes the remote street address to a remote street net-
`work segment such asa street intersection or a section of a
`street between intersections at either end.
`Whenthe user location-determination information has the
`form of a geodetic location, in a step 92 the server 14 reverse
`geocodes the geodetic location to a local street network
`address segment. In a step 94 when the user location-
`determination information has the form of a street address,
`the server 14 converts the street address to the local street
`
`network segment. In a step 96 when the user location-
`determination information has the form of a local telephone
`number, the server 14 converts the local telephone number
`to the local street network segment. If the local telephone
`numberis found to be invalid, the server 14 transmits an
`error indication through the telephone system 16 back to the
`user telephone 12.
`The server 14 in a step 102 creates a route and driving
`directions between the local street network segment and the
`remote street network segment. In a step 106 the server.14
`encodesthe driving directions as a driving directions object.
`In a step 108 the server 14 transmits the driving directions
`object through the telephone system 16 to the user telephone
`12. In astep 112 the object decoder 24 in the user telephone
`12 decodes the driving directions object into driving direc-
`tions. Then, in a step 114 the user telephone 12 displays the
`driving directions to the user of the user telephone 12.
`FIG. 4 is a block diagram of the user telephone of the
`present invention referred to by the reference number 12.
`The user telephone 12 includes the optional geodetic loca-
`tion device 26, a user entry device 152, a display 154, a user
`central processing unit (CPU) 156, a memory 158, a user
`receiver 162, and a user transmitter 164. The user entry
`device 152 includes a manual entry unit such as a keypad for
`enabling the user of the user telephone 12 to enter the
`functions of “map” and “driving directions” of the present
`invention and telephone numbers, addresses, and telephone
`operation functions, such as power, talk, send, end, recall,
`store, and the like for a standard telephone. Menu navigation
`keys such as next, back, home, menu, and the like are also
`included. The user entry device 152 also includes a micro-
`phone for receiving sound waves from the user intended to
`transmitted in telephone messages to users of other tele-
`phones. The display 154 includes a visual display such as a
`liquid crystal display and a speaker. The visual display
`issues telephone operational information and issues maps
`and driving directions according to the present invention.
`The speaker issues sound waves for telephone messages
`from users of other telephones. The user receiver 162
`receives telephone calls and messages from the telephone
`system 16. The user transmitter 164 transmits telephone
`calls and messages into the telephone system 16. The user
`CPU 156 operates in a conventional mannerfor reading and
`writing instructions and data into the memory 158 and
`coordinating the activities of the geodetic location device
`26, the user entry device 152, the display 154,
`the user
`receiver 162, the user transmitter 164, and programsin the
`memory158.
`The memory 158 includes an executive program 172 and
`task programs including the location number designator 22,
`the object decoder 24, a telephone processor 174, a display
`processor 176, a caller identificr 178, and a stored number
`database 182. Arrow lines within the memory 158 in the
`illustration of FIG. 4 show the primary paths and directions
`of information flow between the executive program 172 and
`the task programs, however, they do not necessarily showall
`possible information passing between the executive program
`172 and the task programs as structurcs of intcractions
`
`
`
`US 6,674,849 Bl
`
`5
`6
`the XML
`the JVM, or
`the WAP,
`microbrowser,
`between coded programs in a memory are well known. The
`microbrowser, respectively, as described above. The HTML
`user CPU 156 follows programmed instructions in the
`and WMT. documents include data and display semantics.
`executive program 172 for passing control among the task
`The object decoder 24 renders the HTML documentwith the
`programs. The task programs have instructions for directing,
`HTML microbrowser or the WML document with the WAP
`the user CPU 156 for their respective tasks.
`program code. ‘he Java class includes both data and pro-
`The telephone processor 174 includes all of the instruc-
`gram cade. The object decoder 24 for the Java class includes
`tions required for operating the user telephone 12 as a
`the JVM for executing the Java class program code within
`cellular telephoneorfixed telephone. The display processor
`the user telephone 12. Preferably the object decoder 24 also
`176 includes instructions for issuing audible and visible
`includes helper classes of library programs for rendering a
`information with the display 154. The caller identifier 178
`display of a button, text, images, and the like. For the XML
`identifies the remote telephone number for incomingtele-
`document
`the object decoder 24 includes the XML
`phone calls. The stored telephone number database 182
`microbrowser, a Java application, or a Java midlet for
`stores telephone numbersthat are selected by the user of the
`parsing and displaying the travel directions in the directions
`user telephone 12. The location number designator 22 des-
`object. In the case of a map object, the display 154 issues a
`ignates the remote telephone numberthat is to be used for
`visual presentation of the map area with an indication of the
`the remote location for generating a map or the destination
`position of the remote location. In the case of the driving
`location for generating driving directions.
`directions the display 154 issuesalist of instructions on the
`The object decoder 24 decodes a software object received
`visual display or through the speaker or issues highlighted
`in a telephone message from the server 14. The software
`lines and directions on the visual display.
`object can be a map object having information for a map
`FIG. 5 is a block diagram of the server of the present
`area about the remote location or a driving directions object
`invention referred to by the reference number 14. The server
`having information for driving directions to the remote
`14 includes a server central processing unit (CPU) 202, a
`location. The map object may be a hypertext markup lan-
`memory 204, a server receiver 206, and a server transmitter
`guage (HTML) document, a wireless markup language
`208. The server CPU 202 operates in a conventional manner
`(WML) document, a Java class, an extensible markup lan-
`for reading and writing instructions and data into the
`guage (XML) document,or the like.
`memory 204 and coordinating the activities of the server
`The HTML and the WML documents include map data
`receiver 206, the server transmitter 208, and programsin the
`and display semantics but not program code or data context.
`memory 204. The server receiver 206 receives telephone
`The object decoder 24 for the HTML documentincludes an
`messages from the telephone system 16. The server trans-
`HTML microbrowser having program code and context
`mitter 208 transmits telephone calls and messages into the
`information for rendering the HTML document. The object
`telephone system 16.
`decoder 24 for the WML document includes a wireless
`The memory 204 includes an executive program 212 and
`access protocol (WAP) program code for rendering the
`task programs including the map object generator 27, the
`WMLdocument. The map data in the HTML and WML
`driving directions object generator 28, and a server proces-
`documents is contained in a form such as graphics inter-
`sor 214. The arrow directions in the memory 204 in the
`change format (GIF),
`joint photographic experts group
`illustration of FIG. 5 show the primary paths and directions
`(JPEG) image, progressive network graphics (PNG) image,
`of information flow, however, they do not necessarily show
`or the like.
`all possible information passing between the executive pro-
`gram 212 and the task programsasstructures of interactions
`between coded programs in a memory are well known. The
`server CPU 202 follows programmedinstructions in the
`executive program 212 for passing control among the task
`programs. The task programs haveinstructions for directing
`the server CPU 202 for their respective tasks. The server
`processor 214 includes all of the instructions required for
`operating the server 14 and connecting the server 14 into the
`telephone system 16.
`The map object generator 27 includes a number-address
`converter 218, a geodetic geocoder 222, a map area genera-
`tor 224, and an object encoder 226. The number-address
`converter 218 includes a database of street addresses asso-
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`The Java class map object includes both map data and
`program code. The object decoder 24 for a Java class map
`object includes a Java virtual machine (JVM)that is able to
`run the Java class program code. Preferably, the Java object
`decoder 24 also includes helper classes of library programs
`that reside permanently in the user telephone 12 for display-
`ing items such as a button, a textfield, an image, orthe like.
`The Java object decoder 24 renders the map object either as
`an image or preferably as vectors. The image can be GIF,
`JPEG, PNG,or the like. The vectors can be textual labels
`and coordinates of end points of lines. The Java object
`decoder 24 enables a user to interact with the map, for
`example to click on a street, zoom in, zoom out, and
`enable/disable display of various street classes, labels, and
`points of interest. ‘The Java object decoder 24 also displays
`the location of the user telephone 12 on the map. Preferably,
`the Java object decoder 24 caches cnough mapdata to show
`location continuously as the user telephone 12 moveson the
`map within a local area without further map data from the
`server 14,
`
`The XML document includes map data with context but
`no program code. The object decoder 24 for the XML
`document
`includes an XML microbrowser or Java
`application, for example a Java midlet, that is able to parse
`and display the XML document and draw the map.
`Similarly,
`the directions object can be an HTML
`document, a WMI. document, a Java class, or an XMI.
`document and the object decoder 24 includes the HTML
`
`55
`
`60
`
`65
`
`ciated with telephone numbers for converting telephone
`numbers to street addresses. The geodetic converter 222
`includes a database of geodetic coordinates suchas latitude
`and longitude associated with street addresses for converting
`a street address received from the number-address converter
`
`218 to geodetic coordinates. The map area generator 224
`includes a map database for generating a map of the area
`about the geodetic coordinates received from the geodetic
`converter 222. The object encoder 226 cncodes the map
`received from the map generator 224 into an object format
`such as an HTML document, a WML document, a Java
`class, or an XML document as describe above. When the
`server receiver 206 receives a telephone message having a
`remote telephone number as message data from the user
`telephone 12, the map object generator 27 creates the map
`
`
`
`US 6,674,849 Bl
`
`7
`object for the area about the remote location associated with
`the remote telephone numberandthe server transmitter 208
`transmits the map object in a telephone message to the user
`telephone 12.
`The driving directions object generator 28 includes the
`task programsforthe strect address converter 218, the object
`encoder 226, a street segment geocoder 232, a reverse street
`segment geocoder 234, and a route generator 236. The
`number-address converter 218 operates as described above
`for converting telephone numbersto street addresses. The
`street segment geocoder 232 includes a database ofstreet
`addresses and associated street network segments for con-
`verting a street address received from the number address
`converter 218 to a street network segment. The reverse street
`segment geocoder 234 includes a database of geodetic
`coordinates and street network segments and uses map
`matching for converting geodetic coordinates to a street
`network segment. The route generator 236 generates a route
`and driving directions between a starting street network
`segment and a destination street network segment. The
`object encoder 226 encodes the driving directions into an
`object format as described above.
`Whenthe server receiver 206 receives a telephone mes-
`sage having user location-determination information and a
`remote telephone number as message data from the user
`telephone 12,
`the number-address converter 218 and the
`street segment geocoder 232 convert the remote telephone
`numberto the remote street network segment. Whenthe user
`location-determination information is
`a local
`telephone
`number,
`the numbcr-address converter 218 and the strect
`segment geocoder 232 convert the local telephone numberto
`a user street network segment; or when the user location-
`determination information is a local address,
`the street
`segment geocoder 232 converts the local address to the user
`street network segment; or when the user location-
`determination information is in the form of geodetic
`coordinates, the reverse geocoder 234 converts the geodetic
`coordinates to the user street network segment. The route
`generator 236 uses the user street network segment as the
`start location and the remote street network segment as the
`destination location for generating the route and driving
`directions. The object encoder 226 encodes the driving
`directions as the driving direction object and the server
`transmitter 208 transmits the driving directions object in a
`telephone message to the user telephone 12.
`Although the present invention has been described in
`terms of the presently preferred embodiments,it is to be
`understood that such disclosure is not to be interpreted as
`limiting. Variousaltcrations and modifications will no doubt
`become apparent to those skilled in the art after having read
`the above disclosure. Accordingly, it is intended that the
`appended claims be interpreted as covering all alterations
`and modifications as fall within the true spirit and scope of
`the invention.
`Whatis claimedis:
`
`1. Amethod for generating driving directions, comprising
`steps of:
`designating a remote telephone numberin a user tele-
`phone having a local telephone number different than
`said remote telephone number;
`determining local geodetic coordinates at said user tele-
`phone;
`transmitting an outgoing telephone call having said local
`geodetic coordinates and information for said remote
`telephone numberto a server having a server telephone
`numberdifferent than said remote telephone number;
`
`10
`
`20
`
`25
`
`40
`
`45
`
`55
`
`60
`
`65
`
`
`
`8
`converting said local geodetic coordinatesto a local street
`network segment in said server;
`transmilling a return message lo the user telephone num-
`ber from said server, said return message having driv-
`ing directions from a local location of the user tele-
`phone to said remote location; and
`using said local street network segmentas a start and said
`remote street network segment as a destination for
`generating said driving directions.
`2. The method of claim 1, wherein:
`the step of designating said remote telephone number
`comprises steps of receiving at said user telephone an
`incoming telephone call from a remote telephone hav-
`ing said remote telephone numberand designating said
`remote telephone number from header data in said
`incoming telephone call.
`3. The method of claim 1, wherein:
`the step of designating said remote telephone number
`comprisesstepsof retrieving a stored telephone number
`and designating said stored telephone numberas said
`remote telephone number.
`4. The method of claim 1, further comprising:
`converting said remote telephone number to a remote
`street network segmentin said server.
`5. The method of claim 4, further comprising:
`converting said local telephone numberto a local street
`network segment in said server.
`6. The method of claim 5, further comprising:
`using said local street network segmentas a start and said
`remote street network segment as a destination for
`generating said driving directions;
`encoding said driving directions as a driving directions
`object; and
`decoding said driving directions object in said user tele-
`phone.
`7. The method of claim 1, further comprising:
`determining a local address at said user telephone;
`transmitting said local address in sai