`
`Exhibit 3
`
`
`
`USOO73301.12B1
`
`(12) United States Patent
`Emigh et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,330,112 B1
`Feb. 12, 2008
`
`(54) LOCATION-AWARE SERVICES
`(76) Inventors: Aaron T. Emigh, 762 Judith Ct.
`Incline Village, NV (US) 89451; James
`A. Roskind, 920 Governors Bay Dr.
`Redwood City, CA (US) 94.065
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 201 days.
`
`(21) Appl. No.: 10/937,920
`
`(22) Filed:
`
`Sep. 9, 2004
`
`O
`O
`Related U.S. Application Data
`(60) Provisional application No. 60/501,691, filed on Sep.
`9, 2003.
`(51) Int. Cl.
`(2006.01)
`G08B I/08
`(52) U.S. Cl. ........................... 340/539.13: 340/539.16;
`340/933; 340/941; 340/429; 340/436; 340/572.1;
`34O7572.4
`
`(56)
`
`(58) Field of Classification Search ........... 340/539.13,
`340/539.16,933,941, 429,438,572.1, 572.4,
`34O7572
`See application file for complete search history.
`References Cited
`U.S. PATENT DOCUMENTS
`5,661,473 A * 8/1997 Paschal ................. 340,825.36
`5,801,618 A * 9/1998 Jenkins .................. 340,426.14
`6,081,206 A
`6/2000 Kielland ..................... 340/937
`2004/0210757 A1* 10/2004 Kogan et al. ............... T13, 182
`
`* cited by examiner
`Primary Examiner Tai Nguyen
`
`ABSTRACT
`(57)
`In some embodiments, a technique for providing location
`based functionality comprises providing functionality,
`wherein the functionality uses information provided by a
`location-aware device.
`
`8 Claims, 14 Drawing Sheets
`
`
`
`101
`
`Location-sensing
`or location
`receiving hardware
`
`102
`
`
`
`Processor
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 2 of 25 PageID #: 2294
`
`103
`
`
`
`Data store
`
`
`
`
`
`
`
`Programmatic
`instructions for
`performing
`location-based
`Services
`
`
`
`104
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 1 of 14
`
`US 7,330,112 B1
`
`
`
`101
`
`Location-Sensing
`Or location
`receiving hardware
`
`102
`
`
`
`Processor
`
`103
`
`Data store
`
`
`
`
`
`Programmatic
`instructions for
`performing
`location-based
`Services
`
`
`
`104
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 3 of 25 PageID #: 2295
`
`Figure 1
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 2 of 14
`
`US 7,330,112 B1
`
`201
`
`202
`
`Request location information
`
`Receive location reports from local
`location-aware devices
`
`
`
`203
`
`Any reports?
`
`204
`
`Use other
`techniques
`
`
`
`205
`
`
`
`2O6
`
`
`
`Y
`Disregard potentially
`erroneous reports
`
`Combine reports
`to estimate location
`
`
`
`2O7
`
`Update location
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 4 of 25 PageID #: 2296
`
`Figure 2
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 3 of 14
`
`US 7,330,112 B1
`
`304
`
`A map is to be displayed
`
`
`
`
`
`Retrieve information associated with
`location-aware friends
`
`Any more
`friends?
`
`Y
`
`ASCertain location of next friend
`
`305
`
`306
`
`N
`
`Displayable?
`
`301
`
`302
`
`
`
`
`
`
`
`
`
`
`
`
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 5 of 25 PageID #: 2297
`
`Add to displayable list
`
`307
`
`Figure 3
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 4 of 14
`
`US 7,330,112 B1
`
`401
`
`Receive request to display
`location of one or more targets
`
`402
`
`Determine whether target(s) are
`friend(s) of the requestor
`
`403
`
`
`
`404
`
`N
`
`Do not transmit location
`
`
`
`405
`
`Transmit location of target
`friend(s) to requestor
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 6 of 25 PageID #: 2298
`
`Figure 4
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 5 of 14
`
`US 7,330,112 B1
`
`Friends in Vicinity Of Current Location
`
`
`
`SS/ A
`
`al
`
`507
`
`508
`
`510
`
`509
`
`502
`
`
`
`Zoom in
`
`Display more details
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 7 of 25 PageID #: 2299
`
`503 N zoom out
`Zoom Out
`
`Only display ...
`
`504
`
`505
`
`Figure 5
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 6 of 14
`
`US 7,330,112 B1
`
`601
`
`Communication event OCCurs
`
`603
`
`604
`
`
`
`Obtain Current location
`
`
`
`Record event details
`and Current location
`
`
`
`605
`
`Display communication event details with the
`location at which the Communication occurred
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 8 of 25 PageID #: 2300
`
`Figure 6
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 7 of 14
`
`US 7,330,112 B1
`
`Your Location During Call
`
`Act
`--
`
`f
`
`s
`
`706
`
`
`
`
`
`
`
`
`
`
`
`
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 9 of 25 PageID #: 2301
`
`Correspondent Location
`
`Zoom Out
`
`Show Both Locations
`
`Figure 7
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 8 of 14
`
`US 7,330,112 B1
`
`801
`
`Assistants are to be displayed
`
`
`
`802
`
`Perform location-based query for
`assistants matching criteria
`
`
`
`
`
`
`
`Any more
`assistants?
`
`Add location record to assistant list
`
`
`
`804
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 10 of 25 PageID #:
`2302
`
`Display assistants
`
`Figure 8
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 9 of 14
`
`US 7,330,112 B1
`
`Assistance in Your Area
`
`
`
`
`
`
`
`
`
`4./ AF. A ?y:S
`
`907
`
`908
`
`910
`
`909
`
`902
`
`s Zoom in
`
`Display more details r
`
`904
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 11 of 25 PageID #:
`2303
`
`903
`
`
`
`N Zoom Out
`
`Select category
`
`905
`
`Figure 9
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 10 of 14
`
`US 7,330,112 B1
`
`1001
`
`3-D view to be displayed
`
`
`
`1002
`
`Get contour data around specified location
`
`
`
`
`
`Contour
`available?
`
`1004
`
`
`
`Display not
`supported
`
`
`
`1005
`
`
`
`Correlate location(s) of interest with contour data
`
`1 OO6
`
`
`
`Provide variable perspectives of
`contour with correlated location(s)
`
`
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 12 of 25 PageID #:
`2304
`
`Figure 10
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 11 of 14
`
`US 7,330,112 B1
`
`1101
`
`
`
`1102
`
`Distorted map is to be displayed
`
`Get distorted map
`
`1103
`
`Available?
`
`
`
`1104
`
`Display not
`Supported
`
`
`
`
`
`1105
`
`1106
`
`Correlate location(s) with
`distorted map
`
`Display distorted map with
`correlated location(s)
`
`
`
`1107
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 13 of 25 PageID #:
`2305
`
`Figure 11
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 12 of 14
`
`US 7,330,112 B1
`
`Local Terrain Map
`
`
`
`1202
`
`Zoom in
`
`Display Details
`
`1204
`
`12O1
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 14 of 25 PageID #:
`2306
`
`1203
`
`Display Regular Map
`
`O
`1205
`
`Figure 12
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 13 of 14
`
`US 7,330,112 B1
`
`1301
`
`Automatically identifiable
`device/object detected by LAD
`
`1302
`
`
`
`1303
`
`
`
`Extract device identity
`
`Consult Watch list
`
`
`
`
`
`
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 15 of 25 PageID #:
`2307
`
`
`
`ldentity in
`Watch list?
`
`issue alert
`
`Log encounter
`
`Figure 13
`
`1305
`
`1306
`
`
`
`U.S. Patent
`
`Feb. 12, 2008
`
`Sheet 14 of 14
`
`US 7,330,112 B1
`
`1401
`
`Functionality requested
`
`1402
`
`1403
`
`
`
`Determine Current location
`
`Retrieve definition of primary area
`
`
`
`1404
`
`
`
`
`
`Location in
`primary area?
`
`1405
`Y-C Provide primary functionality
`
`)
`
`N
`
`1406
`
`1.
`N Provide secondary functionality )
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 16 of 25 PageID #:
`2308
`
`Figure 14
`
`
`
`US 7,330, 112 B1
`
`1.
`LOCATION-AWARE SERVICES
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`
`2
`FIG. 14 is a flow diagram of a method for varying
`functionality based on location according to Some embodi
`mentS.
`
`DETAILED DESCRIPTION
`
`This application claims priority to U.S. Provisional Patent
`Application No. 60/501,691 entitled LOCATION-BASED
`SERVICES, filed Sep. 9, 2003, which is incorporated herein
`by reference for all purposes.
`
`10
`
`FIELD OF THE INVENTION
`
`The present invention relates generally to the areas of
`computer Software and portable electronics, more specifi
`cally to the area of location-aware devices.
`
`15
`
`BACKGROUND OF THE INVENTION
`
`Technology for determining location has become Small
`and inexpensive, facilitating the creation of location-aware
`devices. However, current location-aware devices provide
`limited functions.
`It would be useful to have increased functionality for
`location-aware devices.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Various embodiments of the invention are disclosed in the
`following detailed description and the accompanying draw
`ings.
`FIG. 1 is an illustrative diagram of a system for perform
`ing location-based services according to Some embodiments.
`FIG. 2 is a flow diagram of a method for obtaining
`location information from one or more location-aware peer
`devices according to some embodiments.
`FIG. 3 is a flow diagram of a method for displaying
`location-aware friends according to Some embodiments.
`FIG. 4 is a flow diagram of a method for responding to a
`request to provide the locations of one or more friends.
`FIG. 5 is an illustrative diagram of a user interface for
`displaying the location of friends according to some embodi
`mentS.
`FIG. 6 is a flow diagram of a method for recording and
`displaying the location of communications by a mobile
`device.
`FIG. 7 is an illustrative diagram of a user interface for
`displaying the location of communications by a mobile
`device according to Some embodiments.
`FIG. 8 is a flow diagram of a method for locating potential
`assistants matching one or more specified criteria according
`to Some embodiments.
`FIG. 9 is an illustrative diagram of a user interface for
`displaying the location of potential assistants according to
`Some embodiments.
`FIG. 10 is a flow diagram of a method for presenting a
`three-dimensional map with integrated location information
`according to Some embodiments.
`FIG. 11 is a flow diagram of a method for accurately
`displaying locations on a distorted display according to
`Some embodiments.
`FIG. 12 is an illustrative diagram of a user interface for
`displaying a distorted map according to some embodiments.
`FIG. 13 is a flow diagram of a method for detecting
`nearby devices and/or objects from a mobile location-aware
`device according some embodiments.
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`The invention can be implemented in numerous ways,
`including as a process, an apparatus, a system, a composition
`of matter, a computer readable medium Such as a computer
`readable storage medium or a computer network wherein
`program instructions are sent over optical or electronic
`communication links. In this specification, these implemen
`tations, or any other form that the invention may take, may
`be referred to as techniques. In general, the order of the steps
`of disclosed processes may be altered within the scope of the
`invention.
`A detailed description of one or more embodiments of the
`invention is provided below along with accompanying fig
`ures that illustrate the principles of the invention. The
`invention is described in connection with such embodi
`ments, but the invention is not limited to any embodiment.
`The scope of the invention is limited only by the claims and
`the invention encompasses numerous alternatives, modifi
`cations and equivalents. Numerous specific details are set
`forth in the following description in order to provide a
`thorough understanding of the invention. These details are
`provided for the purpose of example and the invention may
`be practiced according to the claims without some or all of
`these specific details. For the purpose of clarity, technical
`material that is known in the technical fields related to the
`invention has not been described in detail so that the
`invention is not unnecessarily obscured.
`FIG. 1 is an illustrative diagram of a system for perform
`ing location-based services according to Some embodiments.
`In this example, hardware capable of sensing a location or
`receiving location information 101 may be connected to a
`processor capable of executing instructions to perform loca
`tion-based services 102. Examples of hardware capable of
`sensing a location include a GPS receiver, and one or more
`accelerometers or gyroscopes. An example of hardware
`capable of receiving location information is an interface
`capable of connecting to a network over which location
`information may be transmitted, for example a wireless
`network such as 802.11, GPRS or Bluetooth.
`A data store 103 is shown to be connected to the processor
`102. A data store may be any medium capable of storing
`data, for example read-only memory, magnetic or optical
`storage, non-volatile electronic memory such as flash
`memory, or battery-powered electronic memory Such as
`DRAM.
`Programmatic instructions for performing location-based
`services 104 may be made available to the processor 102.
`Examples of media in which programmatic instructions for
`performing location-based services may be contained
`include read-only memory, magnetic or optical storage, and
`random-access memory Such as DRAM or flash memory.
`FIG. 2 is a flow diagram of a method for obtaining
`location information from one or more location-aware peer
`devices according to Some embodiments. A "location-aware
`device' or “LAD” refers herein to any device that can be
`aware of its location, either directly or indirectly. Examples
`of LADS include a personal digital assistant which has the
`capability to communicate with Global Positioning System
`(GPS) satellites (for example, an HP iPad 5555 with a
`Pharos PF022 card, a Handspring Visor with a Magellan
`GPS Companion module, or a Garmin iQue 3600), an
`automotive navigation unit Such as a Siemens IDIS or
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 17 of 25 PageID #:
`2309
`
`
`
`3
`TetraStar (as used in BMW and Mercedes automobiles), and
`a cellular telephone capable of receiving location informa
`tion. Examples of ways in which a LAD can be made aware
`of its location include satellite-based services such as GPS,
`accelerometers, gyroscopes, local transmissions from fixed
`or mobile locations, manual input by a user, and receiving
`location information from another LAD. In some embodi
`ments, a LAD may make location information programmati
`cally available to software running on it, for example via the
`National Marine Electronics Association standard NMEA
`10
`O183.
`In this example, location information may be requested
`(201). For example, a request may be transmitted (for
`example using a broadcast) over a communications network
`Such as a wireless network. Examples of wireless networks
`include 802.11 and Bluetooth. In some embodiments, a
`request may be implicit. One example of an implicit request
`is not making a request. Another example of an implicit
`request is another communication, for example a broadcast
`indicating the presence of a device, which may be taken as
`an implicit request for location information. One or more
`location reports may be received from local location-aware
`devices (202). A location report refers herein to a commu
`nication containing a location of the device sending the
`report, for example in latitude and longitude. In some
`embodiments, a reporting device may have measured its
`own location, for example using location-sensing hardware
`Such as a GPS receiver. In some embodiments, a reporting
`device may have determined its location from location
`reports received from other entities. In some embodiments,
`a device providing a report may be a peer of a requesting
`device, for example a mobile device such as a PDA, cellular
`phone or automotive navigational system. An example of
`receiving one or more location reports is to receive them
`over a network medium through which a request was
`transmitted, for example a wireless network such as Blue
`tooth or 802.11, or using a mode of transmission specified in
`a request.
`It may be determined whether a location report has been
`received (203). If a location report has not been received
`(203), then other techniques are used in this example (204).
`Examples of other techniques include invalidating any loca
`tion awareness until a location can be ascertained, using the
`last known location, and extrapolating from the last known
`location.
`45
`If a location report has been received (203), then one or
`more potentially erroneous location reports are optionally
`disregarded in some embodiments (205). An example of
`disregarding a location report is to not include the location
`report in a location calculation. An example of disregarding
`potentially erroneous location reports is to disregard reports
`containing locations that are substantially different than
`average. In one example of disregarding locations Substan
`tially different than average, one or more location reports
`that contain a location more than a threshold distance from
`the average reported location, for example a hundred meters,
`may be disregarded. In some embodiments, one or more
`location reports containing locations more than a threshold
`distance from the average reported location may be disre
`garded when at least a threshold number of reports, for
`example two, are received containing distances within the
`threshold distance from the average. In another example of
`disregarding locations substantially different than average,
`one or more reports that are furthest from the average may
`be disregarded based on a fixed or variable ratio. Such as
`ignoring the 10% of reports furthest from the average
`location, or any report varying from the average by more
`
`55
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 18 of 25 PageID #:
`2310
`
`50
`
`60
`
`65
`
`US 7,330, 112 B1
`
`15
`
`25
`
`30
`
`35
`
`40
`
`4
`than 10%. In another example of disregarding locations
`Substantially different than average, one or more reports that
`are furthest from the average may be disregarded based on
`a statistical measure Such as disregarding any locations
`greater than Some threshold number of standard deviations
`(for example two) from average. In some embodiments,
`location(s) substantially different than average may be dis
`regarded when more than a threshold number of location
`reports have been received, for example three. In some
`embodiments, disregarding locations Substantially different
`than average may be required to eliminate at least a prede
`termined number of reports, for example one. In some
`embodiments, one or more X and/or Y coordinates within
`location reports may be separately disregarded, for example
`an X or Y coordinate substantially different than average.
`Any technique discussed above for disregarding reports
`Substantially different than average may be applied sepa
`rately to X and Y coordinates.
`Location reports may be combined to estimate the current
`location (206). One example of combining location reports
`is to average location reports received from location-aware
`devices. In some embodiments, averaging reports may
`include calculating an arithmetic mean. In some embodi
`ments, averaging reports may include calculating a median.
`In some embodiments, averaging reports may include cal
`culating a mode. In some embodiments, an average may be
`weighted by the observed signal strength from each report
`ing device. Another example of combining location reports
`is to use both a received location report and the direction
`from which the location report signal arrived. A direction
`from which a location report signal originates may, for
`example, be obtained from a Doppler direction finder, or
`from an effectively rotating directional beacon transmission
`Such as is used on aircraft VOR navigational systems, which
`establishes a radial direction from a transmitter to a receiver.
`In some embodiments, directions from Sources of location
`reports may be used to triangulate. In one example of
`triangulation, if radial directions are received from two
`transmitters, with one transmitter due east and the other due
`north, then a current location is derived in this example at the
`latitude of the due east transmitter, and the longitude of the
`due north transmitter. In another example of triangulation, if
`radial directions are received from two transmitters of
`location reports, and the radial directions are not collinear
`with a receiver, then a unique location for the receiver may
`be derived using trigonometric methods well known to those
`skilled in the art. In another example of triangulation, radial
`directions to three or more transmitters may be acquired, and
`a receiver location may be estimated when all the radials do
`not align at a single point In some embodiments, a least
`squares error estimate of the receiver's position may be
`derived based on triangulation relative to three or more
`radials to known or specified locations. In this example, an
`error metric in an estimate may for example be defined to be
`the sum of the squares of the distances from the receiver's
`estimated location to the radial lines.
`In some embodiments, X and Y coordinates, such as a
`latitude and longitude, may be calculated separately from
`locations reported by locally accessible LADs. In one
`example of separately calculating X and Y coordinates,
`average X and Y coordinates may be calculated from the X
`and Y coordinates contained within location reports.
`In some embodiments, a previous location, such as the
`last known location, may be taken into consideration when
`evaluating a location in a location report, for example by
`disregarding reports that are far from the last known loca
`tion. For example, a new location reading may be analyzed
`
`
`
`US 7,330, 112 B1
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`5
`to calculate the distance (for example, the number of miles
`or degrees) between it and a previous location. If this
`distance is greater than a threshold, then the location in the
`location report may be disregarded. In some embodiments,
`the threshold may be a constant, for example 600 miles. In
`Some embodiments, the amount of time since the previous
`location was calculated may be taken into account in deter
`mining a threshold, for example by multiplying a constant
`threshold such as 600 miles by the amount of time (for
`example the number of hours) since the previous location
`was calculated. In some embodiments, a combination of
`elapsed time and a distance threshold may be expressed as
`a speed threshold, for example 600 miles per hour in the
`example above. In some embodiments, a time threshold may
`be combined with a distance threshold, including a combi
`nation of elapsed time and distance threshold, for example
`by applying the distance threshold only for location reports
`received less than a threshold period of time, such as five
`hours, since the last location report. In some embodiments,
`when multiple consistent location reports beyond a threshold
`are received, the location may be accepted.
`When one or more location reports have been combined
`and/or disregarded (205), the location is updated in this
`example (206).
`FIG. 3 is a flow diagram of a method for displaying
`location-aware friends according to some embodiments. In
`this example, a map is to be displayed (301), for example
`because a user has changed location, or has elected to view
`a map of a particular area, or has requested to view a map
`displaying the location of one or more friends. An example
`of a situation in which a map showing friends could be
`displayed is for a user to select a UI element labeled “My
`friends,” which could translate into a request to display, on
`the map, all people close to the user's present location (for
`example, within ten miles) who had previously been clas
`sified as friends. Information associated with set of location
`aware “friends” may be retrieved (302). A “friend” refers
`herein to any person that has been classified as an entity to
`monitor, who has given permission for Such monitoring,
`either implicitly or explicitly. In some embodiments, a friend
`may be classified as such by explicit classification by the
`user, proactively or in response to a request by the friend. In
`Some embodiments, a friend may be classified as such by
`automatic techniques including identification of associates
`in the user's address book, calendar, instant messaging
`“buddy list,” or other user data. In some embodiments, a
`friend may give implicit monitoring permission to a watcher
`by possessing data associating the friend with the watcher,
`for example by having the watcher in his or her address
`book, calendar, instant messaging “buddy list' or other user
`data. One example of retrieving a set of friends is to retrieve
`friend data from storage such as a file or database. Another
`example of retrieving a set of friends is to have friend data
`ready to access, for example in memory. In some embodi
`ments, friends may be categorized into groups, and an
`example of retrieving a set of friends is to retrieve a set of
`friends belonging to a particular group, such as family or
`coworkers.
`When no more friends remain to be evaluated (303),
`generation of the displayable list of friends is complete in
`this example (304). One example of an action to take when
`the list is complete is to display the location of friends.
`Another example of an action to take when the list is
`complete is to provide the list through a programmatic
`interface. If another friend remains to be evaluated (303),
`then his or her location may be ascertained (305).
`
`Case 2:21-cv-00072-JRG-RSP Document 87-3 Filed 06/15/21 Page 19 of 25 PageID #:
`2311
`
`50
`
`55
`
`60
`
`65
`
`6
`In some embodiments, the locations of a plurality of
`friends may be ascertained individually. In some embodi
`ments, the locations of a plurality of friends may be ascer
`tained simultaneously.
`One example of ascertaining the location of a friend is to
`query a server, as discussed in conjunction with FIG. 4.
`Another example of ascertaining the location of a friend is
`to obtain the location from a peer, for example via a
`peer-to-peer protocol. Another example of ascertaining the
`location of a friend is to receive a direct location transmis
`sion from the friend. In an example of a direct location
`transmission from a friend, a cellular telephone may receive
`location information directly from another cellular tele
`phone, for example a telephone with whom a connection
`Such as a phone call is established. Such transmission may,
`for example, be effected by encoding location information
`along with digitized Voice data.
`It may be determined whether the friend is displayable
`(306). In some embodiments, determining whether the
`friend is displayable may include determining whether the
`friend's location is within the boundaries of a map. In some
`embodiments, for example when a map showing the location
`(s) of one or more friends has been requested, determining
`whether a friend is displayable may include setting or
`expanding boundaries of a map to include the location of the
`friend.
`If the friend being evaluated is not displayable (306), then
`the next friend is evaluated in this example (303). If the
`friend being evaluated is displayable, for example because
`the friend is in a displayable area or a request has been made
`to display the location of the friend (306), then the friend is
`added to a displayable list in this example (307). One
`example of adding a friend to a displayable list is to display
`the friend on a map. Another example of adding a friend to
`a displayable list is to add information about the friend, such
`as the identity and location of the friend, to a list of items to
`be displayed later, for example when the map is rendered.
`The next friend may be evaluated (303).
`In some embodiments, a friend may be a child equipped
`with a tracking device. An example of a tracking device is
`a device incorporating a Radio Frequency Identification
`(RFID) tag such as an Alien Technology 2450 MHz Long
`Range Backscatter RFID System. In some embodiments, a
`tracking device may be incorporated into a friend's personal
`effects such as his or her shoes. In some embodiments, a
`tracking device may be rented, for example at a large public
`venue Such as Disneyland. At the time the tracking device is
`rented, a key for a cipher Such as a symmetric cipher (for
`example, DES, AES or Blowfish) may be assigned to the
`tracking device and shared between the tracking device and
`an approved tracker's LAD, such as a parents LAD. When
`a friend, for example a child, passes a gateway or other place
`where a sensor has been installed, a tracking device asso
`ciated with the friend may be read and the friend's location
`may be relayed to an approved tracker's LAD or other
`map-aware terminal, for example by relaying the location
`from the reader to a server, which can construct an encrypted
`message containing an identifier associated with the tracking
`device and the location at which it was sensed. A message
`containing a location can be broadcast over a wireless
`network such as 802.11 by access points throughout the
`facility, at one of which the user's LAD may receive it. In
`Some embodiments, a LAD in this tracking mode can
`receive messages and attempt to decrypt them using its
`assigned key. Any such messages that result, after decryp
`tion, in a valid identifier and location may be displayed on
`a map.
`
`
`
`7
`FIG. 4 is a flow diagram of a method for responding to a
`request to provide the locations of one or more friends. In
`this example, a request for the location of one or more
`targets represented as friends is received (401). An example
`of a request for more than one target is a communication of
`a form such as <REQUEST ALL FRIENDS, userID, lati
`tude,
`longitude,
`radius>, where REQUEST ALL
`FRIENDS is the command to return the locations of nearby
`friends, userID is the user ID of the user whose friends are
`being sought, latitude and longitude are the coordinates of
`the center of the area in which location information for
`friends is requested, and radius is the radius around that
`center in which the search should be conducted. An example
`of a request for the location of a single target is a commu
`nication of a form such as <REQUEST FRIEND, frien
`dID>, where REQUEST FRIEND is an identifier for the
`command to locate a particular friend and friend D is an
`identifier associated with that friend.
`In some embodiments, it may be determined whether the
`specified target(s) are actually friends of the requestor (402).
`An example of determining whether a target is a friend of a
`requestor is to query a database containing friend associa
`tions to determine whether a record exists associating the
`requestor and the target. If the target is not a friend of the
`requestor (403), then the location of the target is not trans
`mitted in this example (404). One example of not transmit
`ting the location of a target is to not transmit the location of
`any targets. Another example of not transmitting the location
`of a target is to omit a target that is not a friend from a
`transmitted response containing the locations of one or more
`other targets that are friends of the requestor.
`If the target(s) are friend(s) of the requestor (403), then the
`location of one or more friends may be transmitted to the
`requester (405). An example of a response containing the
`locations of one or more friends is a response containing a
`35
`list of entries, for example in the form <REPORT LOCA
`TION, friend ID, latitude, longitude>, where REPORT LO
`CATION is an identifier for the type of data (a location
`report), friend ID is the unique identifier for a friend and
`latitude and longitude are the location of that friend. An
`40
`example of a response containing the location of a single
`friend is a response containing a single entry, for example in
`the form <REPORT LOCATION, friend ID, latitude, longi
`tude> as previously described.
`In some embodiments, the location of a friend provided in
`a response may have been received from a LAD associated
`with the friend. For example, a location may be received and
`stored, then retrieved when a request for the location is
`fulfilled. An example of receiving a location from a LAD is
`to receive a message in a form such as <UPDATE LOCA
`50
`TION, userID, latitude, longitude>, where UPDATE LO
`CATION is an identifier for the command to update a user's
`location, userID is an identifier associated with the user, and
`latitude and longitude represent the user's current position.
`In some embodiments, messages may include proof of the
`identit