throbber
(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2013/0124563 A1
`CaveLie et al.
`(43) Pub. Date:
`May 16, 2013
`
`US 2013 0124563A1
`
`(54) CONTROLLING PRE-FETCHING OF MAP
`DATA TLES BASED ON SELECTABLE
`PARAMETERS
`
`(75) Inventors: Hans-Olav CaveLie, San Francisco, CA
`(US); Thomas G. Nourse, Half Moon
`Bay, CA (US)
`
`(73) Assignee: GOOGLE INC., Mountain Vew, CA
`(US)
`
`(21) Appl. No.: 13/297,363
`
`(22) Filed:
`
`Nov. 16, 2011
`
`Publication Classification
`
`(51) Int. Cl.
`G06F 7/30
`
`(2006.01)
`
`(52) U.S. Cl.
`USPC ............. 707/770; 707/E17.032; 707/E17.044
`
`ABSTRACT
`(57)
`A system and method identifies pre-fetch map data to be
`downloaded from a remote server, having a map database, to
`a client device by using selectable parameters to control pre
`fetching. For example, device specific parameters, such as
`device model number, and user specific parameters, such as
`user interests, may be accessed by the system and method and
`analyzed to determine which pre-fetch map data should be
`downloaded from the remote server. These parameters may
`be automatically stored on the client device or may be manu
`ally entered by the user. The responsive pre-fetch map data
`may be identified by map data type, map points of interest,
`map Zoom level, or some other manner. Where the map data
`base stores map data in tiles, the remote server will send
`selected map data tiles to the client device as the pre-fetch
`map data.
`
`Server 105
`
`Pre-Fetch
`Engine
`750
`
`Map
`Database
`103
`
`180-MAPMEMORY
`BUFFER
`
`120
`
`130
`
`MAP MEMORY
`BUFFER
`MAP
`GENERATOR
`
`PROCESSOR
`
`
`
`136
`
`134
`
`MAP MEMORY
`BUFFER
`MAP
`GENERATOR
`
`
`
`130
`
`PROCESSOR
`
`Niantic's Exhibit No. 1004
`Page 001
`
`

`

`Patent Application Publication May 16, 2013 Sheet 1 of 14
`
`US 2013/O124563 A1
`
`100
`
`
`
`Server 105
`
`Pre-Fetch
`Engine
`750
`
`Map
`Database
`103
`
`136
`
`
`
`132
`
`134
`
`136 - 132
`
`134
`
`180-MAP MEMORY
`BUFFER
`
`MAP MEMORY
`BUFFER
`
`120
`
`130
`
`115
`
`136
`
`
`
`132
`
`134
`
`180-MAPMEMORY
`BUFFER
`
`120
`
`130
`
`FIG. 1
`
`Niantic's Exhibit No. 1004
`Page 002
`
`

`

`Patent Application Publication May 16, 2013 Sheet 2 of 14
`
`US 2013/O124563 A1
`
`120
`
`190
`
`
`
`MAP GENERATOR
`
`181
`
`DATABASE INTERFACE
`MODULE
`
`182
`
`PRE-FETCH SELECTION
`MODULE
`
`186
`
`MAPDATA
`SELECTION MODULE
`
`DEVICE
`PARAMETERS
`
`STATIC
`
`DYNAMIC
`
`PARAMETERS
`
`AUTOMATIC
`
`184
`
`DISPLAY MODULE
`
`USER DEFINED
`
`FIG. 2
`
`192
`
`195
`
`196
`
`197
`
`198
`
`Niantic's Exhibit No. 1004
`Page 003
`
`

`

`Patent Application Publication May 16, 2013 Sheet 3 0f 14
`
`US 2013/0124563 A1
`
`2_00
`
`202A
`
`204A 2048
`
`204C 204D 204E
`
`204F
`
`\/= 1
`
`\/= 1
`
`\/= 1
`
`2046
`
`204H 204|
`
`204J
`
`204K 204L
`
`2028
`
`\/= 1
`
`\/= 1
`
`\/= 1
`
`III-III.-
`
`204M 204N 2040
`
`204P
`
`204Q 204R
`
`V=2
`
`FIG. 3
`
`Niantic's Exhibit No. 1004
`
`Page 004
`
`Niantic's Exhibit No. 1004
`Page 004
`
`

`

`I‘uIE.‘«1‘!“iguana”IE
`
`iErw,.......m.uh‘D—g
`
`.4?.0."—
`
`
`
`.-
`
`Niantic's Exhibit No. 1004
`Page 005
`
`
`

`

`
`
`“himana?mhgwmwgm
`
`mmflfimu.
`
`Niantic's Exhibit No. 1004
`Page 006
`
`
`

`

`Patent Application Publication
`
`May 16, 2013 Sheet 6 of 14
`
`US 2013/O124563 A1
`
`
`
`N
`
`7` | |) L^Š?EPI NOEN?
`
`JAZ: T?
`----
`No.
`?.
`
`Niantic's Exhibit No. 1004
`Page 007
`
`

`

`Patent Application Publication May 16, 2013 Sheet 7 of 14
`
`US 2013/O124563 A1
`
`START
`
`700
`1.
`
`
`
`
`
`AWAT INITIALIZATION
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`PRE-FETCHSELECTION MODULE
`ACCESSESSELECTION PARAMETERS
`
`PRE-FETCHSELECTION MODULE
`DETERMINES PRE-FETCH MAPDATA
`POLICYBASED ON SELECTION
`PARAMETERS
`
`
`
`
`
`
`
`TRANSMIT PRE-FETCH MAPDATA
`POLICY REQUEST TO SERVER
`
`
`
`RECEIVE PRE-FETCH MAPDATA
`FROM SERVER
`
`STORE RECEIVED PRE-FETCH MAP
`DATA FOR VISUAL DISPLAY
`
`AWAIT USER INTERACTION
`
`IDENTIFY PRE-FETCH MAP DATA
`
`RENDER VISUAL MAPDISPLAY
`
`FIG. 5
`
`701
`
`702
`
`704
`
`PRE-FETCH DATA
`ENGINE
`
`710
`
`712
`
`714
`
`716
`
`Niantic's Exhibit No. 1004
`Page 008
`
`

`

`
`
` Jfl‘.Q...‘“.Ir.AF'..Illiflnfifig00
`
`
`"WleI!'13!“-
`
`
`iEggH
`
`.«g
`
`<9.0."—
`
`.HmhXEvSwmmN
`
`1%03NP
`
`00
`
`00
`
`Niantic's Exhibit No. 1004
`Page 009
`
`
`

`

`“himana?I.-.‘1‘in“-‘_atgay.m
`
`wmfimfimu.
`
`Niantic's Exhibit No. 1004
`Page 0010
`
`
`

`

`Patent Application Publication May 16, 2013 Sheet 10 of 14
`
`US 2013/O124563 A1
`
`
`
`MSY
`
`Niantic's Exhibit No. 1004
`Page 0011
`
`

`

`Patent Application Publication May 16, 2013 Sheet 11 of 14
`
`US 2013/O124563 A1
`
`800-
`
`FIG. 7
`
`IDENTIFY INITIAL PRE-FETCH
`MAPDATATILES
`
`CONSTRUCT AND DISPLAY
`INITIAL VISUAL MAPDISPLAY
`
`
`
`
`
`802
`
`804
`
`AWAIT USER INTERACTION
`
`806
`
`
`
`
`
`900 Y
`
`FIG. 8
`
`DECISIONMODULE ACCESSES INFORMATION
`AND DETERMINES DESIRED SELECTION
`PARAMETERS
`
`MAPDATA POLICY DECISIONMODULE
`ANALYZESSELECTION PARAMETERS
`USINGALOGICAL MODEL
`
`IDENTIFY MAPDATA TRAITS FOR FORMING
`THE MAPDATAPOLICY
`
`
`
`
`
`IDENTIFY DATA VALUES FOR MAPDATA TRAITS-908
`
`ASSEMBLE MAPDATA POLICY
`
`-910
`
`Niantic's Exhibit No. 1004
`Page 0012
`
`

`

`Patent Application Publication May 16, 2013 Sheet 12 of 14
`
`US 2013/O124563 A1
`
`1000
`1.
`
`ACCESS SELECTION PARAMETERS FROM
`BLOCK 902
`
`DO
`ANY SELECTION
`PARAMETERS CORRESPOND
`TO NEXT TRAIT IN
`
`ANALYZE SELECTION
`PARAMETERS TO
`DETERMINE TREATMENT
`OF MAPTRAIT IN MAP
`DATA POLICY
`
`
`
`
`
`
`
`
`
`
`
`
`
`SET NEXT
`MAP TRAIT
`
`
`
`
`
`
`
`
`
`ARE
`THERE ANY ADDITIONAL
`TRATS FOR MAPDATA
`POLICY?
`
`FIG. 9
`
`Niantic's Exhibit No. 1004
`Page 0013
`
`

`

`Patent Application Publication May 16, 2013 Sheet 13 of 14
`
`US 2013/O124563 A1
`
`START
`
`RECEIVE PRE-FETCH MAPDATA POLICY - 1102
`REQUEST
`
`EXAMINE REGUEST TO DETERMINE NEXT
`MAP DATA TRAIT FROM THE MAP DATA
`POLICY REQUEST
`
`DETERMINE PRE-FETCH MAPDATA
`CORRESPONDING TO THE CURRENT MAP
`DATA TRAT
`
`
`
`ARE
`THERE ADDITIONAL MAPDATA
`TRAITS?
`
`
`
`NO
`
`OPTIMIZE AND ASSEMBLE PRE-FETCH - 1110
`MAPDATA
`
`TRANSMIT PRE-FETCH MAPDATA TO CLIENT
`DEVICE
`
`1112
`
`END
`
`FIG. 10
`
`Niantic's Exhibit No. 1004
`Page 0014
`
`

`

`Patent Application Publication
`
`May 16, 2013 Sheet 14 of 14
`
`US 2013/O124563 A1
`
`
`
`Niantic's Exhibit No. 1004
`Page 0015
`
`

`

`US 2013/01 24563 A1
`
`May 16, 2013
`
`CONTROLLING PRE-FETCHING OF MAP
`DATATILES BASED ON SELECTABLE
`PARAMETERS
`
`FIELD OF TECHNOLOGY
`0001. The present disclosure relates to map data optimi
`Zation and more specifically to a system and a method to
`pre-fetch map data from a remote map database.
`
`BACKGROUND
`0002 With the widespread use of mobile devices, such as
`mobile phones, personal data assistants, tablet personal com
`puters, etc., consumer demand for ready access to varied
`types of data continues to grow at a high rate. These devices
`are used to transmit, receive, and store text, voice, image, and
`Video data. Consumers often look to store large numbers of
`applications on these devices, such that mobile devices are
`often touted more for the number of available applications,
`than internal processor speed. While consumers have come to
`desire fast access to data, the sheeramount of data required to
`run these applications places a premium on data management,
`both at the device level and at the network level. This pre
`mium limits the effectiveness of applications such as map
`ping applications, which typically require comparatively
`large amounts of network data.
`0003. Mapping applications are found in a variety of
`mobile devices, including car navigation systems, hand-held
`GPS units, mobile phones, and portable computers. These
`applications are among the most frequently used applications
`and are considered, by some, necessary for personal safety.
`Although the underlying digital maps are easy to use from a
`user's perspective, creating a digital map is a data intensive
`process. Every digital map begins with a set of raw data
`corresponding to millions of streets and intersections. That
`raw map data is derived from a variety of Sources, each
`providing different amounts and types of information. To
`effectively map a location, locate a driving route between a
`Source and a destination, identify points of interest, etc.
`requires Substantial amounts of data. Furthermore, many
`mapping applications require display of different map data at
`different Zoom levels, i.e., different scales, where the amount
`of detail and that nature of that detail changes at each Zoom
`level. For example, at a lowest Zoom level, scaled farthest
`away from a target, the map data may contain the boundaries
`of continents, oceans, and major landmasses. At Subsequent
`Zoom levels, that map data may identify countries, states,
`homelands, protectorates, and other major geographic
`regions. While at even further subsequent Zoom levels, that
`map data may contain major roads, cities, towns, until even
`tually the map data contains minor roads, buildings, down to
`even sidewalks and walkways depending on the region. The
`amount of detail is determined by the sources of information
`used to construct the map data at each Zoom level. But no
`matter the Zoom level, the amount of information is volumi
`nous and generally too large for storage, in total, on mobile
`devices and too large for continuous download overa wireless
`communication network.
`0004. In operation, mapping applications typically down
`load map data to the mobile device through a wireless com
`munication network and in response to a user entering a
`location of interest and/or based on the current location of the
`mobile device. Such as the current global positioning satellite
`(GPS) data or current cellular network location data for the
`
`device. A conventional technique for downloading map data
`is to have the mobile device communicate this location data to
`a remote processor on the wireless communication network,
`which, in response, downloads all map data to the mobile
`device or the map data requested for display to the user.
`0005 Generally speaking, the map data is stored in blocks
`known as map data tiles, where the number of map data tiles
`increases with Zoom level. The remote processor provides a
`subset of the available map data tiles for a particular location
`or region to the mobile device for storage and display at any
`particular time via a map display application. By providing
`large numbers of map data tiles, the mobile device may buffer
`the map data for display to the consumer as the consumer
`scrolls across an area using the mapping application looking
`for adjacent or other mapping locations. However, the larger
`the number of map tiles provided at any particular time
`increases the download time and buffer memory usage while
`the user is using the map display application.
`0006. This conventional downloading of large amounts of
`map data tiles taxes network infrastructure and requires siZ
`able memory allocation within the mobile device. As a result,
`there is a need to have more intelligent mechanisms for down
`loading map data, in particular map data tiles, to Sufficiently
`satisfy the needs of the user, while doing so in a manner that
`addresses network bandwidth limitations and scarce memory
`availability.
`
`SUMMARY
`
`0007. In an embodiment, a computer-implemented
`method comprises: identifying, on a client device, one or
`more pre-fetch selection parameters, where the pre-fetch
`selection parameters include at least one of device parameters
`associated with the client device and user parameters; deter
`mining, on the client device, from the one or more identified
`pre-fetch selection parameters, a pre-fetch map data policy;
`requesting, from a remote map database storing the map data,
`pre-fetch map data stored in the remote map database and
`corresponding to the pre-fetch map data policy determined on
`the client device, wherein the pre-fetch map data is to be
`stored on the client device for eventual rendering of a visual
`display of map data in response to a Subsequent user request;
`receiving, at the client device, the pre-fetch map data from the
`remote database and corresponding to the pre-fetch map data
`policy; and storing the received pre-fetch map data in a local
`memory on the client device until the Subsequent user request
`0008. In another embodiment, a computer-readable
`medium storing instructions, the instructions when executed
`by a processor cause the processor to: identify one or more
`pre-fetch selection parameters, where the pre-fetch selection
`parameters include at least one of device parameters associ
`ated with the client device and user parameters; determine,
`from the one or more identified pre-fetch selection param
`eters, a pre-fetch map data policy; request, from a remote map
`database storing map data, pre-fetch map data stored in the
`remote map database and corresponding to the pre-fetch map
`data policy determined on the client device, wherein the pre
`fetch map data is to be stored on the client device for eventual
`rendering of a visual display of map data in response to a
`Subsequent user request; receive, at the client device, the
`pre-fetch map data from the remote database; and store the
`received pre-fetch map data in a local memory on the client
`device until the Subsequent user request.
`
`Niantic's Exhibit No. 1004
`Page 0016
`
`

`

`US 2013/01 24563 A1
`
`May 16, 2013
`
`0009. In yet another embodiment, a computer system for
`fetching map data to be used in rendering a visual display of
`map data on a client device, the computer system comprises:
`a display module for rendering the visual display of the map
`data on the client device; a pre-fetch selection module to
`analyze pre-fetch selection parameters for the client device to
`determine a pre-fetch map data policy for the client device,
`wherein the pre-fetch selection parameters include at least
`one of device parameters associated with the client device and
`user parameters; and a database interface module to request,
`from a remote server having a map database, pre-fetch map
`data responsive to the pre-fetch map data policy, and to
`receive, from the remote server, the pre-fetch map data
`responsive to the pre-fetch map data policy, wherein the pre
`fetch map data is to be stored on the client device for eventual
`rendering of a visual display of map data in response to a
`Subsequent user request.
`0010. In a further embodiment, a computer-implemented
`method for downloading pre-fetch map data to a client device
`for use in rendering a visual display of map data on the client
`device, the method comprises: receiving a pre-fetch map data
`policy request from the client device, where the pre-fetch map
`data policy request comprises one or more map data traits and
`wherein the pre-fetch map data policy request depends on
`device parameters or user parameters for the client device;
`analyzing the one or map data traits in the pre-fetch map data
`policy request to determine pre-fetch map data corresponding
`to the device parameters or the user parameters for the client
`device, wherein the pre-fetch map data is to be stored on the
`client device for eventual rendering of a visual display of map
`data in response to a Subsequent user request; and transmit
`ting the pre-fetch map data to the client device.
`0011. In a still further embodiment, a computer-readable
`medium storing instructions, the instructions when executed
`by a processor cause the processor to: receive a pre-fetch map
`data policy request from the client device, where the pre-fetch
`map data policy request comprises one or more map data
`traits and wherein the pre-fetch map data policy request
`depends on device parameters or user parameters for the
`client device; analyze the one or map data traits in the pre
`fetch map data policy request to determine pre-fetch map data
`corresponding to the device parameters or the userparameters
`for the client device, wherein the pre-fetch map data is to be
`stored on the client device for eventual rendering of a visual
`display of map data in response to a Subsequent user request;
`and transmit the pre-fetch map data to the client device.
`0012. In yet another embodiment, a server for download
`ing pre-fetch map data to a client device for use in rendering
`a visual display of map data on the client device, the server
`comprises: a memory for storing a map database; and a pre
`fetch engine configured to, receive a pre-fetch map data
`policy request from the client device, where the pre-fetch map
`data policy request comprises one or more map data traits and
`wherein the pre-fetch map data policy request depends on
`device parameters or user parameters for the client device,
`analyze the one or map data traits in the pre-fetch map data
`policy request to identify from the map database pre-fetch
`map data corresponding to the device parameters or the user
`parameters for the client device, wherein the pre-fetch map
`data is to be stored on the client device for eventual rendering
`of the visual display of map data in response to a Subsequent
`user request, and transmit the pre-fetch map data to the client
`device.
`
`0013 The features and advantages described in this sum
`mary and the following detailed description are not all-inclu
`sive. Many additional features and advantages will be appar
`ent to one of ordinary skill in the art in view of the drawings,
`specification, and claims hereof.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`0014 FIG. 1 is high-level block diagram of a wireless
`network depicting a wireless base station connected to a
`server containing map data for selectively communicating
`that map data to a various client devices on the network.
`0015 FIG. 2 is a block diagram of an example map gen
`erator in the client device of FIG. 1.
`0016 FIG. 3 illustrates a portion of the data structure for
`the map database of FIG. 1.
`0017 FIGS. 4A, 4B, and 4C illustrate example renditions
`of map data at three different Zoom levels, respectively.
`0018 FIG. 5 illustrates an example process or flow dia
`gram for using selectable parameters to control pre-fetching
`of map data from a remote server.
`(0019 FIGS. 6A, 6B, and 6C illustrate example renditions
`of the map data of FIGS. 4A, 4B, and 4C, at three different
`Zoom levels, respectively, and showing points of interest at
`the different Zoom levels.
`0020 FIG. 7 illustrates an example process or flow dia
`gram for constructing and displaying pre-fetch map data visu
`ally.
`FIG. 8 illustrates an example process or flow dia
`0021
`gram for assembling a pre-fetch map data policy based on
`selectable parameters.
`0022 FIG. 9 illustrates an example process or flow dia
`gram as may be performed in illustration of FIG. 8 to identify
`map data traits that will form the pre-fetch map data policy.
`0023 FIG. 10 illustrates an example process or flow dia
`gram as may be performed on the remote server to identify
`pre-fetch map data and to communicate to a client device.
`0024 FIG. 11 illustrates an example pre-fetch map data
`policy request frame as may be communicated from the client
`device to the remote server in accordance with FIG. 10.
`
`DETAILED DESCRIPTION
`
`0025. The present application describes techniques for
`fetching map data over a selected Subset of the entire map data
`available, by analyzing one or more pre-fetch selection
`parameters. The techniques, which may be implemented on a
`client device such as a mobile or handheld device, will deter
`mine which map data to pre-fetch from a remote database
`based on the selection parameters. In this way, the client
`device may be populated with a portion of all available map
`data, where that portion is selected based on the parameters
`associated with the client device. These parameters may be
`device parameters, i.e., associated with the hardware itself.
`while in the other examples, these parameters may be user
`parameters, i.e., dependent on the user of the client device. In
`Some embodiments, the client device automatically deter
`mines which parameters are to be used in identifying pre
`fetch map data, e.g., based on a set of predetermined condi
`tions. In other embodiments, the particular parameters are
`manually determined, e.g., by input from the user.
`
`Niantic's Exhibit No. 1004
`Page 0017
`
`

`

`US 2013/01 24563 A1
`
`May 16, 2013
`
`0026. In some embodiments, the map data is stored at the
`remote server in the form of map data “tiles. In such
`examples, the techniques rely upon analysis of these pre-fetch
`selection parameters to identify map data tiles as the pre-fetch
`map data.
`0027 More particularly, the present application describes
`techniques for fetching map data over a selected Subset of the
`entire map data available by using selection parameters for
`each client device. These selection parameters may include
`device parameters, such as static parameters such as a hard
`ware platform type, a device model/version type, language
`setup, screen size, screen resolution, APIs available on the
`device and their versions and locale. Dynamic device param
`eters may be used such as a location of the client device,
`available memory, and network speed. In other embodiments,
`these selection parameters including user parameters, such as
`hobbies or items of interest, user usage patterns, user account
`type, number of bytes remaining in a users (e.g., monthly)
`service data plan of if the user has requested to limit or ramp
`up the amount of caching on the device. In yet other embodi
`ments, a combination of any of these or other Suitable selec
`tion parameters may be used. Stored values for these selection
`parameters are examined in Some embodiments at the client
`device and it other examples at least partially at a remote
`server—from which a pre-fetch map data policy can be iden
`tified. The identified pre-fetch map data policy may be used to
`identify different types of pre-fetch map data. In some
`embodiments, the selection parameters are used to determine
`a pre-fetch map data policy that identifies map data tiles, map
`points of interest, and/or Zoom levels.
`0028. When used to determine map points of interest and
`Zoom level, the client device identifies that data to a remote
`server that contains a map database of the entire map data,
`including map data for the points of interest. With the points
`of interest identified, the remote server begins transmitting
`the map data, corresponding to these points of interest, to the
`client device for storage and display to the user. Storing map
`data in data blocks known as map data “tiles, the remote
`server sends the map data in the form of a map data tiles. For
`each point of interest, the server may send an identified set of
`map data tiles, termed pre-fetch map data tiles.
`0029 Pre-fetching refers to requesting map data from a
`remote map database. Such as that of a remote server, prior to
`any specific user request for map data, so that map data may
`be collected and buffered on a device until a specific user
`request for map data. In this way, pre-fetching seeks to collect
`map data in the background, before that map data is called
`upon to construct a visual display, thereby reducing (and even
`eliminating) the need for a client device to request map data
`only after a user request. The pre-fetched map data is auto
`matically identified, requested, and stored on the client device
`for Subsequent use in constructing a visual display. As dis
`cussed in examples below, where that map data is stored in the
`remote map database in the form of map data tiles, the pre
`fetching is of map data tiles.
`0030 FIG. 1 is a high-level block diagram that illustrates
`a computing environment for a pre-fetch map data system 100
`that may be used to access and store map data within a map
`database. As illustrated in FIG. 1, the computing environment
`includes a map database 103 connected to or disposed within
`a server 105, which is, in turn, connected to a number of client
`devices 115 through a network 125. The network 125
`includes but is not limited to any combination of a LAN, a
`MAN, a WAN, a mobile, a wired or wireless network, a
`
`private network, or a virtual private network. While only three
`clients 115 are illustrated in FIG. 1 to simplify and clarify the
`description, it is understood that any number of client com
`puters are Supported and can be in communication with the
`Server 105.
`0031) Both the server 105 and the clients 115 are comput
`ers that may include a CPU 130 (only shown in the clients),
`one or more computer readable memories 132, one or more
`user interfaces 134 (keyboard, touch screen, etc.), a network
`interface 136, one or more peripheral interfaces, and other
`well known components. AS is known to one skilled in the art,
`other types of computers can be used that have different
`architectures. The client devices 115 represent any suitable
`handheld and/or mobile device, such as a mobile phone,
`personal data assistant, laptop computer, tablet personal com
`puter, car navigation system, hand-held GPS unit, or “smart”
`device. More broadly, the client devices 115 represent any
`personal computing device, database, server, or network of
`Such devices, or any other processing device having a user
`interface and CPU and capable of displaying a visual rendi
`tion of map data accessed from the map database 103 or other
`remote source of map data. Furthermore, while in some
`examples, the network 125 is described as a wireless network,
`the network 125 may be any wired or wireless network, where
`the clients 115 are devices on the network.
`0032. The server 105 and the clients 115 are also adapted
`to execute computer program modules for providing func
`tionality described herein. As used herein, the terms 'mod
`ule” and “routine” refer to computer program logic used to
`provide the specified functionality. Thus, a module or a rou
`tine can be implemented in hardware, firmware, and/or soft
`ware. In one embodiment, program modules and routines are
`stored on a storage device, loaded into memory, and executed
`by a processor or can be provided from computer program
`products that are stored in tangible computer-readable Stor
`age mediums (e.g., RAM, hard disk, optical/magnetic media,
`etc.).
`0033. The map database 103, which may be stored in or
`may be separate from the server 105, contains map data that
`can be used to generate a digital map or that can be used by, for
`example, a navigation system to determine routes between
`two locations. Physical roads, waterways, parks, landmarks,
`and other geographic elements may be represented in the map
`data by a list of nodes and segments that connect those nodes.
`Each node corresponds to a specific geographic location in
`the physical world. The data representation for each node
`generally includes a set of coordinates (e.g., latitude and
`longitude) and an association with one or more segments. For
`roads, each segment corresponds to a section of a physical
`location that begins at one node and ends at a different node.
`The data representation for each road segment, for example,
`can include a length and a number of attributes, such as a
`street name, a priority (e.g., a highway or a local road), speed
`information, a surface type, a road width, an indication of
`whether the road segment is a one-way segment, address
`ranges, usage (e.g., ramp or trail), etc.
`0034. The map data stored in the map database 103 can be
`obtained from several different sources such as the New York
`City Open Accessible Space Information System (OASIS)
`and the U.S. Census Bureau Topologically Integrated Geo
`graphic Encoding and Referencing system (TIGER). The
`map data can also be accessed by one of the map generators
`120, modified, and stored back into the database 103. Further,
`the database 103 does not need to be physically located within
`
`Niantic's Exhibit No. 1004
`Page 0018
`
`

`

`US 2013/01 24563 A1
`
`May 16, 2013
`
`server 105. For example, the database 103 can be partially
`stored within a client 115, can be stored in external storage
`attached to the server 105, or can be stored in a network
`attached storage. Additionally, there may be multiple servers
`105 that connect to a single database 103. Likewise, the map
`database 103 may be stored in multiple different or separate
`physical data storage devices.
`0035 Each client 115 executes one of the map generators
`120, each of which requests and receives pre-fetch map data
`from the server 105 and generates a visual display of the
`received map data that is presented to the user on a display of
`the interface 134. The map generator 120 is able to adjust that
`visual display in response to user interactions with the inter
`face 134, for example, adjusting which map data is visualized
`at any given time in response to a user selecting to Scroll (left,
`right, up, down, etc.) through the visual display, or in response
`to the user selecting to change the Zoom level (e.g., Scale) of
`the displayed map data.
`0036. As illustrated in the detailed example of FIG. 2, the
`client 115 may include various modules within or associated
`with the map generator 120, including a database interface
`module 181 that operates to retrieve map data from the server
`105 and map database 103. The map generator 120 further
`includes a pre-fetch selection module 182 that may be used to
`set a pre-fetch map data policy as discussed herein. The
`selection module 182 may identify one or more points of
`interest that are to be used by a display module 184 to create
`a visual map display of received map data on the interface
`134. The points of interest determined by the module 182 are
`communicated by the interface module 181 through the net
`work interface 136 through network 125 to the server 105,
`which responds by sending pre-fetch map data from the map
`database 103 back to the client device 115, where this pre
`fetch map data is received by the database interface module
`181 and is stored in a map buffer memory 180 of the client
`115.
`0037. A map data selection module 186 accesses the
`stored pre-fetch map data and determines which portion of
`that buffered map data is to be provided to the display module
`184 for creating the visual map display on the interface 134.
`The module 186, therefore, is responsive (after pre-fetching)
`to user interaction with the interface 134 to determine which
`portion of the pre-fetched map data should be displayed to the
`desires in response to a Subsequent user interaction, which is
`determined by a centralized map position, user Scrolling, and
`Zoom level, for example.
`0038. In some embodiments, the pre-fetch selection mod
`ule 182 identifies one or more Zoom levels in the pre-fetch
`map data policy, which one or more Zoom levels are commu
`nicated to the remote server 105 for identifying pre-fetch map
`data. The interface module 181 receives the pre-fetch map
`data from the server 105 and stores it in the buffer memory
`180 for eventual display using the map data selector module
`186 and the display module 184.
`0039. To set the pre-fetch map data policy, the selection
`module 182 accesses selection parameters stored in a
`memory 190, which may be portion of the memory 132.
`Generally speaking, the memory 190 contains any number of
`any Suitable kind of selection parameters storing values
`accessed by the selection module 182. In the illustrated
`embodiment, the memory 190 includes two types of param
`eters, device parameters 192 and user parameters 194. In the
`
`illustrated example, the device parameters memory block 192
`contains static device parameters 195 and dynamic device
`parameters 196, while the userparameters memory block 194
`contains two sets of parameters. Automatically determined
`parameters 197 represent those user parameters compiled by
`the client device without express user control, for example, by
`the client device executing routines or modules to automati
`cally track, monitor, and evaluate user-specific interactions.
`User determined parameters 198 are those set explicitly by
`the user, for example in response to a menu section, setup of
`the client device, or other techniques.
`0040. The pre-fetching selection module 182 will be dis
`cussed in further detail below. It is noted here, however, that
`the selection module 182 may include modules designed to
`further define pre-fetch map data.
`0041. Of course, some embodiments of the map generator
`120 may have different and/or other modules than the ones
`described herein. Similarly, the functions described herein
`can be distributed among the modules in accordance with
`other embodiments in a different manner than that described
`herein.
`0042 Generally speaking, in Some embodiments, map
`data in the map database 103 is stored in different Zoom levels
`each formed of a plurality of map data blocks, termed map
`tiles, which are used to construct a visual display of the map.
`FIG.3 illustrates an example data structure 200

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