US20040217980A1 - Image streaming - Google Patents
Image streaming Download PDFInfo
- Publication number
- US20040217980A1 US20040217980A1 US10/781,446 US78144604A US2004217980A1 US 20040217980 A1 US20040217980 A1 US 20040217980A1 US 78144604 A US78144604 A US 78144604A US 2004217980 A1 US2004217980 A1 US 2004217980A1
- Authority
- US
- United States
- Prior art keywords
- image
- client device
- tiles
- tile
- display
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
Definitions
- the invention relates to providing image data from a server to a client device.
- the invention seeks to provide a more efficient and flexible way of downloading images such as maps that is suitable for use with a mobile telephone.
- An aspect of the invention provides a method of displaying part of an image field on a display at a client device, the method comprising the client device: responding to user selection at the client device of a location within the image field to request from a server over a network, a plurality of image tiles including a first image tile that represents a portion of the image field including the selected location and a plurality of further image tiles represent portions of the image field surrounding the portion of the image field represented by the first tile; receiving from the server via the network, the plurality of requested image tiles; and displaying at least a part of the first image tile and the further image tiles on the display, wherein a total area of the first and further image tiles exceeds the area of the display.
- Supplying the image data in tiles enables rapid download of at least a portion of the image to be displayed with additional portions of the image field being subsequently downloaded. This can provide the user with at least a portion of the image of interest in a rapid manner without having to wait for the whole image to be downloaded. This is of particular interest where the image portions are transmitted in a compressed form, as each tile can be processed for compression and decompression separately.
- image data for the portion of an image field immediately surrounding the displayed area can be held in the client device for access by the user without requiring a separate downloading step.
- the tiling approach means that at least one tile can be displayed as further tiles are downloaded to complete the portion of an image field immediately surrounding the displayed area. In this way the user is provided with image data in at least a part of the display while the download is completed.
- the invention finds particular, but not exclusive, application where a relatively low bandwidth for the transfer of image data between the server and the client device is available, and/or where the client device has limited display, memory and/or processing capacity.
- An example of such an application is where the client device is a so-called thin client such as a mobile telephone or a personal data assistant (PDA).
- PDA personal data assistant
- the client device can identify the location within the image field to the server and in response thereto the client device receives from the server the first and further tiles.
- each tile is displayed as it becomes available. If the first image tile is received first, then this enables the central area of the display to be displayed before the peripheral areas. In one example, area of the first image tile is less than the area of the display, so that the central area of the display is occupied by the first image tile. Eight further image tiles can be arranged to surround the first image tile to complete the display area. In an example of the invention, the eight further image tiles extend beyond the edge of the display such that the first image tile and the eight further image tiles together provide a total area that exceeds the area of the display.
- One option to further reduce the initial download time would be for at least selected image tiles to be received initially in lower detail, and then to be updated in higher detail.
- additional image tiles could be received representing portions surrounding the first and plurality of further tiles.
- the additional image tiles can be received as a background task that is transparent to the user.
- These additional image tiles might also be received, at least initially, in low detail, whereby the additional image tiles could be made available at the client device for use if required at low cost in terms of bandwidth and storage requirements.
- the client device can be operable to request from the server, additional image tiles in the selected direction with respect to the currently displayed image tiles or image tile portions. If the additional images are already available, then these could be displayed in low resolution and the higher resolution images could be requested from the server.
- the image tiles can be transmitted from the server to the client device in a compressed form.
- the client device is operable to cache received image tiles in memory in the client device.
- a primary cache can be used to hold decompressed image tiles for display and a secondary cache can be used to hold compressed image tile data that have been received from the server but has not be decompressed for display.
- the image tile representative of an image portion furthest from the currently displayed image tile can be discarded, or purged.
- the image field is a map
- the image tiles are representative of respective portions of the map.
- the map can be defined in at least a first predefined scale, and the image tiles can be derived from the map at a selected scale.
- the selected scale can be selectable by the user at the client device.
- a set of one or more image tiles can be received at a different scale, with the set of one or more image tiles at a different scale being cached in the client device.
- a larger and/or smaller scale representation of the map could be downloaded as a background task so that the user could rapidly be provided with a larger and/or smaller scale map on demand.
- Information relating to objects represented by parts of the image tiles can be associated with the image tiles so that in response to user selection of an object on the display, for example by a point and click operation using a pointing device, the information relating to the object can be supplied to the user.
- Supplying the information can involve providing information that was cached with the image tile at the client device.
- supplying the information can involve requesting the information from the server via the network.
- Another aspect of the invention provides a method of supplying a portion of an image field to a display at a client device, the method comprising a server: receiving one or more requests from a client device via a network; and in response thereto supplying a plurality of image tiles representative of respective portions of the image field and including a first image tile representing a portion at the center of the image to be displayed on the display and a plurality of further image tiles representing portions surrounding the first image tile, whereby the total area of the image tiles exceeds the area of the display at the client device.
- a further aspect of the invention provides a computer program comprising program instructions operable to cause a client device to perform the steps of a method of displaying a portion of an image field on a display at a client device.
- Another aspect of the invention provides a computer program comprising program instructions operable to cause a server to perform the steps of a method of supplying a portion of an image field to a client device.
- the computer program can be provided on a carrier medium.
- a further aspect of the invention provides a client device comprising a processor, memory, a communication interface and a display, the client device being operable: to respond to user selection at the client device of a location within the image field to request from a server over a network, a plurality of image tiles including a first image tile that represents a portion of the image field including the selected location and a plurality of further image tiles represent portions of the image field surrounding the portion of the image field represented by the first tile; to receive from the server via the network, the plurality of requested image tiles; and to display at least a part of the first image tile and the further image tiles on the display, wherein a total area of the first and further image tiles exceeds the area of the display.
- the client device can be programmed by a computer program comprising program instructions operable to cause the client device to perform the steps of the method described above of displaying a portion of an image field on a display at a client device
- Another aspect of the invention provides a server comprising a processor, memory and a communications interface, the server being operable to receive one or more requests from a client device via a network; and in response thereto to supply a plurality of image tiles representative of respective portions of the image field and including a first image tile representing a portion at the centre of the image to be displayed on the display and a plurality of further image tiles representing portions surrounding the first image tile, whereby the total area of the image tiles exceeds the area of the display at the client device.
- the server can be programmed by a computer program comprising program instructions operable to cause the server to perform the steps of the method described above of supplying a portion of an image field to a client device.
- FIG. 1 is an overview of a network in accordance with a present invention with at least one client device operable to display a portion of an image field on a display at the client device and at least one server operable to supply a portion of an image field to the client device;
- FIG. 2 is a representation of such a client device in the form a mobile telephone configured to display a portion of an image field on a display;
- FIG. 3 is a functional block diagram of parts of the client device of FIG. 2;
- FIG. 4 is a schematic representation of software components for controlling the operation of the client device of FIG. 3;
- FIG. 5 is a functional block diagram of parts of a server
- FIG. 6 is a schematic representation of a plurality of image tiles forming a portion of an image field
- FIG. 7 illustrates an example of scrolling image tiles on the client device
- FIG. 8 is a flow diagram summarising the operation of an example of a mapping application on the client device of FIG. 3;
- FIG. 9 is a flow diagram of a user interface task of the mapping application of FIG. 8;
- FIG. 10 is a flow diagram of a gazetteer processing task of the mapping application of FIG. 8;
- FIG. 11 is a flow diagram of a favourite processing task of the mapping application of FIG. 8;
- FIG. 12 is a user profile processing task of the mapping application of FIG. 8;
- FIG. 13 is a flow diagram of a map display drawing task of the mapping application of FIG. 8;
- FIG. 14 is a flow diagram of a cursor movement task of the mapping application of FIG. 8;
- FIG. 15 is a flow diagram giving an overview of a map builder task of the mapping application of FIG. 8;
- FIG. 16 is a flow diagram of a task for generating a list of map tiles forming part of the map builder task of FIG. 15;
- FIG. 17 is a flow diagram of a task for getting a tile from a map image manager for the task of FIG. 16;
- FIG. 18 is a flow diagram of an HTTP requestor task of the mapping application of FIG. 8;
- FIG. 19 is a flow diagram of a task for storing an image in a primary cache for the mapping application of FIG. 8;
- FIG. 20 is a flow diagram of a task for storing in a secondary cache for the mapping application of FIG. 8;
- FIG. 21 is a flow diagram of a task for zooming in for the mapping application of FIG. 18;
- FIG. 22 is a flow diagram of a task for zooming out for the mapping application of FIG. 8;
- FIG. 23 is a flow diagram of a task for updating favourites
- FIG. 24 is a flow diagram part of an example of a mapping application for a point and click operation on the client device
- FIG. 25 is a flow diagram of a server gazetteer function
- FIG. 26 is a flow diagram of a server tile process
- FIG. 27 is a schematic representation of a data structure for holding a vector data for forming image tiles
- FIG. 28 is a schematic representation of displayed image tiles comprising vector data
- FIGS. 29A to 29 G illustrate successive stages in displaying vector data for an array of nine tiles.
- FIG. 1 represents a schematic overview of a network including a server 12 and a plurality of client devices connected to the network.
- the client devices shown include a personal data assistant (PDA 14 ), a mobile phone 16 and a computer 18 .
- PDA 14 personal data assistant
- the network 10 is a radio telephony network (e.g., a mobile or cellular telephone network), and that each of the devices shown include a transmitter/receiver connectable to the mobile telephone network.
- radio telephony network e.g., a mobile or cellular telephone network
- each of the devices shown include a transmitter/receiver connectable to the mobile telephone network.
- other forms of network such as the Internet, an intranet, or other wired or wireless network could be employed with the server and the devices being provided with appropriate communication interfaces to the network 10 .
- FIG. 2 is an illustrative representation of a client device in the form of a mobile, or cellular, telephone of the type described as a “smart phone”, that is a mobile, or cellular, telephone that is programmable to provide enhanced functionality beyond basic telephonic functions.
- the mobile telephone 16 includes a display 20 , which in the example illustrated in FIG. 2 is displaying a portion 22 of a map and a cursor 23 .
- the mobile telephone 16 also includes input devices in the form of a pointing device 24 (e.g. a joystick) and a keyboard 26 .
- the mobile telephone 16 also includes an aerial 28 , in the present instance enclosed within the housing 25 of the mobile telephone 16 .
- FIG. 3 provides a schematic overview of functional components of an example of a client device in the form of a mobile telephone such as the smart phone represented in FIG. 2.
- these functional components include the display 20 , the pointing the device 24 , the keyboard 26 and the aerial 28 already mentioned. They also include a processor 32 which co-operates with a display driver 34 for controlling the display 20 , a memory 36 for storing program information and data, and a communication interface 38 for interfacing with the aerial 28 .
- the processor 32 , display driver 34 , memory 36 and communications interface 38 can be provided by one or more integrated circuits represented generally at 30 .
- FIG. 4 it is schematic representation of typical components of a server 12 .
- the server includes a processor 102 , a memory 104 , storage 106 , a communications interface 98 and a transmitter/receiver 96 connectable to the network, for example by means of a wireless link 92 using an aerial 94 .
- the processor 102 , the memory 104 , the storage 106 and the communications interface 98 can be connectable by a bus system or the like, 100 .
- the server may also be configurable on site by means of a display 108 and user input devices such as a keyboard and/or pointing device 110 . Alternatively, it could be controlled remotely, for example over the Internet.
- the present example of a client device can be one of the so-called smart phones that are programmable to provide enhanced functionality beyond simple telephone functions.
- so-called smart phones are available from most mobile telephone manufacturers, for example the Nokia 7650 phone and the Ericsson P800, currently on the market.
- Such smart phones can be configured to operate under any one of a number of mobile telephone standards.
- a smart phone includes a graphical use interface and a suite of applications built around a core operating system, for example the Symbian operating system.
- Software development kits are provided for creating applications, in, for example, the JavaTM or C++ languages.
- FIG. 5 is a schematic representation of software components that can be held in the memory 36 the smart phone and can be operable to control the functioning of the smart phone.
- the software can include a core operating system 40 , for example based on the Symbian operating system.
- a system layer 42 provides extensions to the core operating system and provides an interface to application engines 44 and to a Java virtual machine 48 .
- a user interface 46 co-operates with the Java and the application engines to enable one or more specific user applications 50 to operate in the smart phone to control the operation of the smart phone in accordance with a customer's requirements.
- a primary cache 52 and a secondary cache 54 are also illustrated in FIG. 5 .
- Image tiles that are currently visible on the map display can be held in decompressed format in the primary cache 52 .
- Image tiles that have been received from the server 12 but are not currently being displayed can be held in compressed format in the secondary cache 54 .
- a record store 55 is also shown for storing operating parameters of a mapping application as will be described later.
- the Symbian operating system 40 is a multi-tasking operating system where applications are designed to interact with one another. For example, if a phone call interrupts a user composing an email message, the user can switch from email to a calendar application in the middle of a telephone conversation, or an incoming short messaging service (SMS) message may trigger the user to access a contact database within the system and to forward the SMS message on.
- SMS short messaging service
- the user interface 46 is based on the fact that a smart phone is intended as a hand-held mobile telephone, but is also operable to provide diverse applications and data communication.
- the user interface design will typically be structured to provide browsing elements and detailed views.
- a relatively small display In a mobile telephone environment, a relatively small display is provided.
- the display may have a size of 176 ⁇ 208 pixels. Accordingly, it will be appreciated that a relatively small amount of information can be displayed on the viewable display at any one time.
- a numeric keyboard is provided. This can include, for example, a 12-key numeric keyboard with function keys. Also, a pointing device, for example a joystick, a toggle button or a group of buttons can be provided.
- a mapping application can be configured to enable the display of a cursor on the display screen, and for the cursor to be manipulated using the pointing device.
- the pointing device can be configured such that it can be operated in “point and click” mode, whereby toggling the pointing device enables navigation by moving the cursor and firmly pressing the pointing device enables “clicking” on a location currently identified by the cursor.
- the use of such functions is well known in the computer arts, and is also known in smart phones that are already on the market.
- a mobile telephone such as a smart phone is able to upload and download information via the mobile telephone network through the communications interface 38 and the aerial 28 . It is also possible for programming to be affected through other connections, for example physical connections or using the BluetoothTM standard, by way of example only.
- Java has become popular as a programming language and as a run-time environment over a wide range of platforms, and more recently in the field of mobile telephony. Programming such mobile telephones in the Java language is well understood in one skilled in the art. Indeed, program developer tool kits are available from, for example, the mobile telephone manufacturers.
- mapping application implemented on a mobile telephone 16 as described with reference to FIGS. 2, 3 and 5 .
- a particular implementation of this mapping application is written for the Java2 Micro Edition platform (J2 ME). It provides map searching and browsing on a smart phone, with data being delivered wirelessly via the Internet from server applications compliant with Open GIS Consortium (OGC) standard specifications.
- GOC Open GIS Consortium
- An example of the mapping application can be operable on a client device such as a mobile telephone to cause a Web Gazetteer Server to look up a user-entered location or place name and to obtain the relevant map co-ordinates.
- the map co-ordinates e.g., x:y co-ordinates
- the client device can then be used to select and download to the client device an appropriate portion of a map, which can then be displayed within a display window on the client device (e.g., the display of a mobile telephone).
- the user can scroll up, down, left and right by the use of a pointing device (e.g., the pointing device 24 on a mobile phone 16 ).
- Additional mapping information can be retrieved from the server when needed, and can be intelligently cached at the client device to enable fast redrawing of the display.
- Map scrolling can be provided in a smooth manner with further portions of the map being retrieved as a background process.
- mapping application can be written using Sun Microsystems, Inc Forte Java Development environment (Forte for Java 4.0 ME), which has a built-in simple colour J2 ME phone emulator. This approach enables an application to be tested extensively and subsequently to be transferred to a real environment for further testing. Emulators are also to be provided by the mobile phone manufacturers for enabling accurate emulation. As mentioned above, one example of the present invention is designed for a client device in the form of a mobile telephone of the type described as a smart phone.
- GUI graphical user interface
- a main menu can provide a menu of selectable options, including, for example: a Go To option, a Favourites option and a User Profile option. Selecting one of these options (e.g. using a point and click operation with the pointing device on the client device) will take the user to the appropriate screen.
- selectable options including, for example: a Go To option, a Favourites option and a User Profile option. Selecting one of these options (e.g. using a point and click operation with the pointing device on the client device) will take the user to the appropriate screen.
- a Go To screen view which is accessible by selecting the Go To option on the main screen, can include a text input field where a user can type a place name to be searched for.
- the user can, for example use a “wild card” character when entering a place name to avoid typing a complete name.
- a series of options can be provided and displayed on a Go To Results screen view (see below) for the user to make a particular selection.
- the GoTo screen view can be configured to accept another location identifier such as a map reference, grid co-ordinates a post or zip code, etc.
- a Favourites screen view which is accessible by selecting the Favourites option on the main screen, can be used to display one of a set of favourites previously defined using an Add To Favourites screen view as described below.
- a User Preferences screen view which is accessible by selecting the User Profile option on the main screen, can be used to input and save user preferences, such as a user name, a password, URLs, addresses, a number of tiles for primary and secondary caches, and other functions.
- the user can be provided with the option of saving a profile, restoring a profile to default settings and clearing a map store, for example.
- a Go To Results screen view can be used to display a list of results from a Gazetteer search. The user can then select one of the results in the list and a map can be drawn in a currently selected map scale with a selected point at the centre of the map.
- a Map Screen view displays a portion of a map retrieved from a Web Map Server.
- the portion of the map to be displayed is supplied from the Web Map Server in tiles, and is displayed using those tiles, with successive tile downloads completing more of the map image.
- the tiles are cached in the mobile telephone as they are received. Relatively small tile sizes are typically preferred to take account of the relatively low capacity of a client device such as a mobile telephone for processing map tiles. In one example, tiles of 100 pixels square in the compressed Portable Network Graphics (PNG) format are used.
- PNG Portable Network Graphics
- the user can also be provided with the option of changing the scale of the map, for example by pressing the number 1 on the mobile phone key pad to zoom out and the number 3 to zoom in.
- any other of the available input keys or devices on the mobile telephone could be configured to initiate zooming.
- the extent of the map available within the display window is altered, with the source data being switched between various layers of mapping information.
- maps could be provided at 1:1,000,000, 1:250,000 raster and 1:50,000 raster.
- the mapping application is configured to initiate displaying in the 1:50,000 raster, the closest zoom setting in the present example.
- the source data for the mapping information is processed to include a limited number of colours to provide smaller file sizes when downloading the tiles.
- a user can bookmark a selected map location in the list of favourites, by selecting an Add To Favourites option.
- the mapping application can be configured to respond to user input (e.g., as a result of a point and click operation at a current cursor position) to cause a current location to be added to the list of favourites.
- An Add To Favourites screen view can be provided in which the user can enter text describing the current location, such as “work” or “home”. As the user may have scrolled a fair distance from a previously searchable place, the user can enter a new place name to identify the current cursor point for each favourite saved.
- the Favourites option is selected from the main menu, the user can jump to one of the previously stored map positions, with any map not currently stored being retrieved from the map server on the network.
- the mapping application can be arranged to store the last displayed screen maps in the memory 36 on the mobile telephone to enable further viewing later without additional access to the network.
- mapping application is designed to enhance usability by downloading a greater area of mapping that can be viewed at once on the screen. This is illustrated in FIG. 6. This means that after an initial wait for the first image, the surrounding images can also be downloaded in the background. Thus, when the user is ready to scroll to see an adjoining mapping on the “next screen”, the data can already be provided in the mobile telephone, whereby scrolling can be seamless in all directions until the user has reached the edge of the total area of the original download. By phasing the downloading in this way, the user experience of using mapping on a mobile telephone can be optimised.
- a point 75 in a map field 74 which can, for example, be data representing the map of a complete country.
- the mapping application can, in a series of requests messages to the map server, via the telephone network, request the download of a series of map tiles.
- the map server can then be operable to download the selected map tiles.
- mapping application in response to identifying the point 75 , maps application sends a series of requests to the map server to download nine tiles of map information T 1 -T 9 surrounding the selected location.
- the area represented by the nine tiles is greater than the display window formed by the display 22 on the mobile telephone.
- the data can be loaded in nine tiles of 100 pixel square images in the PNG format. The average data volume of these tiles is approximately 9 KB.
- the data transfer rate is typically in the range of 10-20 kbps (kilobits per second). At such a download rate, each tile can be provided in about 8 seconds.
- GPRS General Packet Radio Service
- a status bar can be displayed to show the current progress of the data download. After a tile has been is downloaded, it can then be displayed to the user during the downloading of the remaining tiles. In this manner, the user can be provided fairly rapidly with part of a map relating to the selected location, with the remaining parts being supplied while the user is able to review the information downloaded in the first tile.
- the central tile T 1 as represented in FIG. 6 is downloaded first, then the part of the map centred on the location 75 selected by the user can be made available to the user first.
- the tiles T 3 , T 5 , T 6 and T 8 could then be downloaded next, with the corner tiles T 2 , T 4 , T 7 and T 9 being provided last. If this order is followed, then those tiles which contribute most to the displayed part of the map are provided first, with the tiles which contribute least being displayed subsequently. It will, however, be appreciated that in other examples, another order of downloading of the tiles could be provided.
- each tile is downloaded, it is cached in at least one of the primary and secondary caches 52 and 54 in the memory 36 of the mobile phone.
- the screen image can be regenerated using the cached imaged tiles, to provide seamless scrolling of the image represented in the display 20 . This avoids a stepping approach from one image to another, and makes it much easier to view an exact area of interest.
- the image displayed on the screen can be centred to any exact location.
- the scrolling can be configured to work in all directions for the current layer of mapping, and theoretically as far as the total area of mapping for that layer on the server.
- the operation of the cursor can be configured to be such that the user can move the cursor to the edge of a displayed screen area.
- Such an operation can be interpreted by the mapping application as a request to download further image tiles in the direction represented by the edge of the screen area to which the cursor has been moved.
- FIG. 7 represents this process.
- the user moves the cursor 23 to the right hand edge of the screen area as represented by the arrow 78 .
- This is interpreted as a request for further mapping information to the right (East) of the currently displayed area, whereby the mobile phone mapping application requests the download of tiles T 10 , T 11 and T 12 from the server.
- the new tiles T 10 , T 11 and T 12 are cached in one of the caches 52 and 54 in the memory 36 in the mobile telephone as will be described later in more detail.
- the mobile phone mapping application can be configured to drop those tiles that are furthest from the currently viewed location in order to make way for the additional tiles T 10 , T 11 and T 12 . As indicated in FIG. 7, this could involve dropping tiles T 2 , T 7 and T 5 , (e.g., in that order). It should, however, be noted that this process is illustrated by way of example only in FIG. 7. Typically, the memory in the mobile telephone will be sufficient to hold more than the twelve tiles illustrated in FIG. 7.
- FIG. 8 represents an overview flow diagram of the operation of the mapping application on the mobile telephone.
- step 200 the user initiates the operation of the mapping application, for example by selecting an icon from the mobile telephone screen display.
- step 202 a user interface task is started and control passes to a user interface task 204 to be described later with reference to FIG. 9.
- step 206 a map builder task is started, control then passes to the map builder task at 208 , as will be described in more detail with reference to FIG. 15 later.
- a start HTTP request task is started, and control passes to the HTTP requester task 212 as described later with reference to FIG. 18.
- mapping application waits for exit to be selected.
- Step 216 the mapping application tidies up and closes down the tasks, before exiting.
- Step 218 represents the end of the program.
- FIG. 9 is a flow diagram giving an overview of the user interface task 204 .
- a user profile is set up from the record store 55 in the memory of the mobile telephone.
- a main menu is displayed on the screen, as described earlier.
- step 230 it is assumed that a user makes a user input by making a selection from the main menu screen described earlier.
- step 232 If, in step 232 , the user selects a gazetteer function, then in step 234 a gazetteer task, as described later with reference to FIG. 10, is called.
- step 236 If, in step 236 , the user selects a stored “favourite”, then in step 238 a process favourites task as described later with reference to FIG. 11 is called.
- step 242 a process user profile task is called.
- the process user profile task is described in more detail with reference to FIG. 12.
- step 244 the program exits at step 246 .
- FIG. 9 also shows a back button step 224 , which provides a re-entry point to the flow diagram of FIG. 9, as will be described with respect to the following figures.
- the continue user interface task 228 is a step providing re-entry to the flow diagram FIG. 9 from flow diagrams to be described later.
- FIG. 10 illustrates a process gazetteer task which is entered at step 234 (see FIG. 9).
- a gazetteer request is sent to the server.
- the gazetteer request will include the user identification of a location name, for example, as described earlier.
- step 254 a wait screen is displayed.
- step 256 results are received from the server.
- step 258 the results are displayed as a list.
- step 260 the user selects a place from the list, and in step 262 , a draw map display task is called as described later with respect to FIG. 13.
- FIG. 11 describes a process favourites task.
- the process favourites task is called at step 238 (see FIG. 9).
- step 272 a list of favourites stored in the record memory 55 of the client device are displayed as a list.
- step 274 the user selects a place from the list and in step 262 , the draw map display task to be described with reference to FIG. 13 is called.
- FIG. 12 illustrates a process user profile task.
- the process user profile task is called at step 242 , as described with reference to FIG. 9.
- step 282 a user profile is displayed to the user.
- step 284 the user is allowed to change user profile fields.
- step 286 the user profile as amended is stored in the record store 55 in the client device.
- step 224 control passes back to step 224 as shown in FIG. 9.
- FIG. 13 gives an overview of the draw map display task which is called from step 262 as shown in FIGS. 10 and 11 to display the map centred on the selected location.
- step 292 the currently completed composite map mosaic (i.e. the combination of the available map tiles) is obtained.
- step 298 the user input relates to movement of the cursor, for example by operation of a pointer device, then a cursor movement task 300 as described with reference to FIG. 14 is called.
- step 302 If in step 302 , the user input is representative of a request to zoom in, then in step 304 , a zoom in task as described later with reference to FIG. 19 is called.
- step 306 If in step 306 a user input representative of a request to zoom out is detected, then in step 308 a zoom out task as described with reference to FIG. 20 is called.
- step 314 pressing of a back button is detected, then in step 224 , the control passes back to the back button step 224 as shown in FIG. 9.
- FIG. 14 illustrates an example of a process of moving a received map image within the display of the mobile telephone 16 .
- a pointing device e.g., joystick
- movement of the joystick or other pointing device by the user is effected to cause movement of a displayed cursor.
- step 324 the map application checks the current position of the cursor on the display.
- step 328 the bounding box for the currently displayed image is moved in the direction corresponding to the direction indicated by the joystick movement.
- the pointing device operation is indicative of movement to the right where the cursor is already at the right hand edge of the display, then the map bounding box which corresponds to the boundary of the screen 20 is moved to the right is represented in FIG. 7. 2 .
- step 330 the cursor position is moved on the display.
- map builder task to be described with reference to FIG. 15 is notified in step 332 that is should regenerate the map display.
- the user interface task then continues at step 228 in FIG. 9.
- FIG. 15 is a flow diagram giving an overview of a map builder task.
- the map builder task is initiated at step 208 illustrated in FIG. 8, and is called by step 332 as shown in FIG. 14.
- step 346 the map builder task is operable to generate a list of map tiles that will build a composite map display. This step is described in more detail in FIG. 16.
- step 348 the map builder task is operable to indicate to the user interface task that a new composite map mosaic is available.
- FIG. 16 illustrates step 346 of FIG. 15 in more detail.
- FIG. 16 illustrates a process represented at 490 of generating a list of map tiles that will build a composite map display.
- step 492 the mapping application is operable to calculate a starting x co-ordinate of the bottom left hand map tile position and to round down to the current map tile size.
- step 494 the mapping application is operable to calculate the starting y co-ordinate of the bottom left hand map tile position and to round down to the current map tile size.
- step 498 the mapping application is operable to calculate the end y co-ordinate of the top right map tile position and to round down to the current map tile size.
- Step 500 represents the start of a loop including steps 502 , 504 and 506 that is operable to repeat steps 502 , 504 and 506 for all tiles that lie between the start and end x co-ordinates and the start and end y co-ordinates.
- the appropriate map tile image is obtained from an image manager (as described in more detail with reference to FIG. 17) and in step 504 , the tile is assembled into a composite map image.
- a test is made as to whether all tiles are now done, and if not, steps 502 and 504 are repeated for subsequent tiles. If in step 506 it is determined that all tiles have been done, then in step 508 , the control returns to the map builder task of FIG. 15, to proceed to step 348 .
- FIG. 17 represents the steps of getting a tile from a map image manager as called at step 502 of FIG. 16.
- step 518 a check is made if the required map tile image is in a primary cache in the mobile phone.
- step 520 If, in step 520 , it is determined that the tile is in the primary cache 52 , then in step 522 , the image data is retrieved from this primary cache 52 .
- step 520 if it is determined in step 520 that the map tile is not in the primary cache 52 , a check is made in step 524 whether the map tile image is in a secondary cache 54 .
- step 526 If in step 526 , it is determined that the tile is found in the secondary cache 54 , then data is retrieved from the secondary cache in step 528 , an image is generated from compressed data representative of that tile in step 530 and the images are stored in the primary cache in step 532 , the process of storing an image in the primary cache being described in more detail with reference to FIG. 19, below.
- step 534 a default “downloading” tile is added to the composite map image while the image tile required is downloaded.
- step 538 the required tile is returned to the requesting process (e.g., at step 502 in FIG. 16).
- FIG. 18 illustrates an example of a process for obtaining map tiles for generating a map display.
- step 352 a request queue is checked to see if any requests are queued.
- step 356 the process gets the first request from the queue.
- step 358 a web map server request is generated.
- step 360 the user name and password are added to the map server request to authenticate that request.
- step 362 the request is then sent to the server.
- step 364 a supply is subsequently received from the server.
- step 368 the received data is decoded into a map tile image.
- step 380 the received image is placed into the primary cache.
- step 382 image data is also placed into the secondary cache (that is, the undecoded data).
- step 384 the map builder task is notified that new map image data has arrived, in particular the map image data becomes available at step 536 in FIG. 17 whereby the image data can then be returned in step 536 of FIG. 17.
- FIG. 19 illustrates an example of a task of storing a decompressed map tile in the primary cache 52 . This task can be called by step 352 in FIG. 17, or step 370 in FIG. 18.
- step 382 the current capacity of the primary cache is checked.
- step 384 If, in step 384 , it is determined that a cache is full, then in step 386 , the distance of each map tile from the current cursor position on the map display is calculated.
- step 388 the map tile that is furthest away from the current cursor position is deleted from the primary cache.
- the new decompressed map tile is added to the primary cache in step 390 .
- This process then returns to step 392 to the step 532 , FIG. 17, or 370 , FIG. 18, that called this task.
- FIG. 20 illustrates an example of a task 400 of storing compressed map tiles in the secondary cache 54 . This task can be called by step 372 in FIG. 18.
- step 402 the current capacity of the secondary cache is determined.
- step 404 If in step 404 , it is determined that the secondary cache is full, then in step 406 , the distance of each map tile from the current cursor position on the map display is determined.
- step 408 the map tile that is furthest from the current cursor position is then deleted.
- the compressed map tile is added to the secondary cache in step 410 .
- This process then returns at step 412 to the step that called it (e.g. step 372 in FIG. 18).
- FIG. 21 illustrates an example of a task for zooming in an image. This process can be called, for example, from step 304 of FIG. 13.
- step 452 a check is made in response to a request to zoom in, whether the current scale is at the maximum zoomed-in level.
- step 454 If it is determined in step 454 that the image is fully zoomed in, then the process stops in step 456 .
- map product is changed to a larger scale product in step 458 , and the display is regenerated in 460 .
- step 462 the user interface task of FIG. 13 then continues.
- FIG. 22 illustrates an example of a task 460 for zooming out an image. This task can be called, for example, from step 306 of FIG. 13.
- step 472 a check is made in response to a request to zoom out, whether the current scale is at the maximum zoomed-out level.
- step 474 If it is determined in step 474 that the image is fully zoomed out, then the process stops in step 476 .
- map product is changed to a smaller scale product in step 478 , and the display is regenerated in 490 .
- step 482 the user interface task of FIG. 13 then continues.
- FIG. 23 illustrates a task whereby the user favourites may be updated. This task can be called by step 312 of FIG. 13.
- step 552 the current list of favourites is displayed as a list.
- step 554 the user is able to amend the list of favourites. This can include adding a favourite, but could also include deleting a favourite, or changing an order of the list of the favourites as displayed, whereby a particular favourite is displayed first.
- step 556 the updated favourites are stored in a record store, and in step 558 , the user interface task of FIG. 13 continues.
- a further function that can be provided in the context of the map application is to provide additional information regarding particular objects and/or locations represented on the map image. This can be performed, for example, by responding to a point and click operation using the pointing device. An example of this is illustrated with respect to FIG. 24.
- FIG. 24 is a flow diagram illustrating a point and click operation. This can occur at any time as an independent task.
- step 582 in response to a click operation using the pointing device, the map application is operable to check whether information for the currently identified cursor position is stored in the client cache.
- step 584 If it is determined in step 584 that information is stored in the cache, then this can be displayed in step 586 .
- the map application can be operable to send a request to the server for such information.
- the map application can be operable to receive the response from the map server, which response can either include information about the selected position, or a response indicating that no information is available. In either case, the response as received can be displayed to the user.
- FIG. 25 is a flow diagram giving an overview of a gazetteer function 602 performed by the server.
- the gazetteer function is operable to receive a request from the client for a gazetteer search.
- the search request will be in the form of one or more packets of information from the client, indicating the identity of the client (e.g. a telephone number) and an argument, for example all or part of a place name, a map reference, a location, or some other identifier.
- step 604 the server gazetteer function is operable to perform a search for matches with the received argument.
- the gazetteer function is operable to generate one or more packets of information including the list of matches and to return this to the client.
- step 608 this process terminates.
- FIG. 26 is a flow diagram giving an overview of a server tile process 610 .
- a server tile process is operable to receive a tile request from a client.
- the tile request can include one or more packets identifying the client (e.g. a telephone number) and information identifying the tile to be downloaded (for example the x and y co-ordinates of the tile within an overall image field).
- the request can also include an identification of a particular scale of image required.
- the server tile process is operable to process the tile for dispatch. This can involve identifying the appropriate tile information from a database 91 held in storage 106 , compressing the data in accordance with the appropriate format, “e.g., the “PNG” format described earlier, and applying appropriate packet headers.
- the tiles can be derived from data defining at least one layer of a map 91 held, for example in the storage 106 .
- various layers of mapping information could be provides, for example at 1:1,000,000, 1:250,000 and 1:50,000 scale.
- a different number of one or more layers and different scales could be provided, as required.
- different versions of the maps for example with different levels of details and/or colours could be provided for interfacing with different client devices depending on the communication bandwidth to, and the processing and storage capacity of the client device concerned.
- the client device is a “thin” client device such as a mobile telephone, that is a client device with a relatively low communication bandwidth and/or a relatively low storage capacity and/or processing capacity
- the source data for the mapping information is either initially held as, or is processed to provide a limited number of colours to provide smaller file sizes when downloading the tiles.
- the map could be held in a raster format, a vector format, or any other applicable format.
- the tiles can be compressed for transmission in, for example, the aforementioned PNG format.
- step 616 the packets of compressed tile data are transmitted to the client.
- step 618 this process terminates.
- FIGS. 25 and 26 provide examples of some of the operations of the server in communicating with a client device such as a mobile phone 16 . These operations can be provided using a server application 90 comprising program code held in the memory 104 .
- the above-described communication between the client device and the server is performed by transferring packets of data.
- the packets of data can be configured to include information identifying the client device and optionally additional information identifying a mapping session.
- a mapping session can be, for example, a period when the mapping application is active on the client device.
- the server can use the session information (or alternatively the client device identification) to record the map tiles that have been sent to the client during that session.
- the server can be operable to cancel the record for the session after a selectable time during which no further requests for downloaded tiles have been received.
- a portion of an image field (e.g., a map) to be displayed on a display at a client device (e.g., a thin client such as a mobile phone) is downloaded on request from a server as a plurality of image tiles representing respective portions of the image field.
- a first image tile represents a portion at the centre of the image to be displayed on the display and further image tiles represent portions surrounding the first tile.
- the total area of the image tiles exceeds the area of the display.
- Each tile is displayed as it becomes available. Additional tiles image can be requested automatically from the server in response to a user navigating to the edge of the displayed image.
- an application that can provide mapping services on a client device such as a mobile telephone.
- the described application enables the efficient and user friendly display of selected portions of a map and, optionally, information relating to the map.
- an embodiment of the invention can provide functions of a pan tool and an information or query tool.
- the pan tool enables moving, grabbing and scrolling of a current view location, and the information tool allows the interrogation of features shown on the map by a point and click process.
- a cursor can be controlled by a joystick on the mobile telephone and the map view can be moved as the cursor reaches the edge of the displayed image.
- the cursor can also be moved across features of the map and a query can be sent to the server by depressing the joystick. Depressing the joystick can either interrogate a feature shown at the location of the “click”, or can simply send co-ordinates as a request to the server for any information about the cursor location to be queried.
- the use of the three tasks illustrated in FIG. 13 enables a user to experience a more responsive map interface.
- the user interface task allows the cursor to be scrolled continuously without a stopping or jerking motion when the display boundaries are reached.
- the map builder task allows a map to be assembled quickly from existing map image tiles in the caches and to substitute a default “downloading” tile when the map image data is not present. This allows the composite map to be built while not having to wait for any network access. Separating the HTTP requester into a separate task prevents the user interface from “locking up” when network response is slow or the network has failed. Accordingly, having the map building task as a third task, which is separate from the network access (HTTP requestor) task and from the user interface task, means that smooth and seamless scrolling can be affected.
- a single tile is downloaded by the server in response to each request from the client device.
- the mapping application is designed for a mobile telephone with sufficient processing capacity to enable the calculation of the identity of each individual tile that needs to be downloaded.
- the mapping application is operable to calculate the x and y co-ordinates of the individual tiles, and to provide this information to the server.
- the client device does not actually calculate the tiles to be downloaded, but merely provides the selected location to the server, whereby the server will perform the identification of the individual tiles to be downloaded, and then will download those tiles as a stream in response to a single initial request based on a particular location from the client device.
- the process is designed for a client device which does not have sufficient processing power to identify the tile co-ordinates, or where, for example, the data to be downloaded is not available in a format which is conducive to ready determination of x and y co-ordinates, for example, for the individual tiles. It will be appreciated that these are merely examples of situations where one may wish to employ a different downloading strategy to the one described in respect of the above referenced specific example.
- references made to the display of images does not refer to a particular format in which data is stored.
- the data may be stored and represented using a raster-scanned image.
- the image may be stored and generated from data stored in a vector, or vectorised, format.
- FIGS. 27 to 29 illustrate an example embodiment of the invention in which image data is provided in vector format.
- An example of vector format mapping can provide different layers of features. For example in one example, layers as set out in Table 2 below can be provided. TABLE 2 Layer Category Types 1 Polygons Land type Buildings Roads Water Etc. 2 Lines Boundaries Fences Etc. 3 Text Road names Building numbers Etc. 4 Points Points of interest Post Offices Public Houses Libraries Etc.
- Table 2 illustrates only one possible example of features forming a vector representation of mapping information. Various examples of features, or vector items represented in Table 2 are explained in more detail below.
- the polygons form features defining closed areas of mapping information bounded by vectors.
- a rectangle having corners at co-ordinates (i,j), (i+1,j) (i+1j+1) (i,j+1), respectively, can be represented by those co-ordinates, whereby the square is then bounded by a sequence of four vectors that join the comer points.
- a circle can be represented by a sequence of co-ordinates of points along the circumference of the circle at a desired resolution, whereby the circle is then bounded by a sequence of vectors that join those points. The more co-ordinates and the more vectors that are used, the closer the representation approximates to a true circle.
- Polygons can be represented in a similar way by defining the co-ordinates of selected points on the boundary of the polygon.
- Polygons can be used to define, for example the outline of parcels of land, buildings, roads, water features such as rivers, lakes etc., and so on.
- Each polygon has a unique identifier (UID).
- UID unique identifier
- An example of a data structure entry for an instance of a polygon can include a plurality of fields.
- a UID field can hold the UID for an instance of a polygon.
- a polygon type field can identify a type of area identified by the instance of the polygon (e.g., a land use type, etc).
- a descriptive text field could be provided to hold a description of an instance of the polygon.
- a co-ordinates field can contain a series of sets of co-ordinates defining the closed boundary of the instance of the polygon.
- a further field can include bounding box co-ordinates (e.g., co-ordinates defining for example the bottom left and top right, or the top left and the bottom right, of a rectangle bounding the feature) to define the extremities of the feature.
- a polygon data structure entry can also include one or more display parameter fields defining display parameters for the instance of the polygon including, for example, a defining of the boundary representation, a fill colour and or pattern, etc. If the display parameters field is not provided or not populated in a polygon data structure entry, then display parameters can be generated by a display engine in a programmable manner using information from the other fields of the data structure entry for the instance of the polygon. A display engine can also choose to use alternative display parameters in a programmable manner in preference to using provided parameters.
- lines form linear features on a map, including features such as boundaries.
- features such as boundaries.
- administrative and political boundaries can be represented by such lines.
- physical features such as walls, fences, hedges, etc can be represented by lines.
- the lines can be defined in the same manner as the polygons, that is using a sequence of vectors, although in the case of lines, the objects do not need to be closed, and the lines do not define the interior of an area bounded by such lines in the case that they do form a closed sequence of vectors.
- Each line has a unique identifier (UID).
- UID unique identifier
- An example of a data structure item for an instance of a line can include a plurality of fields.
- a UID field can contain the UID for an instance of a line.
- a line type field can identify a line type for the instance of the line.
- a descriptive text field could be provided to hold a description of an instance of the line.
- a co-ordinates field can contain a series of sets of co-ordinates defining co-ordinates of the instance of the line.
- a further field can include bounding box co-ordinates (e.g., co-ordinates defining for example the bottom left and top right, or the top left and the bottom right, of a rectangle bounding the feature) to define the extremities of the feature.
- a line data structure entry can also include one or more display parameter fields defining display parameters for the instance of the line including, for example, the line representation, a colour, etc. If the display parameters field is not provided or not populated in a line data structure entry, then display parameters can be generated by a display engine in a programmable manner using information from the other fields of the data structure entry for the instance of the line. A display engine can also choose to use alternative display parameters in a programmable manner in preference to using provided parameters.
- text items provide further features.
- the text can represent any text information to be provided on the map including, for example, the names of road, numbers of buildings, etc.
- Each text item can be provided with a unique identifier (UID).
- UID unique identifier
- An example of a data structure entry for a text item can include a plurality of fields.
- a UID field can contain the UID for an instance of text item.
- a type field can identify a text type for the instance of the polygon (e.g., a name, a number etc.).
- a descriptive text field could be provided to hold additional information about the text item.
- a text field can contain the text to be displayed.
- a co-ordinates field can contain co-ordinates identifying a mapping location for the text.
- An orientation field can indicate the orientation of the text.
- a further field can include bounding box co-ordinates (e.g., co-ordinates defining for example the bottom left and top right, or the top left and the bottom right, of a rectangle bounding the feature) to define the extremities of the feature.
- a text data structure entry can also include one or more display parameter fields defining display parameters for the instance of the text item including, for example, a defining of the text font and size, a text and background colours, etc. If the display parameters field is not provided or not populated in a text data structure entry, then display parameters can be generated by a display engine in a programmable manner using information from the other fields of the data structure entry for the instance of the text item. A display engine can also choose to use alternative display parameters in a programmable manner in preference to using provided parameters.
- point items also form features.
- the point items can represent, for example, points of interest, the locations of post office, public houses, libraries, tourist attractions, etc.
- Each point item can be provided with a unique identifier (UID).
- UID unique identifier
- An example of data structure item for an instance of a point item can include a plurality of fields.
- a UID field can contain the UID for an instance of a point item.
- a type field can identify a point type (e.g., a type of point of interest).
- a descriptive text field could be provided to hold a description of an instance of the point item.
- a co-ordinates field can contain co-ordinates identifying a mapping location for the point item.
- a further field can include bounding box co-ordinates (e.g., co-ordinates defining for example the bottom left and top right, or the top left and the bottom right, of a rectangle bounding the feature) to define the extremities of the feature.
- a point data structure entry can also include one or more display parameter fields defining display parameters for the instance of the point item including, for example, a display representation of the point item, etc. If the display parameters field is not provided or not populated in a point data structure entry, then display parameters can be generated by a display engine in a programmable manner using information from the other fields of the data structure entry for the instance of the point item. A display engine can also choose to use alternative display parameters in a programmable manner in preference to using provided parameters.
- the UIDs for the polygon, line, text and point features can be selected such as readily to identify the category (i.e. polygon, line, text or point type) and type (e.g., for a polygon, whether it relates to a land type, building, roads, water, etc.) of feature. Alternatively, they may simply be allocated in a random or sequential manner as new features are defined.
- Table 3 illustrates a specific example data structure items (described in more general terms above) for polygon, line, text and point features.
- each data structure entry includes all of the common parameters plus the additional parameters according to the feature category (polygons, lines, text and points).
- IMapRectangle // The bounding box of the feature bbox; Long toid; // The UID int featureCode; // What a feature is (i.e.
- Tiles can be identified with respect to a single reference point, for example the bottom left comer. However, where the tile has a given size, bounding box co-ordinates for the tile, for example co-ordinates defining the bottom left and top right of the tile, can be derived therefrom.
- the bounding box co-ordinates of a tile are used in the present example to determine whether a particular feature overlaps, or lies at least partially with, a given tile.
- the features can also be grouped together according to the features that map to a given tile. This grouping can be termed a feature collection.
- the data structure entry for such a grouping can be termed a feature collection entry.
- Table 3 below illustrates the format of a feature collection entry.
- An example of the present invention makes use of a database held in a server that contains mapping data in vector format.
- the vector data features can be as described above.
- the format in which the data is held in the server database and the structure of the server database lies outside the scope of the present document, and is not needed for an understanding of the present invention.
- the server database format could employ any number of conventional database formats for spatial data, for example a quad-tree or R tree format. Quad trees and R-trees provide tree-based structures for the storage of spatial data, enabling retrieval of data items according to their spatial locations.
- the client device is able to maintain a subset of the data stored in the server. It would be possible to maintain a quad-tree or R-tree based representation. However, in the present example, as the number of tiles of information that are maintained at any one time is not large, a simpler structure for the local storage of data is employed.
- FIG. 27 illustrates an example of a data structure that can be generated in a client for representing an association between features and tiles that are being held at the client.
- the data structure can be held in the primary cache 52 (FIG. 5).
- a tile entry is provided in a data structure for each tile of mapping data that is held by the client.
- FIG. 27 illustrates three such examples of tile entries 702 , 704 , 706 for illustrative purposes. Of course, there can be more or less tile entries, but in a typical implementation, more such tile entries may be held by the client at any one time.
- each tile entry 702 , 704 , 706 includes a field 732 , 734 , 736 defining a unique identifier for the tile.
- Each tile entry can, for example, be addressed using the unique identifier for the tile.
- each tile entry can include further fields (not shown) pointing to tile entries for respective adjacent tiles held in the in the manner of a linearly or two dimensionally (north-south and east-west) linked list.
- each tile entry also includes a set of pointers to feature entries for each feature that at least partially falls within the tile concerned.
- entry 702 includes a list of links (e.g., pointers) 742 to a set of feature entries 708 , 710 , 712 .
- the tile entry 704 includes a list of links 744 to a set of feature entries 714 , 716 , 718 and the tile entry 706 can include a list of links 746 to a set of feature entries 720 , 722 , 724 .
- Each of the feature entries can have a format for a feature of layers 1 to 4 as appropriate.
- the feature entries can have a format as described above with reference to Tables 2 and/or 3 above.
- the feature entries can optionally be held as part of the tile entries. However, as one feature may extend over multiple tiles, the use of links to feature entries that are accessible from multiple tile entries provides more efficient storage of the feature information.
- the tile entries can be configured as, or include, a feature collection entry as described with reference to Table 4.
- Feature information can be downloaded and displayed on a tile by tile basis using an approach as described above with reference to FIGS. 8 to 26 as for raster-based mapping information.
- various optimisations can also be employed to enhance the perceived downloading and display rate to the user and/or also to actually increase the downloading rate. For example, as at least some features may extend across multiple tiles, the need to process a feature multiple times can be avoided FIG.
- FIG. 28 illustrates a number of tiles identified as (x ⁇ 1,y ⁇ 1), (x,y ⁇ 1), (x+1, y ⁇ 1), (x ⁇ 1,y), (x,y), (x+1, y), (x ⁇ 1,y+1), (x,y+1), (x+1, y+1) and illustrates some features may exist within one tile only (e.g., the representations of the houses 760 and 764 ) whereas others of the houses exist within multiple tiles, for example the representations of the house 762 , and the representations of the area 766 , of the boundaries 770 of the roads and the road centrelines 768 .
- FIGS. 29A to 29 G illustrate the successive display of features on a display of a client device.
- the tile information is downloaded and displayed in an order bottom left, mid left, top left, bottom middle, mid middle, top middle, bottom right, mid right and top right.
- larger features are displayed first, with smaller features being displayed later.
- the downloading and/or display of large features for a next tile can be started before the downloading and/or display of the remaining features for a previous tile, further to enhance the perceived rate of downloading of the tiles to the user.
- the client device holds in the primary cache a list of features already received and not discarded, this can be used to avoid downloading a duplicate of a feature, when that feature is already held by the client device.
- the client device can be programmed to comparing the bounding box co-ordinates of each of the features already held in the primary cache to the boundary box co-ordinates of the new tile to be downloaded.
- the UID of a feature that is found to overlap the new tile is added to an exclusion list for the new tile.
- the client device is then operable to send a request for the new tile to the server.
- the tile request identifies the new tile and includes the exclusion list of feature UIDs that do not need to be resent.
- the server will then send all vectors in the requested tile, minus any that are on the excluded list. In this way any large polygons or lines that overlap multiple tiles will be transferred only once.
- the client device uses the received information to update the data structure identified in FIG. 27.
- the client device effectively constructs a subset of the data structure of the complete mapping information held by the server. Maintaining a subset of this information corresponding to the mapping area to be displayed by the client device and surrounding areas facilitates the display of the information on the client device can be effected in an efficient manner.
- the data held in the primary cache 52 can comprise the relevant subset of the mapping data, for example using a data structure as represented in FIG. 27 including tile entries and the feature entries for the tiles currently held by the client device.
- the secondary cache 54 is not used. This is because the data received for a tile at any time may not include all of the feature information that is to be displayed within the tile (because some of those features may already have been stored in the primary cache on receipt of data for a previous tile). As a result, the compressed data received for a given tile cannot be relied on as complete for the tile concerned. Accordingly, in such an example, the decision step 526 in FIG. 17 will always be answered in the negative.
- the secondary cache 54 can be used as the data received for a tile at any time includes all of the feature information to be displayed within the tile. Accordingly, the compressed data received for a given tile can be relied on as complete for the tile concerned. In such a case, the compressed data can be stored in the secondary cache and the decision 526 in FIG. 17 could give a positive or negative result as appropriate.
- steps 362 and 364 of sending a request to the server and obtaining a reply from the sever can involve a series of steps.
- step 362 when the client device requires the downloading of features for a new tile, it compares the bounding box co-ordinates of each of the features already held in the primary cache to the boundary box co-ordinates of the new tile to be downloaded.
- the client device is operable to compile an exclusion list for the new tile to include the UIDs of all features that overlap the new tile.
- the client device is then operable to send a request for the new tile to the server including the identification of the new tile and the exclusion list of feature UIDs that do not need to be resent.
- the server is then operable to compare the bounding box co-ordinates of all features that it holds to the bounding box co-ordinates of the new tile. When it identifies a feature that overlaps the new file, it then checks the UID of that feature against the UIDs in the exclusion list. If there is a match between the UID of the identified feature and a UID in the exclusion list, then the feature is not resent. Otherwise, the identified feature is sent to the client device. In the present example the server compiles a set of features to be sent and sends these in one message or set of messages to the client device. However, in other examples, the features could be sent in separate messages.
- the data to be transmitted is compressed before being sent to the client device to reduce the transmission time.
- the received data can then be decompressed (decoded) in step 368 and the features can be stored in the primary cache 52 (FIG. 5) in step 370 .
- the secondary cache is not used.
- the compressed data can also be stored in the secondary cache 54 (FIG. 5).
- tiles that are no longer used can be deleted, for example in step 388 of FIG. 19.
- an associated feature entry is only deleted if it is not used by any other tile entry currently held in the primary cache.
- a feature is stored once and can be referred to by multiple tiles, it will only be deleted when no other tile entry identifies its UID.
- the client device checks whether any other tile entry identifies a feature before deleting a feature associated with the tile entry to be deleted.
- a low detailed image may include, for example, representations of major roads and major geographical features only, where as an image with full detail may include the full detail of the roads, geographical features, etc held for a particular map rendering.
- raster-scanned image data is used to generate the maps, one or more sets of raster image data could be provided with, for example, a first raster scanned image including only significant features, and a second raster scanned image containing all details for the map representation concerned.
- the use of the low detail raster scanned format will enable the more rapid download of image data, as this will enable a compression algorithm more effectively to compress the image, there being less data within the image.
- the image data is stored in vector format
- the lower detailed image data can relate to the selection of certain of the vector stored image features only, whereas the full detail or higher detail can include the selection of all of the vector stored image features.
- tile T 1 could be downloaded in full detail, with tiles T 2 -T 9 being downloaded with a lower detail initially, and then subsequently updated with higher detail images.
- that portion of the map could be provided to the user in full detail, with the surrounding locations being provided more rapidly, but in lower detail initially.
- the detail of the surrounding tiles T 2 -T 9 could then be supplied subsequently in high detail.
- the order of the supply of the tiles T 2 -T 9 could be made directly responsive to the user navigating or scrolling, the cursor in a given direction on the display screen 22 using the pointing device 24 .
- the cursor in a given direction on the display screen 22 using the pointing device 24 .
- tile T 8 could be supplied before any other tile that has not as yet been downloaded.
- the tiles T 10 , T 11 and T 12 could initially be downloaded in lower detail and then be updated in higher detail. Indeed, as an enhancement to the process described with reference to FIG. 7, when the tiles T 1 -T 9 have initially been downloaded (as represented in FIG. 7. 1 ) it would be possible for the application to download a complete set of files surrounding files T 1 -T 9 (i.e. on all four sides), at least initially, in lower detail as a background task, whereby in the event that the user were to scroll rapidly to one side, there tiles surrounding the initially selected set of nine tiles will already have been downloaded, at least in lower detailed form.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
- Controls And Circuits For Display Device (AREA)
- Telephonic Communication Services (AREA)
Abstract
A portion of an image field (e.g., a map) to be displayed on a display at a client device (e.g., a thin client such as a mobile phone) is downloaded on request from a server as a plurality of image tiles representing respective portions of the image field. A first image tile represents a portion at the center of the image to be displayed on the display and further image tiles represent portions surrounding the first tile. The total area of the image tiles exceeds the area of the display. Each tile is displayed as it becomes available. Additional files image can be requested automatically from the server in response to a user navigating to the edge of the displayed image.
Description
- The invention relates to providing image data from a server to a client device.
- There is an increasing demand for image data to be transmitted from a server to a client device. It has been commonplace for many years to transmit static and moving images from a server computer to a client computer via a network such as the Internet, or an intranet. More recently, it has also become possible to transmit images from a server computer to a hand held device such as a mobile telephone. The images that are transmitted in this case are sized and at a resolution to fit within the screen of the mobile telephone. The bandwidth available on mobile telephones for downloading images is currently much less than that available for computer networks, and accordingly, the time taken to download an image to a mobile telephone is longer than that for downloading an image of equivalent size and resolution to a computer. Downloading images can also be expensive, as current charging regimes are based on the number of bytes downloaded.
- It is also known to transmit extracts of maps from a server computer to a client computer via a network such as the Internet, or an intranet. Typically, a user at a client station can select a portion of a map to be accessed and then the selected portion is downloaded from the server to the user's client computer. However, if the portion initially selected by the user is incorrect, or the user wishes to view an adjacent portion of the map, it is necessary to repeat the process of downloading an image. If such a technique were to be applied to a mobile telephone, with the small image size, and the long download time, it will be appreciated that the process of identifying a required portion of a map can be a long and expensive process. Also, navigating around a map would be a long, tedious and expensive process.
- Accordingly, the invention seeks to provide a more efficient and flexible way of downloading images such as maps that is suitable for use with a mobile telephone.
- An aspect of the invention provides a method of displaying part of an image field on a display at a client device, the method comprising the client device: responding to user selection at the client device of a location within the image field to request from a server over a network, a plurality of image tiles including a first image tile that represents a portion of the image field including the selected location and a plurality of further image tiles represent portions of the image field surrounding the portion of the image field represented by the first tile; receiving from the server via the network, the plurality of requested image tiles; and displaying at least a part of the first image tile and the further image tiles on the display, wherein a total area of the first and further image tiles exceeds the area of the display.
- Supplying the image data in tiles enables rapid download of at least a portion of the image to be displayed with additional portions of the image field being subsequently downloaded. This can provide the user with at least a portion of the image of interest in a rapid manner without having to wait for the whole image to be downloaded. This is of particular interest where the image portions are transmitted in a compressed form, as each tile can be processed for compression and decompression separately.
- By automatically providing tiles that cover an area larger than the available display area, image data for the portion of an image field immediately surrounding the displayed area can be held in the client device for access by the user without requiring a separate downloading step. The tiling approach means that at least one tile can be displayed as further tiles are downloaded to complete the portion of an image field immediately surrounding the displayed area. In this way the user is provided with image data in at least a part of the display while the download is completed.
- The invention finds particular, but not exclusive, application where a relatively low bandwidth for the transfer of image data between the server and the client device is available, and/or where the client device has limited display, memory and/or processing capacity. An example of such an application is where the client device is a so-called thin client such as a mobile telephone or a personal data assistant (PDA).
- In one example each image tile can be requested and received individually by the client device, that is each request relates to a single image tile. The client device may indicate to the server the identity of the tile to be downloaded. This can enable the efficient transfer of image tiles. The client device is operable to compute the identity of and request the required tiles. The image data may be generated from vector information. The client device may then be operable to determine the vector information needed to generate image tiles and may request the appropriate vector information from the server.
- In another example, the client device can identify the location within the image field to the server and in response thereto the client device receives from the server the first and further tiles.
- Advantageously, each tile is displayed as it becomes available. If the first image tile is received first, then this enables the central area of the display to be displayed before the peripheral areas. In one example, area of the first image tile is less than the area of the display, so that the central area of the display is occupied by the first image tile. Eight further image tiles can be arranged to surround the first image tile to complete the display area. In an example of the invention, the eight further image tiles extend beyond the edge of the display such that the first image tile and the eight further image tiles together provide a total area that exceeds the area of the display.
- One option to further reduce the initial download time, would be for at least selected image tiles to be received initially in lower detail, and then to be updated in higher detail.
- Subsequently to the receipt of the first image tile and the plurality of further image tiles, additional image tiles could be received representing portions surrounding the first and plurality of further tiles. The additional image tiles can be received as a background task that is transparent to the user. These additional image tiles might also be received, at least initially, in low detail, whereby the additional image tiles could be made available at the client device for use if required at low cost in terms of bandwidth and storage requirements.
- In response to user input at the client device requesting navigation in a selected direction with respect to the displayed image, the client device can be operable to request from the server, additional image tiles in the selected direction with respect to the currently displayed image tiles or image tile portions. If the additional images are already available, then these could be displayed in low resolution and the higher resolution images could be requested from the server.
- To aid navigation, the user device can be operable to display a pointer, cursor, or the like, on the display and can include a navigation input control (e.g., a pointing device such as a joystick control) for controlling the position of the pointer. The client device can be arranged, for example, to respond to the cursor reaching a boundary zone of the display as a request for navigation in a direction represented by that boundary zone.
- The image tiles can be transmitted from the server to the client device in a compressed form. The client device is operable to cache received image tiles in memory in the client device. A primary cache can be used to hold decompressed image tiles for display and a secondary cache can be used to hold compressed image tile data that have been received from the server but has not be decompressed for display. Where cache capacity constraints dictate that a cached image tile has to be discarded to make way for a newly received image tile, the image tile representative of an image portion furthest from the currently displayed image tile can be discarded, or purged.
- In an example of the invention, the image field is a map, and the image tiles are representative of respective portions of the map. The map can be defined in at least a first predefined scale, and the image tiles can be derived from the map at a selected scale. The selected scale can be selectable by the user at the client device.
- In one example, subsequently to receiving the first and further image tiles at a selected scale, a set of one or more image tiles can be received at a different scale, with the set of one or more image tiles at a different scale being cached in the client device. For example, a larger and/or smaller scale representation of the map could be downloaded as a background task so that the user could rapidly be provided with a larger and/or smaller scale map on demand.
- Information relating to objects represented by parts of the image tiles can be associated with the image tiles so that in response to user selection of an object on the display, for example by a point and click operation using a pointing device, the information relating to the object can be supplied to the user. Supplying the information can involve providing information that was cached with the image tile at the client device. Alternatively, or in addition, supplying the information can involve requesting the information from the server via the network.
- Another aspect of the invention provides a method of supplying a portion of an image field to a display at a client device, the method comprising a server: receiving one or more requests from a client device via a network; and in response thereto supplying a plurality of image tiles representative of respective portions of the image field and including a first image tile representing a portion at the center of the image to be displayed on the display and a plurality of further image tiles representing portions surrounding the first image tile, whereby the total area of the image tiles exceeds the area of the display at the client device.
- A further aspect of the invention provides a computer program comprising program instructions operable to cause a client device to perform the steps of a method of displaying a portion of an image field on a display at a client device. Another aspect of the invention provides a computer program comprising program instructions operable to cause a server to perform the steps of a method of supplying a portion of an image field to a client device. In each case, the computer program can be provided on a carrier medium.
- A further aspect of the invention provides a client device comprising a processor, memory, a communication interface and a display, the client device being operable: to respond to user selection at the client device of a location within the image field to request from a server over a network, a plurality of image tiles including a first image tile that represents a portion of the image field including the selected location and a plurality of further image tiles represent portions of the image field surrounding the portion of the image field represented by the first tile; to receive from the server via the network, the plurality of requested image tiles; and to display at least a part of the first image tile and the further image tiles on the display, wherein a total area of the first and further image tiles exceeds the area of the display. The client device can be programmed by a computer program comprising program instructions operable to cause the client device to perform the steps of the method described above of displaying a portion of an image field on a display at a client device
- Another aspect of the invention provides a server comprising a processor, memory and a communications interface, the server being operable to receive one or more requests from a client device via a network; and in response thereto to supply a plurality of image tiles representative of respective portions of the image field and including a first image tile representing a portion at the centre of the image to be displayed on the display and a plurality of further image tiles representing portions surrounding the first image tile, whereby the total area of the image tiles exceeds the area of the display at the client device. The server can be programmed by a computer program comprising program instructions operable to cause the server to perform the steps of the method described above of supplying a portion of an image field to a client device.
- Further aspects and advantages of the invention will become apparent from the following description of particular embodiments.
- Embodiments of the present invention will be described hereinafter, by way of example only, with reference to the accompanying drawings in which like reference signs relate to like elements and in which:
- FIG. 1 is an overview of a network in accordance with a present invention with at least one client device operable to display a portion of an image field on a display at the client device and at least one server operable to supply a portion of an image field to the client device;
- FIG. 2 is a representation of such a client device in the form a mobile telephone configured to display a portion of an image field on a display;
- FIG. 3 is a functional block diagram of parts of the client device of FIG. 2;
- FIG. 4 is a schematic representation of software components for controlling the operation of the client device of FIG. 3;
- FIG. 5 is a functional block diagram of parts of a server;
- FIG. 6 is a schematic representation of a plurality of image tiles forming a portion of an image field;
- FIG. 7 illustrates an example of scrolling image tiles on the client device;
- FIG. 8 is a flow diagram summarising the operation of an example of a mapping application on the client device of FIG. 3;
- FIG. 9 is a flow diagram of a user interface task of the mapping application of FIG. 8;
- FIG. 10 is a flow diagram of a gazetteer processing task of the mapping application of FIG. 8;
- FIG. 11 is a flow diagram of a favourite processing task of the mapping application of FIG. 8;
- FIG. 12 is a user profile processing task of the mapping application of FIG. 8;
- FIG. 13 is a flow diagram of a map display drawing task of the mapping application of FIG. 8;
- FIG. 14 is a flow diagram of a cursor movement task of the mapping application of FIG. 8;
- FIG. 15 is a flow diagram giving an overview of a map builder task of the mapping application of FIG. 8;
- FIG. 16 is a flow diagram of a task for generating a list of map tiles forming part of the map builder task of FIG. 15;
- FIG. 17 is a flow diagram of a task for getting a tile from a map image manager for the task of FIG. 16;
- FIG. 18 is a flow diagram of an HTTP requestor task of the mapping application of FIG. 8;
- FIG. 19 is a flow diagram of a task for storing an image in a primary cache for the mapping application of FIG. 8;
- FIG. 20 is a flow diagram of a task for storing in a secondary cache for the mapping application of FIG. 8;
- FIG. 21 is a flow diagram of a task for zooming in for the mapping application of FIG. 18;
- FIG. 22 is a flow diagram of a task for zooming out for the mapping application of FIG. 8;
- FIG. 23 is a flow diagram of a task for updating favourites;
- FIG. 24 is a flow diagram part of an example of a mapping application for a point and click operation on the client device;
- FIG. 25 is a flow diagram of a server gazetteer function;
- FIG. 26 is a flow diagram of a server tile process;
- FIG. 27 is a schematic representation of a data structure for holding a vector data for forming image tiles;
- FIG. 28 is a schematic representation of displayed image tiles comprising vector data; and
- FIGS. 29A to29G illustrate successive stages in displaying vector data for an array of nine tiles.
- While the invention is susceptible to various modifications and alternative forms, specific embodiments are shown by way of example in the drawings and are herein described in detail. It should be understood, however, that drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the invention is to cover all modifications, equivalents and alternatives falling within the scope of the claimed invention.
- Embodiments and examples are described hereafter by way of example by way of example only in the following with reference to the accompanying drawings.
- An embodiment of the invention will be described in which access to map information is provided over a network, providing the user with a possibility of selecting a particular area of a map to be viewed, and to navigate around that map, while viewing viewing the map in real time.
- FIG. 1 represents a schematic overview of a network including a
server 12 and a plurality of client devices connected to the network. The client devices shown include a personal data assistant (PDA 14), amobile phone 16 and acomputer 18. In the particular example to be described, it is assumed that thenetwork 10 is a radio telephony network (e.g., a mobile or cellular telephone network), and that each of the devices shown include a transmitter/receiver connectable to the mobile telephone network. It is, however, to be understood that other forms of network such as the Internet, an intranet, or other wired or wireless network could be employed with the server and the devices being provided with appropriate communication interfaces to thenetwork 10. - FIG. 2 is an illustrative representation of a client device in the form of a mobile, or cellular, telephone of the type described as a “smart phone”, that is a mobile, or cellular, telephone that is programmable to provide enhanced functionality beyond basic telephonic functions. As illustrated in FIG. 2, the
mobile telephone 16 includes adisplay 20, which in the example illustrated in FIG. 2 is displaying aportion 22 of a map and acursor 23. Themobile telephone 16 also includes input devices in the form of a pointing device 24 (e.g. a joystick) and akeyboard 26. Themobile telephone 16 also includes an aerial 28, in the present instance enclosed within thehousing 25 of themobile telephone 16. - FIG. 3 provides a schematic overview of functional components of an example of a client device in the form of a mobile telephone such as the smart phone represented in FIG. 2. As shown in FIG. 3, these functional components include the
display 20, the pointing thedevice 24, thekeyboard 26 and the aerial 28 already mentioned. They also include aprocessor 32 which co-operates with adisplay driver 34 for controlling thedisplay 20, amemory 36 for storing program information and data, and acommunication interface 38 for interfacing with the aerial 28. Theprocessor 32,display driver 34,memory 36 andcommunications interface 38 can be provided by one or more integrated circuits represented generally at 30. - FIG. 4 it is schematic representation of typical components of a
server 12. As shown in FIG. 9 the server includes aprocessor 102, amemory 104,storage 106, acommunications interface 98 and a transmitter/receiver 96 connectable to the network, for example by means of awireless link 92 using an aerial 94. Theprocessor 102, thememory 104, thestorage 106 and thecommunications interface 98 can be connectable by a bus system or the like, 100. Optionally, the server may also be configurable on site by means of adisplay 108 and user input devices such as a keyboard and/orpointing device 110. Alternatively, it could be controlled remotely, for example over the Internet. - As mentioned above, the present example of a client device can be one of the so-called smart phones that are programmable to provide enhanced functionality beyond simple telephone functions. Examples of such so-called smart phones are available from most mobile telephone manufacturers, for example the Nokia 7650 phone and the Ericsson P800, currently on the market. Such smart phones can be configured to operate under any one of a number of mobile telephone standards. A smart phone includes a graphical use interface and a suite of applications built around a core operating system, for example the Symbian operating system. Software development kits are provided for creating applications, in, for example, the Java™ or C++ languages.
- FIG. 5 is a schematic representation of software components that can be held in the
memory 36 the smart phone and can be operable to control the functioning of the smart phone. As illustrated in FIG. 5, the software can include acore operating system 40, for example based on the Symbian operating system. Asystem layer 42 provides extensions to the core operating system and provides an interface toapplication engines 44 and to a Javavirtual machine 48. Auser interface 46 co-operates with the Java and the application engines to enable one or morespecific user applications 50 to operate in the smart phone to control the operation of the smart phone in accordance with a customer's requirements. Also illustrated in FIG. 5 are aprimary cache 52 and asecondary cache 54. Image tiles that are currently visible on the map display can be held in decompressed format in theprimary cache 52. Image tiles that have been received from theserver 12 but are not currently being displayed can be held in compressed format in thesecondary cache 54. Arecord store 55 is also shown for storing operating parameters of a mapping application as will be described later. - The
Symbian operating system 40 is a multi-tasking operating system where applications are designed to interact with one another. For example, if a phone call interrupts a user composing an email message, the user can switch from email to a calendar application in the middle of a telephone conversation, or an incoming short messaging service (SMS) message may trigger the user to access a contact database within the system and to forward the SMS message on. - The
user interface 46 is based on the fact that a smart phone is intended as a hand-held mobile telephone, but is also operable to provide diverse applications and data communication. The user interface design will typically be structured to provide browsing elements and detailed views. - In a mobile telephone environment, a relatively small display is provided. In one example, the display may have a size of 176×208 pixels. Accordingly, it will be appreciated that a relatively small amount of information can be displayed on the viewable display at any one time. As mentioned earlier, a numeric keyboard is provided. This can include, for example, a 12-key numeric keyboard with function keys. Also, a pointing device, for example a joystick, a toggle button or a group of buttons can be provided.
- A mapping application can be configured to enable the display of a cursor on the display screen, and for the cursor to be manipulated using the pointing device. The pointing device can be configured such that it can be operated in “point and click” mode, whereby toggling the pointing device enables navigation by moving the cursor and firmly pressing the pointing device enables “clicking” on a location currently identified by the cursor. The use of such functions is well known in the computer arts, and is also known in smart phones that are already on the market.
- A mobile telephone such as a smart phone is able to upload and download information via the mobile telephone network through the
communications interface 38 and the aerial 28. It is also possible for programming to be affected through other connections, for example physical connections or using the Bluetooth™ standard, by way of example only. - The generation of user applications can readily be achieved using C++ or Java, for example. In particular, Java has become popular as a programming language and as a run-time environment over a wide range of platforms, and more recently in the field of mobile telephony. Programming such mobile telephones in the Java language is well understood in one skilled in the art. Indeed, program developer tool kits are available from, for example, the mobile telephone manufacturers.
- In the following, there is described an example of a mapping application implemented on a
mobile telephone 16 as described with reference to FIGS. 2, 3 and 5. A particular implementation of this mapping application is written for the Java2 Micro Edition platform (J2 ME). It provides map searching and browsing on a smart phone, with data being delivered wirelessly via the Internet from server applications compliant with Open GIS Consortium (OGC) standard specifications. - An example of the mapping application can be operable on a client device such as a mobile telephone to cause a Web Gazetteer Server to look up a user-entered location or place name and to obtain the relevant map co-ordinates. The map co-ordinates (e.g., x:y co-ordinates) can then be used to select and download to the client device an appropriate portion of a map, which can then be displayed within a display window on the client device (e.g., the display of a mobile telephone). The user can scroll up, down, left and right by the use of a pointing device (e.g., the
pointing device 24 on a mobile phone 16 ). Additional mapping information can be retrieved from the server when needed, and can be intelligently cached at the client device to enable fast redrawing of the display. Map scrolling can be provided in a smooth manner with further portions of the map being retrieved as a background process. - An example of an implementation of the mapping application can be written using Sun Microsystems, Inc Forte Java Development environment (Forte for Java 4.0 ME), which has a built-in simple colour J2 ME phone emulator. This approach enables an application to be tested extensively and subsequently to be transferred to a real environment for further testing. Emulators are also to be provided by the mobile phone manufacturers for enabling accurate emulation. As mentioned above, one example of the present invention is designed for a client device in the form of a mobile telephone of the type described as a smart phone. Examples of such smart phones currently on the market are the Nokia 7650 and the Ericsson P800 mobile telephones, although it will be appreciated that other mobile telephones could be used, and also that the present invention is applicable to future generations of mobile telephones and indeed to other networked client devices as described in the introduction.
- An example of a graphical user interface (GUI) of the mapping application can provide a number screen views to a user to enable interaction with the mapping application.
- A main menu can provide a menu of selectable options, including, for example: a Go To option, a Favourites option and a User Profile option. Selecting one of these options (e.g. using a point and click operation with the pointing device on the client device) will take the user to the appropriate screen.
- A Go To screen view, which is accessible by selecting the Go To option on the main screen, can include a text input field where a user can type a place name to be searched for. The user can, for example use a “wild card” character when entering a place name to avoid typing a complete name. In response to the input of an abbreviated name, a series of options can be provided and displayed on a Go To Results screen view (see below) for the user to make a particular selection. As an alternative to inputting a name to be searched for, the GoTo screen view can be configured to accept another location identifier such as a map reference, grid co-ordinates a post or zip code, etc.
- A Favourites screen view, which is accessible by selecting the Favourites option on the main screen, can be used to display one of a set of favourites previously defined using an Add To Favourites screen view as described below.
- A User Preferences screen view, which is accessible by selecting the User Profile option on the main screen, can be used to input and save user preferences, such as a user name, a password, URLs, addresses, a number of tiles for primary and secondary caches, and other functions. The user can be provided with the option of saving a profile, restoring a profile to default settings and clearing a map store, for example.
- As mentioned above, a Go To Results screen view can be used to display a list of results from a Gazetteer search. The user can then select one of the results in the list and a map can be drawn in a currently selected map scale with a selected point at the centre of the map.
- A Map Screen view displays a portion of a map retrieved from a Web Map Server. The portion of the map to be displayed is supplied from the Web Map Server in tiles, and is displayed using those tiles, with successive tile downloads completing more of the map image. The tiles are cached in the mobile telephone as they are received. Relatively small tile sizes are typically preferred to take account of the relatively low capacity of a client device such as a mobile telephone for processing map tiles. In one example, tiles of 100 pixels square in the compressed Portable Network Graphics (PNG) format are used. As mentioned above, the user can freely scroll in all directions using the pointing device on the mobile phone with the mapping application being configured automatically to request the download of additional map tiles to supplement those already stored in the mobile in accordance with the scrolling operation of the user.
- The user can also be provided with the option of changing the scale of the map, for example by pressing the
number 1 on the mobile phone key pad to zoom out and the number 3 to zoom in. It will be appreciated that, in another example, any other of the available input keys or devices on the mobile telephone could be configured to initiate zooming. In response to a zooming operation, the extent of the map available within the display window is altered, with the source data being switched between various layers of mapping information. For example, maps could be provided at 1:1,000,000, 1:250,000 raster and 1:50,000 raster. In one example, the mapping application is configured to initiate displaying in the 1:50,000 raster, the closest zoom setting in the present example. These layer settings could of course be changed for different examples, and any number of one or more layers could be provided as required. - Ideally, the source data for the mapping information is processed to include a limited number of colours to provide smaller file sizes when downloading the tiles.
- A user can bookmark a selected map location in the list of favourites, by selecting an Add To Favourites option.
- In particular, the mapping application can be configured to respond to user input (e.g., as a result of a point and click operation at a current cursor position) to cause a current location to be added to the list of favourites. An Add To Favourites screen view can be provided in which the user can enter text describing the current location, such as “work” or “home”. As the user may have scrolled a fair distance from a previously searchable place, the user can enter a new place name to identify the current cursor point for each favourite saved. When the Favourites option is selected from the main menu, the user can jump to one of the previously stored map positions, with any map not currently stored being retrieved from the map server on the network.
- When the user has finished using the application, the mapping application can be arranged to store the last displayed screen maps in the
memory 36 on the mobile telephone to enable further viewing later without additional access to the network. - Access to information on the Internet from client devices such as mobile telephones is inevitably constrained by the available speed of download, and the relatively low processing power of such mobile telephones. The present example of the mapping application is designed to enhance usability by downloading a greater area of mapping that can be viewed at once on the screen. This is illustrated in FIG. 6. This means that after an initial wait for the first image, the surrounding images can also be downloaded in the background. Thus, when the user is ready to scroll to see an adjoining mapping on the “next screen”, the data can already be provided in the mobile telephone, whereby scrolling can be seamless in all directions until the user has reached the edge of the total area of the original download. By phasing the downloading in this way, the user experience of using mapping on a mobile telephone can be optimised.
- In one example of the present invention, as illustrated in FIG. 6, it is assumed that the user has selected a
point 75 in amap field 74, which can, for example, be data representing the map of a complete country. In response to selecting the particular point within the map field, (for example as a result of a process of introducing a name on the Go To screen view and then selecting a location from a Go To Results screen view described earlier), the mapping application can, in a series of requests messages to the map server, via the telephone network, request the download of a series of map tiles. The map server can then be operable to download the selected map tiles. - In the current example, in response to identifying the
point 75, mapping application sends a series of requests to the map server to download nine tiles of map information T1-T9 surrounding the selected location. The area represented by the nine tiles is greater than the display window formed by thedisplay 22 on the mobile telephone. For example, in a particular example, the data can be loaded in nine tiles of 100 pixel square images in the PNG format. The average data volume of these tiles is approximately 9 KB. In one example, where a mobile connection operating under the General Packet Radio Service (GPRS) protocol is used, the data transfer rate is typically in the range of 10-20 kbps (kilobits per second). At such a download rate, each tile can be provided in about 8 seconds. It will be appreciated that where a higher data transfer rates is available, the time for downloading a tile will be less. A status bar can be displayed to show the current progress of the data download. After a tile has been is downloaded, it can then be displayed to the user during the downloading of the remaining tiles. In this manner, the user can be provided fairly rapidly with part of a map relating to the selected location, with the remaining parts being supplied while the user is able to review the information downloaded in the first tile. - If the central tile T1 as represented in FIG. 6 is downloaded first, then the part of the map centred on the
location 75 selected by the user can be made available to the user first. The tiles T3, T5, T6 and T8 could then be downloaded next, with the corner tiles T2, T4, T7 and T9 being provided last. If this order is followed, then those tiles which contribute most to the displayed part of the map are provided first, with the tiles which contribute least being displayed subsequently. It will, however, be appreciated that in other examples, another order of downloading of the tiles could be provided. - It will also be appreciated that a number of tiles other than nine tiles could initially be downloaded. For example, if a larger number of small tiles were provided, then initial map information could be provided sooner, although due to the overhead of transmitting packets with the accompanying packet information, the overall download time would typically be increased.
- As each tile is downloaded, it is cached in at least one of the primary and
secondary caches memory 36 of the mobile phone. As a user moves the cursor around the screen, the screen image can be regenerated using the cached imaged tiles, to provide seamless scrolling of the image represented in thedisplay 20. This avoids a stepping approach from one image to another, and makes it much easier to view an exact area of interest. The image displayed on the screen can be centred to any exact location. The scrolling can be configured to work in all directions for the current layer of mapping, and theoretically as far as the total area of mapping for that layer on the server. - The operation of the cursor can be configured to be such that the user can move the cursor to the edge of a displayed screen area. Such an operation can be interpreted by the mapping application as a request to download further image tiles in the direction represented by the edge of the screen area to which the cursor has been moved.
- For example, as the user scrolls to the right (East), this can be interpreted by the mapping application as a user request for further mapping to the East of the area currently displayed, and the mapping application can issue requests to the map server to provide further tiles of information in that direction. FIG. 7 represents this process. As shown in FIG. 7, the user moves the
cursor 23 to the right hand edge of the screen area as represented by thearrow 78. This is interpreted as a request for further mapping information to the right (East) of the currently displayed area, whereby the mobile phone mapping application requests the download of tiles T10, T11 and T12 from the server. As indicated in FIG. 7.2 the new tiles T10, T11 and T12 are cached in one of thecaches memory 36 in the mobile telephone as will be described later in more detail. - Given the relatively small memory provided in current mobile telephones, it may be necessary to drop, or purge, some tiles which had been cached in the
memory 36, in order to make space for the additional tiles, T10, T11 and T12. Accordingly, the mobile phone mapping application can be configured to drop those tiles that are furthest from the currently viewed location in order to make way for the additional tiles T10, T11 and T12. As indicated in FIG. 7, this could involve dropping tiles T2, T7 and T5, (e.g., in that order). It should, however, be noted that this process is illustrated by way of example only in FIG. 7. Typically, the memory in the mobile telephone will be sufficient to hold more than the twelve tiles illustrated in FIG. 7.2, whereby the algorithm to make space in the memory in order to cache new tiles will normally only come into effect when significantly more tiles have been cached in that memory. This approach to refreshing the memory, and to purging tiles means that the application can be robust and thememory 36 can continually be refreshed. - As an enhancement to the process described with reference to FIG. 7, when the tiles T1-T9 have initially been downloaded (as represented in FIG. 7.1 ) it would be possible for the application to download additional tiles such as tiles T10, T11 and T12. Indeed, a complete set of tiles surrounding tiles T1-T9 (i.e. on all four sides) could be downloaded as a background task, whereby in the event that the user were to scroll rapidly to one side, there tiles surrounding the initially selected set of nine tiles will already have been downloaded. This could further enhance the smoothness of scrolling and the responsiveness to use input.
- FIG. 8 represents an overview flow diagram of the operation of the mapping application on the mobile telephone.
- At
step 200, the user initiates the operation of the mapping application, for example by selecting an icon from the mobile telephone screen display. - At
step 202, a user interface task is started and control passes to auser interface task 204 to be described later with reference to FIG. 9. - At
step 206, a map builder task is started, control then passes to the map builder task at 208, as will be described in more detail with reference to FIG. 15 later. - At
step 210, a start HTTP request task is started, and control passes to theHTTP requester task 212 as described later with reference to FIG. 18. - After completion of the above referenced tasks, at
step 214, the mapping application waits for exit to be selected. - At
step 216, the mapping application tidies up and closes down the tasks, before exiting. Step 218 represents the end of the program. - FIG. 9 is a flow diagram giving an overview of the
user interface task 204. - At
step 222, a user profile is set up from therecord store 55 in the memory of the mobile telephone. - At
step 226, a main menu is displayed on the screen, as described earlier. - At
step 230, it is assumed that a user makes a user input by making a selection from the main menu screen described earlier. - If, in
step 232, the user selects a gazetteer function, then in step 234 a gazetteer task, as described later with reference to FIG. 10, is called. - If, in
step 236, the user selects a stored “favourite”, then in step 238 a process favourites task as described later with reference to FIG. 11 is called. - If, in
step 240, a user selects a user profile, then instep 242, a process user profile task is called. The process user profile task is described in more detail with reference to FIG. 12. - If in
step 244, the user selects an exit, the program exits atstep 246. - FIG. 9 also shows a
back button step 224, which provides a re-entry point to the flow diagram of FIG. 9, as will be described with respect to the following figures. Likewise, the continueuser interface task 228 is a step providing re-entry to the flow diagram FIG. 9 from flow diagrams to be described later. - FIG. 10 illustrates a process gazetteer task which is entered at step234 (see FIG. 9). In
step 252, a gazetteer request is sent to the server. The gazetteer request will include the user identification of a location name, for example, as described earlier. - In
step 254, a wait screen is displayed. - In
step 256, results are received from the server. - In
step 258, the results are displayed as a list. - In
step 260, the user selects a place from the list, and instep 262, a draw map display task is called as described later with respect to FIG. 13. - FIG. 11 describes a process favourites task. The process favourites task is called at step238 (see FIG. 9).
- In
step 272, a list of favourites stored in therecord memory 55 of the client device are displayed as a list. - In
step 274, the user selects a place from the list and instep 262, the draw map display task to be described with reference to FIG. 13 is called. - FIG. 12 illustrates a process user profile task. The process user profile task is called at
step 242, as described with reference to FIG. 9. - In
step 282, a user profile is displayed to the user. - In
step 284, the user is allowed to change user profile fields. - In
step 286, the user profile as amended is stored in therecord store 55 in the client device. Instep 224, control passes back to step 224 as shown in FIG. 9. - FIG. 13 gives an overview of the draw map display task which is called from
step 262 as shown in FIGS. 10 and 11 to display the map centred on the selected location. - In
step 292, the currently completed composite map mosaic (i.e. the combination of the available map tiles) is obtained. - In
step 294, the available portion of the map field formed by the composite map mosaic is displayed on the display screen of the client device with a cursor displayed on top of the map image, to identify the currently selected location within the displayed image. Instep 296, the draw map display task is responsive to user input. - If in
step 298, the user input relates to movement of the cursor, for example by operation of a pointer device, then acursor movement task 300 as described with reference to FIG. 14 is called. - If in
step 302, the user input is representative of a request to zoom in, then instep 304, a zoom in task as described later with reference to FIG. 19 is called. - If in step306 a user input representative of a request to zoom out is detected, then in step 308 a zoom out task as described with reference to FIG. 20 is called.
- If in
step 310, a user input representative of an add to favourites request is detected, then instep 312, an add to favourites task is called as described with reference to FIG. 23. - If, in
step 314, pressing of a back button is detected, then instep 224, the control passes back to theback button step 224 as shown in FIG. 9. - FIG. 14 illustrates an example of a process of moving a received map image within the display of the
mobile telephone 16. - In
step 322, a pointing device (e.g., joystick) event is noted by the map application, whereby movement of the joystick or other pointing device by the user is effected to cause movement of a displayed cursor. - In
step 324, the map application checks the current position of the cursor on the display. - If, it is determined in
step 326 that the map is at the edge of the display, then, instep 328, the bounding box for the currently displayed image is moved in the direction corresponding to the direction indicated by the joystick movement. In other words, if as in FIG. 7.1 the pointing device operation is indicative of movement to the right where the cursor is already at the right hand edge of the display, then the map bounding box which corresponds to the boundary of thescreen 20 is moved to the right is represented in FIG. 7.2. - Alternatively, if it is determined in
step 326 that the cursor is not at the edge of the display screen, then instep 330 the cursor position is moved on the display. - In either case, map builder task to be described with reference to FIG. 15 is notified in
step 332 that is should regenerate the map display. The user interface task then continues atstep 228 in FIG. 9. - FIG. 15 is a flow diagram giving an overview of a map builder task. The map builder task is initiated at
step 208 illustrated in FIG. 8, and is called bystep 332 as shown in FIG. 14. - In
step 346, the map builder task is operable to generate a list of map tiles that will build a composite map display. This step is described in more detail in FIG. 16. - In
step 348, the map builder task is operable to indicate to the user interface task that a new composite map mosaic is available. - As indicated above, FIG. 16 illustrates
step 346 of FIG. 15 in more detail. In particular, FIG. 16 illustrates a process represented at 490 of generating a list of map tiles that will build a composite map display. - In
step 492, the mapping application is operable to calculate a starting x co-ordinate of the bottom left hand map tile position and to round down to the current map tile size. - In
step 494, the mapping application is operable to calculate the starting y co-ordinate of the bottom left hand map tile position and to round down to the current map tile size. - In
step 496, the mapping application is operable to calculate the end x co-ordinate of the top right hand map tile position and to round down to the current map tile size. - In
step 498, the mapping application is operable to calculate the end y co-ordinate of the top right map tile position and to round down to the current map tile size. -
Step 500 represents the start of aloop including steps steps step 502, the appropriate map tile image is obtained from an image manager (as described in more detail with reference to FIG. 17) and instep 504, the tile is assembled into a composite map image. Instep 506, a test is made as to whether all tiles are now done, and if not, steps 502 and 504 are repeated for subsequent tiles. If instep 506 it is determined that all tiles have been done, then instep 508, the control returns to the map builder task of FIG. 15, to proceed to step 348. - As discussed earlier, the tiles can be provided in different scales. Table 1 below illustrates examples of possible map scales, map tile widths and image tile widths as can be used by the task of FIG. 16 to calculate tile co-ordinates for the three scales 1:1,000,000, 1:250,000 and 1:50,000 discussed earlier.
TABLE 1 Image Tile Width Map Scale Map Tile Width (in metres) (in pixels) 1:1,000,000 25000 100 1:250,000 5000 100 1:50,000 1000 100 - FIG. 17 represents the steps of getting a tile from a map image manager as called at
step 502 of FIG. 16. - In
step 518, a check is made if the required map tile image is in a primary cache in the mobile phone. - If, in
step 520, it is determined that the tile is in theprimary cache 52, then instep 522, the image data is retrieved from thisprimary cache 52. - Alternatively, if it is determined in
step 520 that the map tile is not in theprimary cache 52, a check is made instep 524 whether the map tile image is in asecondary cache 54. - If in
step 526, it is determined that the tile is found in thesecondary cache 54, then data is retrieved from the secondary cache instep 528, an image is generated from compressed data representative of that tile instep 530 and the images are stored in the primary cache instep 532, the process of storing an image in the primary cache being described in more detail with reference to FIG. 19, below. - Alternatively, if the tile is not found in the secondary cache, then in
step 534, a default “downloading” tile is added to the composite map image while the image tile required is downloaded. - In
step 536, the HTTP requester task described with reference to FIG. 18 below, is notified that a new tile is to be downloaded. - In
step 538 the required tile is returned to the requesting process (e.g., atstep 502 in FIG. 16). - It can be seen from FIG. 17 that efficient use of the limited storage capacity of the mobile telephone can be effected, while reducing the number of requests that need to be made to download further image tiles. In particular, image tiles that are currently visible on the map display can be held in decompressed format in the primary cache, with tiles that have been received from the server17, but are not currently being displayed can be held in compressed format in the secondary cache.
- FIG. 18 illustrates an example of a process for obtaining map tiles for generating a map display.
- In
step 352, a request queue is checked to see if any requests are queued. - If in
step 354, it is determined that no requests are queued, the process sleeps instep 356 until woken up. - Alternatively, if it is determined in
step 354 that requests have been queued, then instep 356 the process gets the first request from the queue. - In
step 358, a web map server request is generated. - In
step 360, the user name and password are added to the map server request to authenticate that request. - In
step 362, the request is then sent to the server. - In
step 364, a supply is subsequently received from the server. - In
step 368, the received data is decoded into a map tile image. - In
step 380, the received image is placed into the primary cache. - In
step 382, image data is also placed into the secondary cache (that is, the undecoded data). - In
step 384, the map builder task is notified that new map image data has arrived, in particular the map image data becomes available atstep 536 in FIG. 17 whereby the image data can then be returned instep 536 of FIG. 17. - FIG. 19 illustrates an example of a task of storing a decompressed map tile in the
primary cache 52. This task can be called bystep 352 in FIG. 17, or step 370 in FIG. 18. - In
step 382, the current capacity of the primary cache is checked. - If, in
step 384, it is determined that a cache is full, then instep 386, the distance of each map tile from the current cursor position on the map display is calculated. - In
step 388, the map tile that is furthest away from the current cursor position is deleted from the primary cache. - Subsequently, or in the case when the cache is determined in
step 384 not to be full, the new decompressed map tile is added to the primary cache instep 390. - This process then returns to step392 to the
step 532, FIG. 17, or 370, FIG. 18, that called this task. - FIG. 20 illustrates an example of a
task 400 of storing compressed map tiles in thesecondary cache 54. This task can be called bystep 372 in FIG. 18. - In
step 402, the current capacity of the secondary cache is determined. - If in
step 404, it is determined that the secondary cache is full, then instep 406, the distance of each map tile from the current cursor position on the map display is determined. - In
step 408 the map tile that is furthest from the current cursor position is then deleted. - Subsequently, or in the case that it is determined in
step 408 that the cache is not full, the compressed map tile is added to the secondary cache instep 410. - This process then returns at
step 412 to the step that called it (e.g. step 372 in FIG. 18). - FIG. 21 illustrates an example of a task for zooming in an image. This process can be called, for example, from
step 304 of FIG. 13. - In
step 452, a check is made in response to a request to zoom in, whether the current scale is at the maximum zoomed-in level. - If it is determined in
step 454 that the image is fully zoomed in, then the process stops instep 456. - Otherwise, the map product is changed to a larger scale product in
step 458, and the display is regenerated in 460. - At
step 462, the user interface task of FIG. 13 then continues. - FIG. 22 illustrates an example of a
task 460 for zooming out an image. This task can be called, for example, fromstep 306 of FIG. 13. - In
step 472, a check is made in response to a request to zoom out, whether the current scale is at the maximum zoomed-out level. - If it is determined in
step 474 that the image is fully zoomed out, then the process stops instep 476. - Otherwise, the map product is changed to a smaller scale product in
step 478, and the display is regenerated in 490. - At
step 482, the user interface task of FIG. 13 then continues. - FIG. 23 illustrates a task whereby the user favourites may be updated. This task can be called by
step 312 of FIG. 13. - In
step 552, the current list of favourites is displayed as a list. - In
step 554, the user is able to amend the list of favourites. This can include adding a favourite, but could also include deleting a favourite, or changing an order of the list of the favourites as displayed, whereby a particular favourite is displayed first. - In
step 556, the updated favourites are stored in a record store, and in step 558, the user interface task of FIG. 13 continues. - A further function that can be provided in the context of the map application is to provide additional information regarding particular objects and/or locations represented on the map image. This can be performed, for example, by responding to a point and click operation using the pointing device. An example of this is illustrated with respect to FIG. 24. FIG. 24 is a flow diagram illustrating a point and click operation. This can occur at any time as an independent task.
- In
step 582, in response to a click operation using the pointing device, the map application is operable to check whether information for the currently identified cursor position is stored in the client cache. - If it is determined in
step 584 that information is stored in the cache, then this can be displayed instep 586. - Alternatively, if it is determined that information is not stored in the cache, or that the cache merely contains a pointer to information stored elsewhere, then in
step 588, the map application can be operable to send a request to the server for such information. - In
step 540, the map application can be operable to receive the response from the map server, which response can either include information about the selected position, or a response indicating that no information is available. In either case, the response as received can be displayed to the user. - The process stops in
step 542. - FIG. 25 is a flow diagram giving an overview of a
gazetteer function 602 performed by the server. - In
step 604, the gazetteer function is operable to receive a request from the client for a gazetteer search. The search request will be in the form of one or more packets of information from the client, indicating the identity of the client (e.g. a telephone number) and an argument, for example all or part of a place name, a map reference, a location, or some other identifier. - In
step 604, the server gazetteer function is operable to perform a search for matches with the received argument. - In
step 606, the gazetteer function is operable to generate one or more packets of information including the list of matches and to return this to the client. - In
step 608, this process terminates. - FIG. 26 is a flow diagram giving an overview of a
server tile process 610. - In step612 a server tile process is operable to receive a tile request from a client. The tile request can include one or more packets identifying the client (e.g. a telephone number) and information identifying the tile to be downloaded (for example the x and y co-ordinates of the tile within an overall image field). The request can also include an identification of a particular scale of image required.
- In
step 614, the server tile process is operable to process the tile for dispatch. This can involve identifying the appropriate tile information from adatabase 91 held instorage 106, compressing the data in accordance with the appropriate format, “e.g., the “PNG” format described earlier, and applying appropriate packet headers. - The tiles can be derived from data defining at least one layer of a
map 91 held, for example in thestorage 106. As discussed earlier, various layers of mapping information could be provides, for example at 1:1,000,000, 1:250,000 and 1:50,000 scale. A different number of one or more layers and different scales could be provided, as required. Also different versions of the maps, for example with different levels of details and/or colours could be provided for interfacing with different client devices depending on the communication bandwidth to, and the processing and storage capacity of the client device concerned. - Particularly if the client device is a “thin” client device such as a mobile telephone, that is a client device with a relatively low communication bandwidth and/or a relatively low storage capacity and/or processing capacity, then the source data for the mapping information is either initially held as, or is processed to provide a limited number of colours to provide smaller file sizes when downloading the tiles.
- The map could be held in a raster format, a vector format, or any other applicable format. The tiles can be compressed for transmission in, for example, the aforementioned PNG format.
- In
step 616, the packets of compressed tile data are transmitted to the client. Instep 618, this process terminates. - FIGS. 25 and 26 provide examples of some of the operations of the server in communicating with a client device such as a
mobile phone 16. These operations can be provided using aserver application 90 comprising program code held in thememory 104. - The above-described communication between the client device and the server is performed by transferring packets of data. The packets of data can be configured to include information identifying the client device and optionally additional information identifying a mapping session. A mapping session can be, for example, a period when the mapping application is active on the client device. In this way, the server can use the session information (or alternatively the client device identification) to record the map tiles that have been sent to the client during that session. The server can be operable to cancel the record for the session after a selectable time during which no further requests for downloaded tiles have been received.
- There has therefore been described a method and apparatus whereby a portion of an image field (e.g., a map) to be displayed on a display at a client device (e.g., a thin client such as a mobile phone) is downloaded on request from a server as a plurality of image tiles representing respective portions of the image field. A first image tile represents a portion at the centre of the image to be displayed on the display and further image tiles represent portions surrounding the first tile. The total area of the image tiles exceeds the area of the display. Each tile is displayed as it becomes available. Additional tiles image can be requested automatically from the server in response to a user navigating to the edge of the displayed image.
- There has, moreover, been described an application that can provide mapping services on a client device such as a mobile telephone. The described application enables the efficient and user friendly display of selected portions of a map and, optionally, information relating to the map. Thus, an embodiment of the invention can provide functions of a pan tool and an information or query tool. The pan tool enables moving, grabbing and scrolling of a current view location, and the information tool allows the interrogation of features shown on the map by a point and click process. These fundamental functions can be combined in a particular embodiment of the invention via a single interface, in the form of a pointing device provided by the client device. Thus, for example, a cursor can be controlled by a joystick on the mobile telephone and the map view can be moved as the cursor reaches the edge of the displayed image. The cursor can also be moved across features of the map and a query can be sent to the server by depressing the joystick. Depressing the joystick can either interrogate a feature shown at the location of the “click”, or can simply send co-ordinates as a request to the server for any information about the cursor location to be queried.
- The use of the three tasks illustrated in FIG. 13 enables a user to experience a more responsive map interface. The user interface task allows the cursor to be scrolled continuously without a stopping or jerking motion when the display boundaries are reached. The map builder task allows a map to be assembled quickly from existing map image tiles in the caches and to substitute a default “downloading” tile when the map image data is not present. This allows the composite map to be built while not having to wait for any network access. Separating the HTTP requester into a separate task prevents the user interface from “locking up” when network response is slow or the network has failed. Accordingly, having the map building task as a third task, which is separate from the network access (HTTP requestor) task and from the user interface task, means that smooth and seamless scrolling can be affected.
- In the above-described embodiment, a single tile is downloaded by the server in response to each request from the client device. In the present example, the mapping application is designed for a mobile telephone with sufficient processing capacity to enable the calculation of the identity of each individual tile that needs to be downloaded. For example, as described above with reference to FIG. 16, the mapping application is operable to calculate the x and y co-ordinates of the individual tiles, and to provide this information to the server. However, in other applications, one may wish to send a request from the client device to the server for a block of tiles to be downloaded and in response to a single request, the series of tiles could then be downloaded automatically by the server. Also, it may be desired that the client device does not actually calculate the tiles to be downloaded, but merely provides the selected location to the server, whereby the server will perform the identification of the individual tiles to be downloaded, and then will download those tiles as a stream in response to a single initial request based on a particular location from the client device. These alternatives may be desired where, for example, the process is designed for a client device which does not have sufficient processing power to identify the tile co-ordinates, or where, for example, the data to be downloaded is not available in a format which is conducive to ready determination of x and y co-ordinates, for example, for the individual tiles. It will be appreciated that these are merely examples of situations where one may wish to employ a different downloading strategy to the one described in respect of the above referenced specific example.
- Also, throughout the specification, references made to the display of images. It should, be understood, that the use of the term images, does not refer to a particular format in which data is stored. For example, as indicated above, the data may be stored and represented using a raster-scanned image. Alternatively, the image may be stored and generated from data stored in a vector, or vectorised, format.
- FIGS.27 to 29 illustrate an example embodiment of the invention in which image data is provided in vector format. An example of vector format mapping can provide different layers of features. For example in one example, layers as set out in Table 2 below can be provided.
TABLE 2 Layer Category Types 1 Polygons Land type Buildings Roads Water Etc. 2 Lines Boundaries Fences Etc. 3 Text Road names Building numbers Etc. 4 Points Points of interest Post Offices Public Houses Libraries Etc. - Table 2 illustrates only one possible example of features forming a vector representation of mapping information. Various examples of features, or vector items represented in Table 2 are explained in more detail below.
- In
layer 1, the polygons form features defining closed areas of mapping information bounded by vectors. For example, a rectangle having corners at co-ordinates (i,j), (i+1,j) (i+1j+1) (i,j+1), respectively, can be represented by those co-ordinates, whereby the square is then bounded by a sequence of four vectors that join the comer points. A circle can be represented by a sequence of co-ordinates of points along the circumference of the circle at a desired resolution, whereby the circle is then bounded by a sequence of vectors that join those points. The more co-ordinates and the more vectors that are used, the closer the representation approximates to a true circle. Other more complex polygons can be represented in a similar way by defining the co-ordinates of selected points on the boundary of the polygon. Polygons can be used to define, for example the outline of parcels of land, buildings, roads, water features such as rivers, lakes etc., and so on. - Each polygon has a unique identifier (UID). An example of a data structure entry for an instance of a polygon can include a plurality of fields. For example, a UID field can hold the UID for an instance of a polygon. A polygon type field can identify a type of area identified by the instance of the polygon (e.g., a land use type, etc). A descriptive text field could be provided to hold a description of an instance of the polygon. A co-ordinates field can contain a series of sets of co-ordinates defining the closed boundary of the instance of the polygon. A further field can include bounding box co-ordinates (e.g., co-ordinates defining for example the bottom left and top right, or the top left and the bottom right, of a rectangle bounding the feature) to define the extremities of the feature.
- A polygon data structure entry can also include one or more display parameter fields defining display parameters for the instance of the polygon including, for example, a defining of the boundary representation, a fill colour and or pattern, etc. If the display parameters field is not provided or not populated in a polygon data structure entry, then display parameters can be generated by a display engine in a programmable manner using information from the other fields of the data structure entry for the instance of the polygon. A display engine can also choose to use alternative display parameters in a programmable manner in preference to using provided parameters.
- In layer 2, lines form linear features on a map, including features such as boundaries. For example, administrative and political boundaries can be represented by such lines. Also physical features such as walls, fences, hedges, etc can be represented by lines. The lines can be defined in the same manner as the polygons, that is using a sequence of vectors, although in the case of lines, the objects do not need to be closed, and the lines do not define the interior of an area bounded by such lines in the case that they do form a closed sequence of vectors.
- Each line has a unique identifier (UID). An example of a data structure item for an instance of a line can include a plurality of fields. For example, a UID field can contain the UID for an instance of a line. A line type field can identify a line type for the instance of the line. A descriptive text field could be provided to hold a description of an instance of the line. A co-ordinates field can contain a series of sets of co-ordinates defining co-ordinates of the instance of the line. A further field can include bounding box co-ordinates (e.g., co-ordinates defining for example the bottom left and top right, or the top left and the bottom right, of a rectangle bounding the feature) to define the extremities of the feature.
- A line data structure entry can also include one or more display parameter fields defining display parameters for the instance of the line including, for example, the line representation, a colour, etc. If the display parameters field is not provided or not populated in a line data structure entry, then display parameters can be generated by a display engine in a programmable manner using information from the other fields of the data structure entry for the instance of the line. A display engine can also choose to use alternative display parameters in a programmable manner in preference to using provided parameters.
- In layer 3, text items provide further features. The text can represent any text information to be provided on the map including, for example, the names of road, numbers of buildings, etc. Each text item can be provided with a unique identifier (UID). An example of a data structure entry for a text item can include a plurality of fields. For example, a UID field can contain the UID for an instance of text item. A type field can identify a text type for the instance of the polygon (e.g., a name, a number etc.). A descriptive text field could be provided to hold additional information about the text item. A text field can contain the text to be displayed. A co-ordinates field can contain co-ordinates identifying a mapping location for the text. An orientation field can indicate the orientation of the text. A further field can include bounding box co-ordinates (e.g., co-ordinates defining for example the bottom left and top right, or the top left and the bottom right, of a rectangle bounding the feature) to define the extremities of the feature.
- A text data structure entry can also include one or more display parameter fields defining display parameters for the instance of the text item including, for example, a defining of the text font and size, a text and background colours, etc. If the display parameters field is not provided or not populated in a text data structure entry, then display parameters can be generated by a display engine in a programmable manner using information from the other fields of the data structure entry for the instance of the text item. A display engine can also choose to use alternative display parameters in a programmable manner in preference to using provided parameters.
- In layer 4, point items also form features. The point items can represent, for example, points of interest, the locations of post office, public houses, libraries, tourist attractions, etc. Each point item can be provided with a unique identifier (UID). An example of data structure item for an instance of a point item can include a plurality of fields. For example a UID field can contain the UID for an instance of a point item. A type field can identify a point type (e.g., a type of point of interest). A descriptive text field could be provided to hold a description of an instance of the point item. A co-ordinates field can contain co-ordinates identifying a mapping location for the point item. A further field can include bounding box co-ordinates (e.g., co-ordinates defining for example the bottom left and top right, or the top left and the bottom right, of a rectangle bounding the feature) to define the extremities of the feature.
- A point data structure entry can also include one or more display parameter fields defining display parameters for the instance of the point item including, for example, a display representation of the point item, etc. If the display parameters field is not provided or not populated in a point data structure entry, then display parameters can be generated by a display engine in a programmable manner using information from the other fields of the data structure entry for the instance of the point item. A display engine can also choose to use alternative display parameters in a programmable manner in preference to using provided parameters.
- The UIDs for the polygon, line, text and point features can be selected such as readily to identify the category (i.e. polygon, line, text or point type) and type (e.g., for a polygon, whether it relates to a land type, building, roads, water, etc.) of feature. Alternatively, they may simply be allocated in a random or sequential manner as new features are defined.
- Table 3 below illustrates a specific example data structure items (described in more general terms above) for polygon, line, text and point features. In this example, each data structure entry includes all of the common parameters plus the additional parameters according to the feature category (polygons, lines, text and points).
TABLE 3 Common to all (polygons, lines, text and points) IMapRectangle // The bounding box of the feature bbox; Long toid; // The UID int featureCode; // What a feature is (i.e. a road) int scale; // Used as a multiplier to keep co-ordinates as integers Color outerColor; // Colour of the boundary Color innerColor; // Internal colour Polygon Features List linearRings; // First is a list of outer co-ordinates // Next rings are inner holes (also lists of co-ordinates) Line Features List points; // List of co-ordinates Text Features String text; // Text for a string int font; // Font int text_ht; // Text height int dig_posn; // First text item spacing to the feature co-ordinate int orient; // Text orientation angle IMapPoint // Co-ordinate for the feature imapPoint; Point Features int symbolType; // Type of point symbol for identifying point of interest IMapPoint // Co-ordinate for the feature imapPoint; - Tiles can be identified with respect to a single reference point, for example the bottom left comer. However, where the tile has a given size, bounding box co-ordinates for the tile, for example co-ordinates defining the bottom left and top right of the tile, can be derived therefrom. The bounding box co-ordinates of a tile are used in the present example to determine whether a particular feature overlaps, or lies at least partially with, a given tile.
- The features can also be grouped together according to the features that map to a given tile. This grouping can be termed a feature collection. The data structure entry for such a grouping can be termed a feature collection entry. Table 3 below illustrates the format of a feature collection entry.
TABLE 4 Feature Collection IMapRectangle bbox; // The bounding box for a tile List polygons; // A list of the polygons that map to the tile List lines; // A list of the lines that map to the tile List text; // A list of the text that maps to the tile List points; // A list of the lines that map to the tile - An example of the present invention makes use of a database held in a server that contains mapping data in vector format. The vector data features can be as described above. The format in which the data is held in the server database and the structure of the server database lies outside the scope of the present document, and is not needed for an understanding of the present invention. The server database format could employ any number of conventional database formats for spatial data, for example a quad-tree or R tree format. Quad trees and R-trees provide tree-based structures for the storage of spatial data, enabling retrieval of data items according to their spatial locations.
- The client device is able to maintain a subset of the data stored in the server. It would be possible to maintain a quad-tree or R-tree based representation. However, in the present example, as the number of tiles of information that are maintained at any one time is not large, a simpler structure for the local storage of data is employed.
- FIG. 27 illustrates an example of a data structure that can be generated in a client for representing an association between features and tiles that are being held at the client. The data structure can be held in the primary cache52 (FIG. 5). In the illustrated example, a tile entry is provided in a data structure for each tile of mapping data that is held by the client. FIG. 27 illustrates three such examples of
tile entries tile entry field - As illustrated, each tile entry also includes a set of pointers to feature entries for each feature that at least partially falls within the tile concerned. For example as illustrated,
entry 702 includes a list of links (e.g., pointers) 742 to a set offeature entries tile entry 704 includes a list of links 744 to a set offeature entries tile entry 706 can include a list oflinks 746 to a set offeature entries layers 1 to 4 as appropriate. For example the feature entries can have a format as described above with reference to Tables 2 and/or 3 above. The feature entries can optionally be held as part of the tile entries. However, as one feature may extend over multiple tiles, the use of links to feature entries that are accessible from multiple tile entries provides more efficient storage of the feature information. - The tile entries can be configured as, or include, a feature collection entry as described with reference to Table 4.
- Feature information can be downloaded and displayed on a tile by tile basis using an approach as described above with reference to FIGS.8 to 26 as for raster-based mapping information. However, various optimisations can also be employed to enhance the perceived downloading and display rate to the user and/or also to actually increase the downloading rate. For example, as at least some features may extend across multiple tiles, the need to process a feature multiple times can be avoided FIG. 28 illustrates a number of tiles identified as (x−1,y−1), (x,y−1), (x+1, y−1), (x−1,y), (x,y), (x+1, y), (x−1,y+1), (x,y+1), (x+1, y+1) and illustrates some features may exist within one tile only (e.g., the representations of the
houses 760 and 764 ) whereas others of the houses exist within multiple tiles, for example the representations of thehouse 762, and the representations of the area 766, of theboundaries 770 of the roads and theroad centrelines 768. - As indicated above, various approaches to the downloading of the information relating to respective features and to the display thereof can be employed to take advantage of the fact that the features can exist within and/or extend across multiple tiles.
- In the first instance, the fact that features extend across multiple tiles can enhance the perceived downloading rate to the user. Accordingly, rather than only displaying features within a tile, when information for a complete feature (say a large polygon) has been received, all of the polygon that is visible can be displayed, spanning multiple tiles.
- FIGS. 29A to29 G illustrate the successive display of features on a display of a client device. In the example shown in FIGS. 29A to 29 G, the display of an array of 3×3 (=9) tiles is illustrated (as for FIG. 28), with the tiles being downloaded and displayed starting with the bottom left tile. The tile information is downloaded and displayed in an order bottom left, mid left, top left, bottom middle, mid middle, top middle, bottom right, mid right and top right. It will be seen that in this example, larger features are displayed first, with smaller features being displayed later. By displaying larger features first, information that spans multiple tiles can be displayed, giving the user an overview of the mapped area, and then filing in the detail. Also it will be noted that the downloading and/or display of large features for a next tile can be started before the downloading and/or display of the remaining features for a previous tile, further to enhance the perceived rate of downloading of the tiles to the user.
- As the client device holds in the primary cache a list of features already received and not discarded, this can be used to avoid downloading a duplicate of a feature, when that feature is already held by the client device. Thus, when the client device requires the downloading of features for a new tile, it is able to check there are any features already received that overlap with the new tile to be downloaded. The client device can be programmed to comparing the bounding box co-ordinates of each of the features already held in the primary cache to the boundary box co-ordinates of the new tile to be downloaded. The UID of a feature that is found to overlap the new tile is added to an exclusion list for the new tile. The client device is then operable to send a request for the new tile to the server. The tile request identifies the new tile and includes the exclusion list of feature UIDs that do not need to be resent. The server will then send all vectors in the requested tile, minus any that are on the excluded list. In this way any large polygons or lines that overlap multiple tiles will be transferred only once.
- The client device uses the received information to update the data structure identified in FIG. 27. In this manner, the client device effectively constructs a subset of the data structure of the complete mapping information held by the server. Maintaining a subset of this information corresponding to the mapping area to be displayed by the client device and surrounding areas facilitates the display of the information on the client device can be effected in an efficient manner.
- In the case of a vector-based example of the invention, the data held in the
primary cache 52 can comprise the relevant subset of the mapping data, for example using a data structure as represented in FIG. 27 including tile entries and the feature entries for the tiles currently held by the client device. - In a vector-based example of the invention in which an exclusion list may be supplied from the client with a request for a new tile as described above, the
secondary cache 54 is not used. This is because the data received for a tile at any time may not include all of the feature information that is to be displayed within the tile (because some of those features may already have been stored in the primary cache on receipt of data for a previous tile). As a result, the compressed data received for a given tile cannot be relied on as complete for the tile concerned. Accordingly, in such an example, thedecision step 526 in FIG. 17 will always be answered in the negative. - Alternatively, in a vector-based example of the invention in which a request for a new tile always requests all feature data for each tile (i.e., an exclusion list is not used), the
secondary cache 54 can be used as the data received for a tile at any time includes all of the feature information to be displayed within the tile. Accordingly, the compressed data received for a given tile can be relied on as complete for the tile concerned. In such a case, the compressed data can be stored in the secondary cache and thedecision 526 in FIG. 17 could give a positive or negative result as appropriate. - With reference to FIG. 18,
steps - In
step 362, when the client device requires the downloading of features for a new tile, it compares the bounding box co-ordinates of each of the features already held in the primary cache to the boundary box co-ordinates of the new tile to be downloaded. The client device is operable to compile an exclusion list for the new tile to include the UIDs of all features that overlap the new tile. The client device is then operable to send a request for the new tile to the server including the identification of the new tile and the exclusion list of feature UIDs that do not need to be resent. - In
step 364, the server is then operable to compare the bounding box co-ordinates of all features that it holds to the bounding box co-ordinates of the new tile. When it identifies a feature that overlaps the new file, it then checks the UID of that feature against the UIDs in the exclusion list. If there is a match between the UID of the identified feature and a UID in the exclusion list, then the feature is not resent. Otherwise, the identified feature is sent to the client device. In the present example the server compiles a set of features to be sent and sends these in one message or set of messages to the client device. However, in other examples, the features could be sent in separate messages. The data to be transmitted is compressed before being sent to the client device to reduce the transmission time. The received data can then be decompressed (decoded) instep 368 and the features can be stored in the primary cache 52 (FIG. 5) instep 370. In an example where tile requests can include an exclusion list, the secondary cache is not used. Alternatively, in an example where the tile requests do not include an exclusion list, the compressed data can also be stored in the secondary cache 54 (FIG. 5). - In a vector-based example of the invention tiles that are no longer used can be deleted, for example in
step 388 of FIG. 19. When a tile entry is deleted from the primary cache, an associated feature entry is only deleted if it is not used by any other tile entry currently held in the primary cache. As a feature is stored once and can be referred to by multiple tiles, it will only be deleted when no other tile entry identifies its UID. Accordingly, instep 388, when deleting a tile entry, the client device checks whether any other tile entry identifies a feature before deleting a feature associated with the tile entry to be deleted. - Although the embodiments above have been described in considerable detail, numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
- For example, although in the particular example the invention relates to the display of map images, it will be appreciated that the present invention could be applied to the display of images other than maps.
- Also, various alternatives and or enhancements are possible to reduce the time between the selection of an image by a user and the display of the image to the user, particularly where the available communication bandwidth is low.
- For example, rather than downloading each tile in full detail, at least some of the tiles could be downloaded initially in lower detail.
- Where references made to downloading each tile in full or lower detail, it is to be understood that, for example, in the context of mapping data, a low detailed image may include, for example, representations of major roads and major geographical features only, where as an image with full detail may include the full detail of the roads, geographical features, etc held for a particular map rendering. Where raster-scanned image data is used to generate the maps, one or more sets of raster image data could be provided with, for example, a first raster scanned image including only significant features, and a second raster scanned image containing all details for the map representation concerned. The use of the low detail raster scanned format will enable the more rapid download of image data, as this will enable a compression algorithm more effectively to compress the image, there being less data within the image. Where, in contrast the image data is stored in vector format, the lower detailed image data can relate to the selection of certain of the vector stored image features only, whereas the full detail or higher detail can include the selection of all of the vector stored image features.
- Thus, for example, with reference to FIG. 6, in one option tile T1 could be downloaded in full detail, with tiles T2-T9 being downloaded with a lower detail initially, and then subsequently updated with higher detail images. In this manner, given that the user has selected the centre of T1 as the point of interest, that portion of the map could be provided to the user in full detail, with the surrounding locations being provided more rapidly, but in lower detail initially. The detail of the surrounding tiles T2-T9 could then be supplied subsequently in high detail.
- As a further option, the order of the supply of the tiles T2-T9 could be made directly responsive to the user navigating or scrolling, the cursor in a given direction on the
display screen 22 using thepointing device 24. Thus, for example, if the user were to move the cursor towards the bottom of the screen, tile T8 could be supplied before any other tile that has not as yet been downloaded. - With reference to FIG. 7, the tiles T10, T11 and T12 could initially be downloaded in lower detail and then be updated in higher detail. Indeed, as an enhancement to the process described with reference to FIG. 7, when the tiles T1-T9 have initially been downloaded (as represented in FIG. 7.1 ) it would be possible for the application to download a complete set of files surrounding files T1-T9 (i.e. on all four sides), at least initially, in lower detail as a background task, whereby in the event that the user were to scroll rapidly to one side, there tiles surrounding the initially selected set of nine tiles will already have been downloaded, at least in lower detailed form.
Claims (79)
1. A method of displaying part of an image field on a display at a client device, the method comprising the client device:
responding to user selection at the client device of a location within the image field to request from a server over a network, a plurality of image tiles including a first image tile that represents a portion of the image field including the selected location and a plurality of further image tiles that represent portions of the image field surrounding the portion of the image field represented by the first tile;
receiving from the server via the network, the plurality of requested image tiles; and
displaying at least a part of the first image tile and the further image tiles on the display, wherein a total area of the first and further image tiles exceeds the area of the display.
2. The method of claim 1 , wherein each image tile is requested and received individually by the client device.
3. The method of claim 1 , wherein the client device identifies each tile to be received.
4. The method of claim 1 , wherein the client device identifies the location within the image field to the server and in response thereto the client device receives from the server the first and further tiles.
5. The method of claim 1 , wherein an image is generated from vector data, the client device being operable to request vector data for forming an image tile from the server.
6. The method of claim 1 , wherein each image tile is displayed on the display as it becomes available.
7. The method of claim 1 , wherein the first image tile is received first.
8. The method of claim 1 , wherein the area of the first image tile is less than the area of the display.
9. The method of claim 1 , wherein the first image tile and eight surrounding image tiles are requested and received in response to user selection at the client device of the location within the image field.
10. The method of claim 1 , wherein at least selected image tiles are initially received in a lower detail, and are then updated to higher detail subsequently.
11. The method of claim 10 , wherein each image tile is initially received in lower detail, and is then updated to a higher detail subsequently.
12. The method of claim 1 , wherein, subsequent to receipt of the first image tile and the plurality of further image tiles, additional image tiles are requested and received, the additional image tiles portions surrounding the first and further image tiles.
13. The method of claim 12 , wherein the additional image tiles are each received at least initially in lower detail.
14. The method of claim 1 , wherein, in response to user input at the client device requesting navigation in a selected direction with respect to displayed portion of the image field, the client device is operable to request from the server, additional image tiles in the selected direction with respect to the received image tiles.
15. The method of claim 14 , wherein the user device is operable to display a pointer on the display and includes a navigation input control for controlling the position of the pointer, the method further including the client device responding to the cursor reaching a boundary zone of the display as a request for navigation in a direction represented by that boundary zone.
16. The method of claim 1 , wherein the client device is operable to hold received image tiles in a cache in the client device.
17. The method of claim 16 , wherein memory capacity constraints dictate that an cached image file has to be discarded to make way for a newly received image tile, the image tile representative of an image portion furthest from the currently displayed portion of the image field is discarded.
18. The method of claim 16 , comprising a first cache for holding decompressed image tiles and a second cache for holding compressed image tiles.
19. The method of claim 1 , wherein the image field is a map, and the image tiles are representative of respective portions of the map.
20. The method of claim 19 , wherein the map is defined in at least a first predefined scale, and the image tiles are derived from the map at a selected scale.
21. The method of claim 20 , wherein the selected scale is selectable by the user.
22. The method of claim 20 , wherein, subsequent to receipt of the first and further image tiles at the selected scale, a set of one or more image tiles are received at a different scale, the set of one or more image tiles at a different scale being cached in the client device.
23. The method of claim 1 , wherein information relating to objects represented by parts of the image tiles are associated with the image tiles and wherein, in response to user selection of an object on the display, the information relating to the object is supplied to the user.
24. The method of claim 23 , wherein supplying the information comprises providing information that was cached with the image tile at the client device.
25. The method of claim 24 , wherein supplying the information comprises requesting the information from the server via the network.
26. The method of claim 1 , wherein the user selection of a location is by selection of a location in a list of displayed favourites.
27. The method of claim 26 , comprising adding a location to a list of favourites.
28. The method of claim 1 , wherein in response to a user entering an indication of a location at the client device, the client device is operable to request from a the server, a selection of candidate locations matching the indication, and then in response to user selection of one of the candidate locations a selected location request from a server over a network, the plurality of image tiles.
29. The method of claim 1 , wherein the client device is a mobile telephone.
30. A method of supplying a part of an image field to a display at a client device, the method comprising a server:
receiving one or more requests from a client device via a network; and
in response thereto supplying a plurality of image tiles representative of respective portions of the image field and including a first image file representing a portion at the centre of the image to be displayed on the display and a plurality of further image tiles representing portions surrounding the first image tile, whereby the total area of the image tiles exceeds the area of the display at the client device.
31. The method of claim 30 , wherein each request is for a single image file.
32. The method of claim 30 , wherein a request is for the plurality of image tiles.
33. The method of claim 30 , wherein a request is for vector data for forming an image tile.
34. The method of claim 30 , wherein the first image tile is sent first.
35. The method of claim 30 , wherein the area of the first image tile is less than the area of the display.
36. The method of claim 30 , wherein at least selected image tiles are initially sent in lower detail, and are then updated to higher detail.
37. The method of claim 36 , wherein each image tile is initially sent in lower detail, and is then updated to higher detail.
38. The method of claim 30 , wherein, subsequent to sending the first image tile and the plurality of further image tiles, additional image tiles are sent representing portions surrounding the first and plurality of further tiles.
39. The method of claim 38 , wherein the additional image tiles are each sent at least initially in low detail.
40. The method of claim 30 , wherein, in response to receipt for additional image tiles in a selected direction with respect to the displayed image, sending the requested additional image tiles.
41. The method of claim 30 , wherein the image field is a map, and the image tiles are representative of respective portions of the map.
42. The method of claim 41 , wherein the map is defined in at least a first predefined scale, and the image tiles are derived from the map at a selected scale.
43. The method of claim 42 , wherein a request for image tiles includes an indication of a selected scale.
44. The method of claim 43 , wherein, subsequent to sending the first and further image tiles at the selected scale, a set of one or more image tiles are sent at a different scale.
45. The method of claim 30 , comprising supplying information relating to objects represented by parts of the image tiles with the image tiles.
46. The method of claim 45 , comprising supplying information relating to objects represented by parts of the image tiles in response to a request for such information from the client device.
47. A computer program product comprising a carrier medium having program instructions thereon, the program instructions being operable to program a client device to display part of an image field on a display by:
responding to user selection at the client device of a location within the image field to request from a server over a network, a plurality of image tiles including a first image tile that represents a portion of the image field including the selected location and a plurality of further image tiles that represent portions of the image field surrounding the portion of the image field represented by the first tile;
receiving from the server via the network, the plurality of requested image tiles; and
displaying at least a part of the first image tile and the further image tiles on the display, wherein a total area of the first and further image tiles exceeds the area of the display.
48. The computer program product of claim 47 , wherein the client device is a mobile telephone.
49. A computer program product comprising a carrier medium having program instructions thereon, the program instructions being operable to cause a server to supply a part of an image field to a display at a client device by:
receiving one or more requests from a client device via a network; and
in response thereto supplying a plurality of image tiles representative of respective portions of the image field and including a first image tile representing a portion at the centre of the image to be displayed on the display and a plurality of further image tiles representing portions surrounding the first image tile, whereby the total area of the image tiles exceeds the area of the display at the client device.
50. A client device comprising a processor, memory, a communication interface and a display, the client device being operable:
to respond to user selection at the client device of a location within the image field to request from a server over a network, a plurality of image tiles including a first image tile that represents a portion of the image field including the selected location and a plurality of further image tiles that represent portions of the image field surrounding the portion of the image field represented by the first tile;
to receive from the server via the network, the plurality of requested image tiles; and
to display at least a part of the first image tile and the further image tiles on the display, wherein a total area of the first and further image tiles exceeds the area of the display.
51. The client device of claim 50 , wherein the client device is operable to request and to receive each image tile individually.
52. The client device of claim 50 , wherein the client device is operable to identify each tile to be received.
53. The client device of claim 50 , wherein the client device is operable to identify the location within the image field to the server and in response thereto to receive from the server the first and further tiles.
54. The client device of claim 53 wherein each image tile is displayed on the display as it becomes available.
55. The client device of claim 50 , wherein an image is generated from vector data and wherein the client device is operable to request vector data for forming an image tile from the server.
56. The client device of claim 50 , wherein the first image tile is received first.
57. The client device of claim 50 , wherein the area of the first image tile is less than the area of the display.
58. The client device of claim 50 , wherein the first image tile and eight surrounding image tiles are requested and received in response to user selection at the client device of the location within the image field.
59. The client device of claim 50 , wherein at least selected image tiles are initially received in a lower detail, and are then updated to higher detail subsequently.
60. The client device of claim 50 , wherein each image tile is initially received in lower detail, and is then updated to a higher detail subsequently.
61. The client device of claim 50 , wherein, subsequent to receipt of the first image tile and the plurality of further image tiles, additional image tiles are requested and received, the additional image tiles portions surrounding the first and further image tiles.
62. The client device of claim 61 , wherein the additional image tiles are each received at least initially in lower detail.
63. The client device of claim 50 , wherein, in response to user input at the client device requesting navigation in a selected direction with respect to displayed portion of the image field, the client device is operable to request from the server, additional image tiles in the selected direction with respect to the received image tiles.
64. The client device of claim 63 , wherein the user device is operable to display a pointer on the display and includes a navigation input control for controlling the position of the pointer, the device further including the client device responding to the cursor reaching a boundary zone of the display as a request for navigation in a direction represented by that boundary zone.
65. The client device of claim 50 , wherein the client device is operable to hold received image tiles in a cache in the client device.
66. The client device of claim 65 , wherein memory capacity constraints dictate that an cached image tile has to be discarded to make way for a newly received image tile, the image tile representative of an image portion furthest from the currently displayed portion of the image field is discarded.
67. The client device of claim 65 , comprising a first cache for holding decompressed image tiles and a second cache for holding compressed image tiles.
68. The client device of claim 50 , wherein the image field is a map, and the image tiles are representative of respective portions of the map.
69. The client device of claim 68 , wherein the map is defined in at least a first predefined scale, and the image tiles are derived from the map at a selected scale.
70. The client device of claim 69 , wherein the selected scale is selectable by the user.
71. The client device of claim 69 , wherein, subsequent to receipt of the first and further image tiles at the selected scale, a set of one or more image tiles are received at a different scale, the set of one or more image tiles at a different scale being cached in the client device.
72. The client device of claim 50 , wherein information relating to objects represented by parts of the image tiles are associated with the image tiles and wherein, in response to user selection of an object on the display, the information relating to the object is supplied to the user.
73. The client device of claim 72 , wherein supplying the information comprises providing information that was cached with the image tile at the client device.
74. The client device of claim 73 , wherein supplying the information comprises requesting the information from the server via the network.
75. The client device of claim 50 , wherein the user selection of a location is by selection of a location in a list of displayed favourites.
76. The client device of claim 50 , wherein the client device is operable to add a location to a list of favourites.
77. The client device of claim 50 , wherein in response to a user entering an indication of a location at the client device, the client device is operable to request from a the server, a selection of candidate locations matching the indication, and then in response to user selection of one of the candidate locations a selected location request from a server over a network, the plurality of image tiles.
78. The client device of claim 50 , wherein the client device is a mobile telephone.
79. A server comprising a processor, memory and a communications interface, the server being operable to supply a part of an image field to a display at a client device by:
receiving one or more requests from a client device via a network; and
in response thereto supplying a plurality of image tiles representative of respective portions of the image field and including a first image tile representing a portion at the centre of the image to be displayed on the display and a plurality of further image tiles representing portions surrounding the first image tile, whereby the total area of the image tiles exceeds the area of the display at the client device.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0303888.2 | 2003-02-19 | ||
GBGB0303888.2A GB0303888D0 (en) | 2003-02-19 | 2003-02-19 | Image streaming |
Publications (1)
Publication Number | Publication Date |
---|---|
US20040217980A1 true US20040217980A1 (en) | 2004-11-04 |
Family
ID=9953353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/781,446 Abandoned US20040217980A1 (en) | 2003-02-19 | 2004-02-18 | Image streaming |
Country Status (3)
Country | Link |
---|---|
US (1) | US20040217980A1 (en) |
EP (1) | EP1450277A3 (en) |
GB (3) | GB0303888D0 (en) |
Cited By (128)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060082600A1 (en) * | 2004-10-14 | 2006-04-20 | Canon Kabushiki Kaisha | Image processing result display apparatus, image processing result display method, and program for implementing the method |
US20060103665A1 (en) * | 2004-11-12 | 2006-05-18 | Andrew Opala | Method and system for streaming documents, e-mail attachments and maps to wireless devices |
US20060170693A1 (en) * | 2005-01-18 | 2006-08-03 | Christopher Bethune | System and method for processig map data |
US20060238379A1 (en) * | 2005-04-21 | 2006-10-26 | Microsoft Corporation | Obtaining and displaying virtual earth images |
US20060259504A1 (en) * | 2005-05-11 | 2006-11-16 | Kabushiki Kaisha Toshiba | Portable electronic device and list display method |
WO2007011616A2 (en) * | 2005-07-14 | 2007-01-25 | Telecommunication Systems, Inc. | Tiled map display on a wireless device |
US20070067106A1 (en) * | 2005-09-20 | 2007-03-22 | Antoine Lennox B | Streaming geometry using quasi-pyramidal structure |
US20070077920A1 (en) * | 2005-09-15 | 2007-04-05 | Phillip Weeks | Methods, systems and computer program products for aggregating communications and media data |
US20070192509A1 (en) * | 2006-02-14 | 2007-08-16 | Casio Computer Co., Ltd. | Server apparatuses, server control programs, and client apparatuses in a computer system |
US20070211066A1 (en) * | 2006-03-09 | 2007-09-13 | Casio Computer Co., Ltd. | Screen display control apparatus and program product |
US20070229524A1 (en) * | 2006-02-13 | 2007-10-04 | Geoffrey Hendrey | Draggable maps |
US20070234229A1 (en) * | 2006-03-29 | 2007-10-04 | Casio Computer Co., Ltd. | Server apparatus of computer system |
US20070229539A1 (en) * | 2006-03-31 | 2007-10-04 | Research In Motion Limited | Method of graphically indicating on a wireless communications device that map data is still being downloaded |
US20070250711A1 (en) * | 2006-04-25 | 2007-10-25 | Phonified Llc | System and method for presenting and inputting information on a mobile device |
US20070260749A1 (en) * | 2006-05-02 | 2007-11-08 | Nokia Corporation | Configuring user interfaces in electronic devices |
US20080059569A1 (en) * | 2006-08-31 | 2008-03-06 | Casio Computer Co., Ltd. | Client apparatus, server apparatus, server-based computing system, and program |
US20080063172A1 (en) * | 2006-05-08 | 2008-03-13 | Rajat Ahuja | Location input mistake correction |
US20080065628A1 (en) * | 2006-08-21 | 2008-03-13 | Ritesh Bansal | Associating Metro Street Address Guide (MSAG) validated addresses with geographic map data |
US20080079972A1 (en) * | 2006-09-29 | 2008-04-03 | Goodwin Robert L | Image-based document display |
US20080104520A1 (en) * | 2006-11-01 | 2008-05-01 | Swenson Erik R | Stateful browsing |
US20080104652A1 (en) * | 2006-11-01 | 2008-05-01 | Swenson Erik R | Architecture for delivery of video content responsive to remote interaction |
US20080101466A1 (en) * | 2006-11-01 | 2008-05-01 | Swenson Erik R | Network-Based Dynamic Encoding |
US20080178095A1 (en) * | 2005-01-01 | 2008-07-24 | Chang Seok Lee | Method Of Changing Idle Screen Template Type Of Mobile Communication Termianl, Computer Readable Recording Medium In Which Program For Executing The Same Is Recorded And Mobile Communication Terminal Having Function Thereof |
US20080174593A1 (en) * | 2007-01-18 | 2008-07-24 | Harris Corporation, Corporation Of The State Of Delaware. | System and method for processing map images |
US20080181498A1 (en) * | 2007-01-25 | 2008-07-31 | Swenson Erik R | Dynamic client-server video tiling streaming |
US20080301565A1 (en) * | 2007-06-01 | 2008-12-04 | Fatdoor, Inc. | Bookmarking and lassoing in a geo-spatial environment |
US20090043505A1 (en) * | 2004-10-22 | 2009-02-12 | Richard Rudow | Systems, methods and devices for trip management functions |
US20090109199A1 (en) * | 2007-10-31 | 2009-04-30 | Sony Corporation | Display control apparatus, display control method and program |
US7535473B2 (en) | 2005-09-20 | 2009-05-19 | Erdas, Inc. | Collaborative environments in a graphical information system |
US20090241057A1 (en) * | 2008-03-18 | 2009-09-24 | Casio Computer Co., Ltd. | Server unit, a client unit, and a recording medium in a computer system |
US20090303251A1 (en) * | 2008-06-10 | 2009-12-10 | Andras Balogh | Displaying, processing and storing geo-located information |
US7646927B2 (en) * | 2002-09-19 | 2010-01-12 | Ricoh Company, Ltd. | Image processing and display scheme for rendering an image at high speed |
US20100020091A1 (en) * | 2004-03-23 | 2010-01-28 | Google Inc. | Generating and serving tiles in a digital mapping system |
US20100100256A1 (en) * | 2007-03-28 | 2010-04-22 | Jacob Curtis Jurmain | Remote Vehicle Control System and Method |
US20100161708A1 (en) * | 2005-02-17 | 2010-06-24 | Chang Seok Lee | System of providing contents information on idle-mode screen of mobile terminal using personal computer of functioning as server, method thereof and computer readable record medium on which program for executing method is recorded |
US7746343B1 (en) | 2005-06-27 | 2010-06-29 | Google Inc. | Streaming and interactive visualization of filled polygon data in a geographic information system |
US20100201707A1 (en) * | 2004-03-23 | 2010-08-12 | Google Inc. | Digital Mapping System |
US20100250660A1 (en) * | 2009-03-24 | 2010-09-30 | Casio Computer Co., Ltd. | Client apparatus, computer system, computer readable program storage medium and display method, each for detecting change of display contents in status bar area to display the change |
US20100277754A1 (en) * | 2008-01-15 | 2010-11-04 | Pitmedia Marketings Incorporated | Mosaic image generating apparatus and method |
US7933897B2 (en) | 2005-10-12 | 2011-04-26 | Google Inc. | Entity display priority in a distributed geographic information system |
US20110131376A1 (en) * | 2009-11-30 | 2011-06-02 | Nokia Corporation | Method and apparatus for tile mapping techniques |
US20110142334A1 (en) * | 2009-12-11 | 2011-06-16 | Microsoft Corporation | Accelerating Bitmap Remoting By Identifying And Extracting 2D Patterns From Source Bitmaps |
US20110148932A1 (en) * | 2008-07-08 | 2011-06-23 | Sami Niemi | Method and apparatus for browsing images |
US20110187719A1 (en) * | 2010-01-29 | 2011-08-04 | Denso Corporation | Map data, map data production method, storage medium and navigation apparatus |
US20110207446A1 (en) * | 2010-02-24 | 2011-08-25 | Nokia Corporation | Method and apparatus for providing tiles of dynamic content |
US20120005267A1 (en) * | 2010-06-30 | 2012-01-05 | International Business Machines Corporation | Platform independent information handling system, communication method, and computer program product thereof |
US20120050327A1 (en) * | 2010-08-31 | 2012-03-01 | Canon Kabushiki Kaisha | Image processing apparatus and method |
US20120139952A1 (en) * | 2010-12-01 | 2012-06-07 | Fujitsu Limited | Image transmission method, device, and computer-readable storage medium storing image transmission program |
CN102667851A (en) * | 2009-12-25 | 2012-09-12 | 乐天株式会社 | Image generation device, image generation method, image generation program, and recording medium |
US8314809B1 (en) | 2011-08-31 | 2012-11-20 | Google Inc. | Selective rendering of off-screen content |
US20120327009A1 (en) * | 2009-06-07 | 2012-12-27 | Apple Inc. | Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface |
US20130016108A1 (en) * | 2011-07-11 | 2013-01-17 | Sony Corporation | Information processing apparatus, information processing method, and program |
US8396658B2 (en) | 2008-10-06 | 2013-03-12 | Telecommunication Systems, Inc. | Probabilistic reverse geocoding |
US20130063442A1 (en) * | 2011-09-10 | 2013-03-14 | Microsoft Corporation | Pre-rendering new content for an application-selectable user interface |
US20130080504A1 (en) * | 2011-09-26 | 2013-03-28 | Google Inc. | Managing map elements using aggregate feature identifiers |
US20130178196A1 (en) * | 2006-06-23 | 2013-07-11 | Casio Computer Co., Ltd. | Server apparatus, server control program, and server client system |
US8594627B2 (en) | 2008-10-06 | 2013-11-26 | Telecommunications Systems, Inc. | Remotely provisioned wirelessly proxy |
US8681176B1 (en) | 2011-09-20 | 2014-03-25 | Google Inc. | Rendering a map using style identifiers |
US8732091B1 (en) | 2006-03-17 | 2014-05-20 | Raj Abhyanker | Security in a geo-spatial environment |
US8738545B2 (en) | 2006-11-22 | 2014-05-27 | Raj Abhyanker | Map based neighborhood search and community contribution |
KR20140075761A (en) * | 2011-09-26 | 2014-06-19 | 구글 잉크. | Map tile data pre-fetching based on mobile device generated event analysis |
US8769393B1 (en) | 2007-07-10 | 2014-07-01 | Raj Abhyanker | Private neighborhood social network, systems, and methods |
US8775328B1 (en) | 2006-03-17 | 2014-07-08 | Raj Abhyanker | Geo-spatially constrained private neighborhood social network |
US20140198118A1 (en) * | 2011-09-29 | 2014-07-17 | Tencent Technology (Shenzhen) Company Limited | Image browsing method, system and computer storage medium |
US8830270B2 (en) | 2011-09-10 | 2014-09-09 | Microsoft Corporation | Progressively indicating new content in an application-selectable user interface |
US8863245B1 (en) | 2006-10-19 | 2014-10-14 | Fatdoor, Inc. | Nextdoor neighborhood social network method, apparatus, and system |
US8874489B2 (en) | 2006-03-17 | 2014-10-28 | Fatdoor, Inc. | Short-term residential spaces in a geo-spatial environment |
US20140337938A1 (en) * | 2006-03-17 | 2014-11-13 | Raj Abhyanker | Bookmarking and lassoing in a geo-spatial environment |
US8893033B2 (en) | 2011-05-27 | 2014-11-18 | Microsoft Corporation | Application notifications |
US8922575B2 (en) | 2011-09-09 | 2014-12-30 | Microsoft Corporation | Tile cache |
US8928691B2 (en) | 2011-09-26 | 2015-01-06 | Google Inc. | Rendering map images using modifications of non-raster map data |
US8935631B2 (en) | 2011-09-01 | 2015-01-13 | Microsoft Corporation | Arranging tiles |
US8937627B1 (en) * | 2012-03-28 | 2015-01-20 | Google Inc. | Seamless vector map tiles across multiple zoom levels |
JP2015504193A (en) * | 2011-10-20 | 2015-02-05 | マイクロソフト コーポレーション | Enable immersive search engine home page |
US8965409B2 (en) | 2006-03-17 | 2015-02-24 | Fatdoor, Inc. | User-generated community publication in an online neighborhood social network |
US8990733B2 (en) | 2010-12-20 | 2015-03-24 | Microsoft Technology Licensing, Llc | Application-launching interface for multiple modes |
US9002754B2 (en) | 2006-03-17 | 2015-04-07 | Fatdoor, Inc. | Campaign in a geo-spatial environment |
US9004396B1 (en) | 2014-04-24 | 2015-04-14 | Fatdoor, Inc. | Skyteboard quadcopter and method |
US9015606B2 (en) | 2010-12-23 | 2015-04-21 | Microsoft Technology Licensing, Llc | Presenting an application change through a tile |
US9022324B1 (en) | 2014-05-05 | 2015-05-05 | Fatdoor, Inc. | Coordination of aerial vehicles through a central server |
US9037516B2 (en) | 2006-03-17 | 2015-05-19 | Fatdoor, Inc. | Direct mailing in a geo-spatial environment |
US9052820B2 (en) | 2011-05-27 | 2015-06-09 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9064288B2 (en) | 2006-03-17 | 2015-06-23 | Fatdoor, Inc. | Government structures and neighborhood leads in a geo-spatial environment |
US9071367B2 (en) | 2006-03-17 | 2015-06-30 | Fatdoor, Inc. | Emergency including crime broadcast in a neighborhood social network |
US9070101B2 (en) | 2007-01-12 | 2015-06-30 | Fatdoor, Inc. | Peer-to-peer neighborhood delivery multi-copter and method |
US9104440B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9158445B2 (en) | 2011-05-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US20150293929A1 (en) * | 2012-10-30 | 2015-10-15 | Samsung Electronics Co., Ltd. | Method and apparatus for processing webpage in terminal device by using cloud server |
US9200913B2 (en) | 2008-10-07 | 2015-12-01 | Telecommunication Systems, Inc. | User interface for predictive traffic |
US9213468B2 (en) | 2010-12-23 | 2015-12-15 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US9244802B2 (en) | 2011-09-10 | 2016-01-26 | Microsoft Technology Licensing, Llc | Resource user interface |
US9247260B1 (en) | 2006-11-01 | 2016-01-26 | Opera Software Ireland Limited | Hybrid bitmap-mode encoding |
US9285239B2 (en) | 2008-10-07 | 2016-03-15 | Telecommunication Systems, Inc. | User interface for content channel HUD (heads-up display) and channel sets for location-based maps |
US9329774B2 (en) | 2011-05-27 | 2016-05-03 | Microsoft Technology Licensing, Llc | Switching back to a previously-interacted-with application |
US9373149B2 (en) | 2006-03-17 | 2016-06-21 | Fatdoor, Inc. | Autonomous neighborhood vehicle commerce network and community |
US9383917B2 (en) | 2011-03-28 | 2016-07-05 | Microsoft Technology Licensing, Llc | Predictive tiling |
US9396508B2 (en) | 2013-05-15 | 2016-07-19 | Google Inc. | Use of map data difference tiles to iteratively provide map data to a client device |
US9423951B2 (en) | 2010-12-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Content-based snap point |
US9439367B2 (en) | 2014-02-07 | 2016-09-13 | Arthi Abhyanker | Network enabled gardening with a remotely controllable positioning extension |
US9441981B2 (en) | 2014-06-20 | 2016-09-13 | Fatdoor, Inc. | Variable bus stops across a bus route in a regional transportation network |
US9451020B2 (en) | 2014-07-18 | 2016-09-20 | Legalforce, Inc. | Distributed communication of independent autonomous vehicles to provide redundancy and performance |
US9451822B2 (en) | 2014-04-10 | 2016-09-27 | Microsoft Technology Licensing, Llc | Collapsible shell cover for computing device |
US9457901B2 (en) | 2014-04-22 | 2016-10-04 | Fatdoor, Inc. | Quadcopter with a printable payload extension system and method |
US9459622B2 (en) | 2007-01-12 | 2016-10-04 | Legalforce, Inc. | Driverless vehicle commerce network and community |
US9557909B2 (en) | 2011-09-09 | 2017-01-31 | Microsoft Technology Licensing, Llc | Semantic zoom linguistic helpers |
US20170132829A1 (en) * | 2015-11-05 | 2017-05-11 | Adobe Systems Incorporated | Method For Displaying and Animating Sectioned Content That Retains Fidelity Across Desktop and Mobile Devices |
US9658766B2 (en) | 2011-05-27 | 2017-05-23 | Microsoft Technology Licensing, Llc | Edge gesture |
US9665384B2 (en) | 2005-08-30 | 2017-05-30 | Microsoft Technology Licensing, Llc | Aggregation of computing device settings |
US9674335B2 (en) | 2014-10-30 | 2017-06-06 | Microsoft Technology Licensing, Llc | Multi-configuration input device |
CN106873844A (en) * | 2015-12-11 | 2017-06-20 | 阿里巴巴集团控股有限公司 | Picture inspection method and device |
US20170230787A1 (en) * | 2014-05-31 | 2017-08-10 | Apple Inc. | Location service authorization and indication |
US9769293B2 (en) | 2014-04-10 | 2017-09-19 | Microsoft Technology Licensing, Llc | Slider cover for computing device |
US9841874B2 (en) | 2014-04-04 | 2017-12-12 | Microsoft Technology Licensing, Llc | Expandable application representation |
US9971985B2 (en) | 2014-06-20 | 2018-05-15 | Raj Abhyanker | Train based community |
US10007677B1 (en) | 2014-12-04 | 2018-06-26 | Google Llc | System and method for geospatial indexing |
US10013162B2 (en) | 2012-03-31 | 2018-07-03 | Apple Inc. | Device, method, and graphical user interface for integrating recognition of handwriting gestures with a screen reader |
US10061507B2 (en) | 2009-06-07 | 2018-08-28 | Apple Inc. | Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface |
US10254942B2 (en) | 2014-07-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Adaptive sizing and positioning of application windows |
US10345818B2 (en) | 2017-05-12 | 2019-07-09 | Autonomy Squared Llc | Robot transport method with transportation container |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US10546418B2 (en) * | 2017-10-31 | 2020-01-28 | The Government Of The United States Of America, As Represented By The Secretary Of The Navy | Visualization of positional geospatial uncertainty |
US10554761B2 (en) | 2015-12-12 | 2020-02-04 | At&T Intellectual Property I, Lp | Methods and apparatus to improve transmission of a field data set to a network access point via parallel communication sessions |
US10592080B2 (en) | 2014-07-31 | 2020-03-17 | Microsoft Technology Licensing, Llc | Assisted presentation of application windows |
US10642365B2 (en) | 2014-09-09 | 2020-05-05 | Microsoft Technology Licensing, Llc | Parametric inertia and APIs |
US10678412B2 (en) | 2014-07-31 | 2020-06-09 | Microsoft Technology Licensing, Llc | Dynamic joint dividers for application windows |
US11012807B2 (en) | 2015-06-01 | 2021-05-18 | Apple Inc. | Location service management |
US11029838B2 (en) | 2006-09-06 | 2021-06-08 | Apple Inc. | Touch screen device, method, and graphical user interface for customizing display of content category icons |
USRE48713E1 (en) * | 2013-10-16 | 2021-08-31 | Thinkware Corporation | Apparatus and method for providing map data and system thereof |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006125867A (en) * | 2004-10-26 | 2006-05-18 | Seiko Epson Corp | Positioning system, terminal device, information providing device, and control method and control program for terminal device |
GB0608071D0 (en) * | 2006-04-24 | 2006-05-31 | Pandora Int Ltd | Method of and apparatus for image serving |
KR101718533B1 (en) * | 2009-09-25 | 2017-03-21 | 톰슨 라이센싱 | Apparatus and method for grid navigation |
BR112014002039B1 (en) | 2011-08-05 | 2022-02-01 | Interdigital Ce Patent Holdings | User interface for a video player, and method for controlling a video player that has a touch-activated screen |
EP2556868A1 (en) * | 2011-08-08 | 2013-02-13 | Xpec Entertainment Inc. | Virtual map fragment generating method, virtual map generating method, and virtual map generator |
US9230517B2 (en) | 2012-05-31 | 2016-01-05 | Microsoft Technology Licensing, Llc | Virtual surface gutters |
EP2804096B1 (en) * | 2013-05-15 | 2018-03-21 | Google LLC | Efficient fetching of a map data during animation |
US10893831B2 (en) * | 2013-10-25 | 2021-01-19 | Resmed Inc. | Electronic management of sleep related data |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4660037A (en) * | 1982-01-28 | 1987-04-21 | Honda Giken Kogyo Kabushiki Kaisha | Current location indication apparatus for use in an automotive vehicle |
US4815012A (en) * | 1986-02-05 | 1989-03-21 | Allied-Signal Inc. | Apparatus and method for real time reconstruction of digital map data |
US4972319A (en) * | 1987-09-25 | 1990-11-20 | Delorme David M | Electronic global map generating system |
US5369577A (en) * | 1991-02-01 | 1994-11-29 | Wang Laboratories, Inc. | Text searching system |
US5689343A (en) * | 1995-05-26 | 1997-11-18 | Xerox Corporation | Area mapping employing reference clusters for high quality noninteger resolution conversion with enhancement |
US5902347A (en) * | 1996-11-19 | 1999-05-11 | American Navigation Systems, Inc. | Hand-held GPS-mapping device |
US5936616A (en) * | 1996-08-07 | 1999-08-10 | Microsoft Corporation | Method and system for accessing and displaying a compressed display image in a computer system |
US6021433A (en) * | 1996-01-26 | 2000-02-01 | Wireless Internet, Inc. | System and method for transmission of data |
US6031544A (en) * | 1997-02-28 | 2000-02-29 | Adobe Systems Incorporated | Vector map planarization and trapping |
US6064407A (en) * | 1998-04-30 | 2000-05-16 | Ati Technologies, Inc. | Method and apparatus for tiling a block of image data |
US6104416A (en) * | 1997-11-18 | 2000-08-15 | Stmicroelectronics, Inc. | Tiling in picture memory mapping to minimize memory bandwidth in compression and decompression of data sequences |
US6262741B1 (en) * | 1998-03-17 | 2001-07-17 | Prc Public Sector, Inc. | Tiling of object-based geographic information system (GIS) |
US6278432B1 (en) * | 1998-06-11 | 2001-08-21 | Seiko Epson Corporation | Image delivery and display system |
US20020030843A1 (en) * | 2000-02-02 | 2002-03-14 | Tuli Raja Singh | Portable high speed internet access device |
US6396503B1 (en) * | 1999-12-31 | 2002-05-28 | Hewlett-Packard Company | Dynamic texture loading based on texture tile visibility |
US20020067374A1 (en) * | 2000-12-04 | 2002-06-06 | Kenyon Jeremy A. | Method and apparatus for distributing and displaying maps electronically |
US6429949B1 (en) * | 1998-10-15 | 2002-08-06 | Electronics For Imaging, Inc. | Low memory printer controller |
US6650326B1 (en) * | 2001-01-22 | 2003-11-18 | Navigation Technologies Corp. | Method of handling context during scaling with a map display |
US6724382B2 (en) * | 2000-12-04 | 2004-04-20 | Wildtangent, Inc. | Method and apparatus for distributing and displaying maps electronically |
US6873329B2 (en) * | 2002-07-05 | 2005-03-29 | Spatial Data Technologies, Inc. | System and method for caching and rendering images |
US20050116966A1 (en) * | 2002-04-04 | 2005-06-02 | Graham James J. | Web imaging serving technology |
US6912695B2 (en) * | 2001-09-13 | 2005-06-28 | Pixia Corp. | Data storage and retrieval system and method |
-
2003
- 2003-02-19 GB GBGB0303888.2A patent/GB0303888D0/en not_active Ceased
-
2004
- 2004-02-18 US US10/781,446 patent/US20040217980A1/en not_active Abandoned
- 2004-02-18 EP EP04250879A patent/EP1450277A3/en not_active Withdrawn
- 2004-02-18 GB GB0403621A patent/GB2401521B/en not_active Expired - Fee Related
-
2005
- 2005-04-22 GB GB0508193A patent/GB2410877A/en not_active Withdrawn
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4660037A (en) * | 1982-01-28 | 1987-04-21 | Honda Giken Kogyo Kabushiki Kaisha | Current location indication apparatus for use in an automotive vehicle |
US4815012A (en) * | 1986-02-05 | 1989-03-21 | Allied-Signal Inc. | Apparatus and method for real time reconstruction of digital map data |
US4972319A (en) * | 1987-09-25 | 1990-11-20 | Delorme David M | Electronic global map generating system |
US5369577A (en) * | 1991-02-01 | 1994-11-29 | Wang Laboratories, Inc. | Text searching system |
US5689343A (en) * | 1995-05-26 | 1997-11-18 | Xerox Corporation | Area mapping employing reference clusters for high quality noninteger resolution conversion with enhancement |
US6021433A (en) * | 1996-01-26 | 2000-02-01 | Wireless Internet, Inc. | System and method for transmission of data |
US5936616A (en) * | 1996-08-07 | 1999-08-10 | Microsoft Corporation | Method and system for accessing and displaying a compressed display image in a computer system |
US5902347A (en) * | 1996-11-19 | 1999-05-11 | American Navigation Systems, Inc. | Hand-held GPS-mapping device |
US6031544A (en) * | 1997-02-28 | 2000-02-29 | Adobe Systems Incorporated | Vector map planarization and trapping |
US6104416A (en) * | 1997-11-18 | 2000-08-15 | Stmicroelectronics, Inc. | Tiling in picture memory mapping to minimize memory bandwidth in compression and decompression of data sequences |
US6262741B1 (en) * | 1998-03-17 | 2001-07-17 | Prc Public Sector, Inc. | Tiling of object-based geographic information system (GIS) |
US6064407A (en) * | 1998-04-30 | 2000-05-16 | Ati Technologies, Inc. | Method and apparatus for tiling a block of image data |
US6278432B1 (en) * | 1998-06-11 | 2001-08-21 | Seiko Epson Corporation | Image delivery and display system |
US6429949B1 (en) * | 1998-10-15 | 2002-08-06 | Electronics For Imaging, Inc. | Low memory printer controller |
US6396503B1 (en) * | 1999-12-31 | 2002-05-28 | Hewlett-Packard Company | Dynamic texture loading based on texture tile visibility |
US20020030843A1 (en) * | 2000-02-02 | 2002-03-14 | Tuli Raja Singh | Portable high speed internet access device |
US20020067374A1 (en) * | 2000-12-04 | 2002-06-06 | Kenyon Jeremy A. | Method and apparatus for distributing and displaying maps electronically |
US6724382B2 (en) * | 2000-12-04 | 2004-04-20 | Wildtangent, Inc. | Method and apparatus for distributing and displaying maps electronically |
US6650326B1 (en) * | 2001-01-22 | 2003-11-18 | Navigation Technologies Corp. | Method of handling context during scaling with a map display |
US6912695B2 (en) * | 2001-09-13 | 2005-06-28 | Pixia Corp. | Data storage and retrieval system and method |
US20050116966A1 (en) * | 2002-04-04 | 2005-06-02 | Graham James J. | Web imaging serving technology |
US6873329B2 (en) * | 2002-07-05 | 2005-03-29 | Spatial Data Technologies, Inc. | System and method for caching and rendering images |
Cited By (256)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7646927B2 (en) * | 2002-09-19 | 2010-01-12 | Ricoh Company, Ltd. | Image processing and display scheme for rendering an image at high speed |
US7894984B2 (en) | 2004-03-23 | 2011-02-22 | Google Inc. | Digital mapping system |
US20100020091A1 (en) * | 2004-03-23 | 2010-01-28 | Google Inc. | Generating and serving tiles in a digital mapping system |
US20100201707A1 (en) * | 2004-03-23 | 2010-08-12 | Google Inc. | Digital Mapping System |
US7962281B2 (en) | 2004-03-23 | 2011-06-14 | Google Inc. | Generating and serving tiles in a digital mapping system |
US8022970B2 (en) * | 2004-10-14 | 2011-09-20 | Canon Kabushiki Kaisha | Image processing result display apparatus, image processing result display method, and program for implementing the method |
US20060082600A1 (en) * | 2004-10-14 | 2006-04-20 | Canon Kabushiki Kaisha | Image processing result display apparatus, image processing result display method, and program for implementing the method |
US9565274B2 (en) * | 2004-10-22 | 2017-02-07 | Trimble Inc. | Systems, methods and devices for trip management functions |
US8560237B2 (en) * | 2004-10-22 | 2013-10-15 | Trimble Navigation Limited | Systems, methods and devices for trip management functions |
US20090070033A1 (en) * | 2004-10-22 | 2009-03-12 | Richard Rudow | Systems, Methods and Devices for Trip Management Functions |
US9565273B2 (en) * | 2004-10-22 | 2017-02-07 | Trimble Inc. | Systems, methods and devices for trip management functions |
US20090070032A1 (en) * | 2004-10-22 | 2009-03-12 | Richard Rudow | Systems, Methods and Devices for Trip Management Functions |
US20090043505A1 (en) * | 2004-10-22 | 2009-02-12 | Richard Rudow | Systems, methods and devices for trip management functions |
US20110153776A1 (en) * | 2004-11-12 | 2011-06-23 | Andrew Opala | Method and system for receiving a local vector object and viewing a vector image |
US20110148886A1 (en) * | 2004-11-12 | 2011-06-23 | Andrew Opala | Method and system for receiving an indexed look-up table and viewing a vector animation sequence |
US8878851B2 (en) * | 2004-11-12 | 2014-11-04 | Synchronica Plc | Method and system for streaming documents, e-mail attachments and maps to wireless devices |
US8237740B2 (en) | 2004-11-12 | 2012-08-07 | Synchronica Plc | Method and system for receiving a local vector object and viewing a vector image |
US8243080B2 (en) | 2004-11-12 | 2012-08-14 | Synchronica Plc | Method and system for receiving an indexed look-up table and viewing a vector animation sequence |
US20060103665A1 (en) * | 2004-11-12 | 2006-05-18 | Andrew Opala | Method and system for streaming documents, e-mail attachments and maps to wireless devices |
US20080178095A1 (en) * | 2005-01-01 | 2008-07-24 | Chang Seok Lee | Method Of Changing Idle Screen Template Type Of Mobile Communication Termianl, Computer Readable Recording Medium In Which Program For Executing The Same Is Recorded And Mobile Communication Terminal Having Function Thereof |
US7551182B2 (en) * | 2005-01-18 | 2009-06-23 | Oculus Info Inc. | System and method for processing map data |
US20060170693A1 (en) * | 2005-01-18 | 2006-08-03 | Christopher Bethune | System and method for processig map data |
US20100161708A1 (en) * | 2005-02-17 | 2010-06-24 | Chang Seok Lee | System of providing contents information on idle-mode screen of mobile terminal using personal computer of functioning as server, method thereof and computer readable record medium on which program for executing method is recorded |
US8850011B2 (en) * | 2005-04-21 | 2014-09-30 | Microsoft Corporation | Obtaining and displaying virtual earth images |
US8843309B2 (en) | 2005-04-21 | 2014-09-23 | Microsoft Corporation | Virtual earth mapping |
US10182108B2 (en) | 2005-04-21 | 2019-01-15 | Microsoft Technology Licensing, Llc | Obtaining and displaying virtual earth images |
US20060238379A1 (en) * | 2005-04-21 | 2006-10-26 | Microsoft Corporation | Obtaining and displaying virtual earth images |
US9383206B2 (en) | 2005-04-21 | 2016-07-05 | Microsoft Technology Licensing, Llc | Obtaining and displaying virtual earth images |
US20060259504A1 (en) * | 2005-05-11 | 2006-11-16 | Kabushiki Kaisha Toshiba | Portable electronic device and list display method |
US10990638B2 (en) | 2005-06-27 | 2021-04-27 | Google Llc | Processing ambiguous search requests in a geographic information system |
US8350849B1 (en) | 2005-06-27 | 2013-01-08 | Google Inc. | Dynamic view-based data layer in a geographic information system |
US10795958B2 (en) | 2005-06-27 | 2020-10-06 | Google Llc | Intelligent distributed geographic information system |
US7746343B1 (en) | 2005-06-27 | 2010-06-29 | Google Inc. | Streaming and interactive visualization of filled polygon data in a geographic information system |
US9471625B2 (en) | 2005-06-27 | 2016-10-18 | Google Inc. | Dynamic view-based data layer in a geographic information system |
US10496724B2 (en) | 2005-06-27 | 2019-12-03 | Google Llc | Intelligent distributed geographic information system |
US10198521B2 (en) | 2005-06-27 | 2019-02-05 | Google Llc | Processing ambiguous search requests in a geographic information system |
US7933929B1 (en) | 2005-06-27 | 2011-04-26 | Google Inc. | Network link for providing dynamic data layer in a geographic information system |
US7933395B1 (en) | 2005-06-27 | 2011-04-26 | Google Inc. | Virtual tour of user-defined paths in a geographic information system |
EP1907953A4 (en) * | 2005-07-14 | 2008-09-17 | Telecomm Systems Inc | Tiled map display on a wireless device |
US9367566B2 (en) | 2005-07-14 | 2016-06-14 | Telecommunication Systems, Inc. | Tiled map display on a wireless device |
WO2007011616A2 (en) * | 2005-07-14 | 2007-01-25 | Telecommunication Systems, Inc. | Tiled map display on a wireless device |
WO2007011616A3 (en) * | 2005-07-14 | 2007-09-20 | Telecomm Systems Inc | Tiled map display on a wireless device |
US9041744B2 (en) * | 2005-07-14 | 2015-05-26 | Telecommunication Systems, Inc. | Tiled map display on a wireless device |
EP1907953A2 (en) * | 2005-07-14 | 2008-04-09 | Telecommunication Systems, Inc. | Tiled map display on a wireless device |
US9665384B2 (en) | 2005-08-30 | 2017-05-30 | Microsoft Technology Licensing, Llc | Aggregation of computing device settings |
US20070077920A1 (en) * | 2005-09-15 | 2007-04-05 | Phillip Weeks | Methods, systems and computer program products for aggregating communications and media data |
US8199156B2 (en) | 2005-09-20 | 2012-06-12 | Erdas Inc. | Collaborative environments in a graphical information system |
US7535473B2 (en) | 2005-09-20 | 2009-05-19 | Erdas, Inc. | Collaborative environments in a graphical information system |
US20070067106A1 (en) * | 2005-09-20 | 2007-03-22 | Antoine Lennox B | Streaming geometry using quasi-pyramidal structure |
US20090251472A1 (en) * | 2005-09-20 | 2009-10-08 | Erdas, Inc. | Collaborative environments in a graphical information system |
US8290942B2 (en) | 2005-10-12 | 2012-10-16 | Google Inc. | Entity display priority in a distributed geographic information system |
US9870409B2 (en) | 2005-10-12 | 2018-01-16 | Google Llc | Entity display priority in a distributed geographic information system |
US7933897B2 (en) | 2005-10-12 | 2011-04-26 | Google Inc. | Entity display priority in a distributed geographic information system |
US11288292B2 (en) | 2005-10-12 | 2022-03-29 | Google Llc | Entity display priority in a distributed geographic information system |
US9715530B2 (en) | 2005-10-12 | 2017-07-25 | Google Inc. | Entity display priority in a distributed geographic information system |
US8965884B2 (en) | 2005-10-12 | 2015-02-24 | Google Inc. | Entity display priority in a distributed geographic information system |
US10592537B2 (en) | 2005-10-12 | 2020-03-17 | Google Llc | Entity display priority in a distributed geographic information system |
US9785648B2 (en) | 2005-10-12 | 2017-10-10 | Google Inc. | Entity display priority in a distributed geographic information system |
US20110208724A1 (en) * | 2005-10-12 | 2011-08-25 | Google Inc. | Entity Display Priority In A Distributed Geographic Information System |
US10127692B2 (en) | 2006-02-13 | 2018-11-13 | Uber Technologies, Inc. | Draggable maps |
US20190043227A1 (en) * | 2006-02-13 | 2019-02-07 | Uber Technologies, Inc. | Draggable Maps |
US9412199B2 (en) * | 2006-02-13 | 2016-08-09 | Uber Technologies, Inc. | Draggable maps |
US10679386B2 (en) * | 2006-02-13 | 2020-06-09 | Uber Technologies, Inc. | Draggable maps |
US20070229524A1 (en) * | 2006-02-13 | 2007-10-04 | Geoffrey Hendrey | Draggable maps |
US8918450B2 (en) | 2006-02-14 | 2014-12-23 | Casio Computer Co., Ltd | Server apparatuses, server control programs, and client apparatuses for a computer system in which created drawing data is transmitted to the client apparatuses |
US20070192509A1 (en) * | 2006-02-14 | 2007-08-16 | Casio Computer Co., Ltd. | Server apparatuses, server control programs, and client apparatuses in a computer system |
US20070211066A1 (en) * | 2006-03-09 | 2007-09-13 | Casio Computer Co., Ltd. | Screen display control apparatus and program product |
US9373149B2 (en) | 2006-03-17 | 2016-06-21 | Fatdoor, Inc. | Autonomous neighborhood vehicle commerce network and community |
US9037516B2 (en) | 2006-03-17 | 2015-05-19 | Fatdoor, Inc. | Direct mailing in a geo-spatial environment |
US9002754B2 (en) | 2006-03-17 | 2015-04-07 | Fatdoor, Inc. | Campaign in a geo-spatial environment |
US9064288B2 (en) | 2006-03-17 | 2015-06-23 | Fatdoor, Inc. | Government structures and neighborhood leads in a geo-spatial environment |
US8775328B1 (en) | 2006-03-17 | 2014-07-08 | Raj Abhyanker | Geo-spatially constrained private neighborhood social network |
US8874489B2 (en) | 2006-03-17 | 2014-10-28 | Fatdoor, Inc. | Short-term residential spaces in a geo-spatial environment |
US8732091B1 (en) | 2006-03-17 | 2014-05-20 | Raj Abhyanker | Security in a geo-spatial environment |
US20140337938A1 (en) * | 2006-03-17 | 2014-11-13 | Raj Abhyanker | Bookmarking and lassoing in a geo-spatial environment |
US9071367B2 (en) | 2006-03-17 | 2015-06-30 | Fatdoor, Inc. | Emergency including crime broadcast in a neighborhood social network |
US8965409B2 (en) | 2006-03-17 | 2015-02-24 | Fatdoor, Inc. | User-generated community publication in an online neighborhood social network |
US20070234229A1 (en) * | 2006-03-29 | 2007-10-04 | Casio Computer Co., Ltd. | Server apparatus of computer system |
US20070229539A1 (en) * | 2006-03-31 | 2007-10-04 | Research In Motion Limited | Method of graphically indicating on a wireless communications device that map data is still being downloaded |
US8363065B2 (en) | 2006-03-31 | 2013-01-29 | Research In Motion Limited | Method of graphically indicating on a wireless communications device that map data is still being downloaded |
US20070250711A1 (en) * | 2006-04-25 | 2007-10-25 | Phonified Llc | System and method for presenting and inputting information on a mobile device |
US20070260749A1 (en) * | 2006-05-02 | 2007-11-08 | Nokia Corporation | Configuring user interfaces in electronic devices |
US9092239B2 (en) * | 2006-05-02 | 2015-07-28 | Core Wireless Licensing S.A.R.L. | Configuring user interfaces in electronic devices |
US20150205620A1 (en) * | 2006-05-02 | 2015-07-23 | Core Wireless Licensing, S.a.r.l. | Configuring user interfaces in electronic devices |
US8370339B2 (en) | 2006-05-08 | 2013-02-05 | Rajat Ahuja | Location input mistake correction |
US9558209B2 (en) | 2006-05-08 | 2017-01-31 | Telecommunications Systems, Inc. | Location input mistake correction |
US20080063172A1 (en) * | 2006-05-08 | 2008-03-13 | Rajat Ahuja | Location input mistake correction |
US9258682B2 (en) * | 2006-06-23 | 2016-02-09 | Casio Computer Co., Ltd. | Server apparatus, server control program, and server client system |
US20130178196A1 (en) * | 2006-06-23 | 2013-07-11 | Casio Computer Co., Ltd. | Server apparatus, server control program, and server client system |
US9275073B2 (en) | 2006-08-21 | 2016-03-01 | Telecommunication Systems, Inc. | Associating metro street address guide (MSAG) validated addresses with geographic map data |
US20080065628A1 (en) * | 2006-08-21 | 2008-03-13 | Ritesh Bansal | Associating Metro Street Address Guide (MSAG) validated addresses with geographic map data |
US8577328B2 (en) | 2006-08-21 | 2013-11-05 | Telecommunication Systems, Inc. | Associating metro street address guide (MSAG) validated addresses with geographic map data |
US7904513B2 (en) | 2006-08-31 | 2011-03-08 | Casio Computer Co., Ltd. | Client apparatus, server apparatus, server-based computing system, and program |
US20080059569A1 (en) * | 2006-08-31 | 2008-03-06 | Casio Computer Co., Ltd. | Client apparatus, server apparatus, server-based computing system, and program |
US11029838B2 (en) | 2006-09-06 | 2021-06-08 | Apple Inc. | Touch screen device, method, and graphical user interface for customizing display of content category icons |
US8345068B1 (en) * | 2006-09-29 | 2013-01-01 | Amazon Technologies, Inc. | Image-based document display |
US20080079972A1 (en) * | 2006-09-29 | 2008-04-03 | Goodwin Robert L | Image-based document display |
US7667719B2 (en) * | 2006-09-29 | 2010-02-23 | Amazon Technologies, Inc. | Image-based document display |
US8863245B1 (en) | 2006-10-19 | 2014-10-14 | Fatdoor, Inc. | Nextdoor neighborhood social network method, apparatus, and system |
US20080101466A1 (en) * | 2006-11-01 | 2008-05-01 | Swenson Erik R | Network-Based Dynamic Encoding |
US8375304B2 (en) | 2006-11-01 | 2013-02-12 | Skyfire Labs, Inc. | Maintaining state of a web page |
US20080104520A1 (en) * | 2006-11-01 | 2008-05-01 | Swenson Erik R | Stateful browsing |
US9247260B1 (en) | 2006-11-01 | 2016-01-26 | Opera Software Ireland Limited | Hybrid bitmap-mode encoding |
US8711929B2 (en) | 2006-11-01 | 2014-04-29 | Skyfire Labs, Inc. | Network-based dynamic encoding |
US8443398B2 (en) | 2006-11-01 | 2013-05-14 | Skyfire Labs, Inc. | Architecture for delivery of video content responsive to remote interaction |
US20080104652A1 (en) * | 2006-11-01 | 2008-05-01 | Swenson Erik R | Architecture for delivery of video content responsive to remote interaction |
US8738545B2 (en) | 2006-11-22 | 2014-05-27 | Raj Abhyanker | Map based neighborhood search and community contribution |
US9459622B2 (en) | 2007-01-12 | 2016-10-04 | Legalforce, Inc. | Driverless vehicle commerce network and community |
US9070101B2 (en) | 2007-01-12 | 2015-06-30 | Fatdoor, Inc. | Peer-to-peer neighborhood delivery multi-copter and method |
US20080174593A1 (en) * | 2007-01-18 | 2008-07-24 | Harris Corporation, Corporation Of The State Of Delaware. | System and method for processing map images |
US8130245B2 (en) * | 2007-01-18 | 2012-03-06 | Harris Corporation | System and method for processing map images |
US20080181498A1 (en) * | 2007-01-25 | 2008-07-31 | Swenson Erik R | Dynamic client-server video tiling streaming |
US8630512B2 (en) * | 2007-01-25 | 2014-01-14 | Skyfire Labs, Inc. | Dynamic client-server video tiling streaming |
US8682502B2 (en) * | 2007-03-28 | 2014-03-25 | Irobot Corporation | Remote vehicle control system and method |
US9216510B2 (en) | 2007-03-28 | 2015-12-22 | Irobot Corporation | Remote vehicle control system |
US20100100256A1 (en) * | 2007-03-28 | 2010-04-22 | Jacob Curtis Jurmain | Remote Vehicle Control System and Method |
US20080301565A1 (en) * | 2007-06-01 | 2008-12-04 | Fatdoor, Inc. | Bookmarking and lassoing in a geo-spatial environment |
US9098545B2 (en) | 2007-07-10 | 2015-08-04 | Raj Abhyanker | Hot news neighborhood banter in a geo-spatial social network |
US8769393B1 (en) | 2007-07-10 | 2014-07-01 | Raj Abhyanker | Private neighborhood social network, systems, and methods |
US20090109199A1 (en) * | 2007-10-31 | 2009-04-30 | Sony Corporation | Display control apparatus, display control method and program |
US8773408B2 (en) * | 2007-10-31 | 2014-07-08 | Sony Corporation | Display control apparatus, display control method and program |
US20100277754A1 (en) * | 2008-01-15 | 2010-11-04 | Pitmedia Marketings Incorporated | Mosaic image generating apparatus and method |
US8456721B2 (en) * | 2008-01-15 | 2013-06-04 | Pitmedia Marketing Incorporated | Mosaic image generating apparatus and method |
US20090241057A1 (en) * | 2008-03-18 | 2009-09-24 | Casio Computer Co., Ltd. | Server unit, a client unit, and a recording medium in a computer system |
US8683376B2 (en) | 2008-03-18 | 2014-03-25 | Casio Computer Co., Ltd | Server unit, a client unit, and a recording medium in a computer system |
US20090303251A1 (en) * | 2008-06-10 | 2009-12-10 | Andras Balogh | Displaying, processing and storing geo-located information |
US8896614B2 (en) * | 2008-07-08 | 2014-11-25 | Mobile Imaging In Sweden Ab | Method and apparatus for browsing images |
US20110148932A1 (en) * | 2008-07-08 | 2011-06-23 | Sami Niemi | Method and apparatus for browsing images |
US9400182B2 (en) | 2008-10-06 | 2016-07-26 | Telecommunication Systems, Inc. | Probabilistic reverse geocoding |
US8594627B2 (en) | 2008-10-06 | 2013-11-26 | Telecommunications Systems, Inc. | Remotely provisioned wirelessly proxy |
US20160169693A1 (en) * | 2008-10-06 | 2016-06-16 | Telecommunication Systems, Inc. | Probabilistic Reverse Geocoding |
US8838379B2 (en) | 2008-10-06 | 2014-09-16 | Telecommunication Systems, Inc. | Probalistic reverse geocoding |
US9420398B2 (en) | 2008-10-06 | 2016-08-16 | Telecommunication Systems, Inc. | Remotely provisioned wireless proxy |
US8712408B2 (en) | 2008-10-06 | 2014-04-29 | Telecommunication Systems, Inc. | Remotely provisioned wireless proxy |
US8396658B2 (en) | 2008-10-06 | 2013-03-12 | Telecommunication Systems, Inc. | Probabilistic reverse geocoding |
US9285239B2 (en) | 2008-10-07 | 2016-03-15 | Telecommunication Systems, Inc. | User interface for content channel HUD (heads-up display) and channel sets for location-based maps |
US9200913B2 (en) | 2008-10-07 | 2015-12-01 | Telecommunication Systems, Inc. | User interface for predictive traffic |
US9372091B2 (en) | 2008-10-07 | 2016-06-21 | Telecommunication Systems, Inc. | User interface for predictive traffic |
US8620997B2 (en) | 2009-03-24 | 2013-12-31 | Casio Computer Co., Ltd | Client apparatus, computer system, computer readable program storage medium and display method, each for detecting change of display contents in status bar area to display the change |
US20100250660A1 (en) * | 2009-03-24 | 2010-09-30 | Casio Computer Co., Ltd. | Client apparatus, computer system, computer readable program storage medium and display method, each for detecting change of display contents in status bar area to display the change |
US10061507B2 (en) | 2009-06-07 | 2018-08-28 | Apple Inc. | Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface |
US20120327009A1 (en) * | 2009-06-07 | 2012-12-27 | Apple Inc. | Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface |
US10474351B2 (en) | 2009-06-07 | 2019-11-12 | Apple Inc. | Devices, methods, and graphical user interfaces for accessibility using a touch-sensitive surface |
US8386715B2 (en) | 2009-11-30 | 2013-02-26 | Nokia Corporation | Method and apparatus for tile mapping techniques |
US20110131376A1 (en) * | 2009-11-30 | 2011-06-02 | Nokia Corporation | Method and apparatus for tile mapping techniques |
US8761520B2 (en) * | 2009-12-11 | 2014-06-24 | Microsoft Corporation | Accelerating bitmap remoting by identifying and extracting 2D patterns from source bitmaps |
US9280722B2 (en) | 2009-12-11 | 2016-03-08 | Microsoft Technology Licensing, Llc | Accelerating bitmap remoting by identifying and extracting 2D patterns from source bitmaps |
US20110142334A1 (en) * | 2009-12-11 | 2011-06-16 | Microsoft Corporation | Accelerating Bitmap Remoting By Identifying And Extracting 2D Patterns From Source Bitmaps |
CN102713973A (en) * | 2009-12-11 | 2012-10-03 | 微软公司 | Accelerating bitmap remoting by identifying and extracting 2D patterns from source bitmaps |
US20120268488A1 (en) * | 2009-12-25 | 2012-10-25 | Rakuten, Inc. | Image generation device, image generation method, image generation program, and recording medium |
US9256921B2 (en) * | 2009-12-25 | 2016-02-09 | Rakuten, Inc. | Image generation device, image generation method, image generation program, and recording medium |
CN102667851A (en) * | 2009-12-25 | 2012-09-12 | 乐天株式会社 | Image generation device, image generation method, image generation program, and recording medium |
CN103700122A (en) * | 2009-12-25 | 2014-04-02 | 乐天株式会社 | Image generation device and image generation method |
US20110187719A1 (en) * | 2010-01-29 | 2011-08-04 | Denso Corporation | Map data, map data production method, storage medium and navigation apparatus |
US9214099B2 (en) * | 2010-01-29 | 2015-12-15 | Denso Corporation | Map data, map data production method, storage medium and navigation apparatus |
US8750845B2 (en) * | 2010-02-24 | 2014-06-10 | Nokia Corporation | Method and apparatus for providing tiles of dynamic content |
US20110207446A1 (en) * | 2010-02-24 | 2011-08-25 | Nokia Corporation | Method and apparatus for providing tiles of dynamic content |
US8639749B2 (en) * | 2010-06-30 | 2014-01-28 | International Business Machines Corporation | Platform independent information handling system, communication method, and computer program product thereof |
US20120005267A1 (en) * | 2010-06-30 | 2012-01-05 | International Business Machines Corporation | Platform independent information handling system, communication method, and computer program product thereof |
US20120050327A1 (en) * | 2010-08-31 | 2012-03-01 | Canon Kabushiki Kaisha | Image processing apparatus and method |
CN102436649A (en) * | 2010-08-31 | 2012-05-02 | 佳能株式会社 | Image processing apparatus and method |
US8797365B2 (en) * | 2010-12-01 | 2014-08-05 | Fujitsu Limited | Image transmission method, device, and computer-readable storage medium storing image transmission program |
US20120139952A1 (en) * | 2010-12-01 | 2012-06-07 | Fujitsu Limited | Image transmission method, device, and computer-readable storage medium storing image transmission program |
US9696888B2 (en) | 2010-12-20 | 2017-07-04 | Microsoft Technology Licensing, Llc | Application-launching interface for multiple modes |
US8990733B2 (en) | 2010-12-20 | 2015-03-24 | Microsoft Technology Licensing, Llc | Application-launching interface for multiple modes |
US9864494B2 (en) | 2010-12-23 | 2018-01-09 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US11126333B2 (en) | 2010-12-23 | 2021-09-21 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US9213468B2 (en) | 2010-12-23 | 2015-12-15 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US9015606B2 (en) | 2010-12-23 | 2015-04-21 | Microsoft Technology Licensing, Llc | Presenting an application change through a tile |
US9229918B2 (en) | 2010-12-23 | 2016-01-05 | Microsoft Technology Licensing, Llc | Presenting an application change through a tile |
US10969944B2 (en) | 2010-12-23 | 2021-04-06 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US9870132B2 (en) | 2010-12-23 | 2018-01-16 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US9766790B2 (en) | 2010-12-23 | 2017-09-19 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US9423951B2 (en) | 2010-12-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Content-based snap point |
US9383917B2 (en) | 2011-03-28 | 2016-07-05 | Microsoft Technology Licensing, Llc | Predictive tiling |
US9052820B2 (en) | 2011-05-27 | 2015-06-09 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9158445B2 (en) | 2011-05-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US11698721B2 (en) | 2011-05-27 | 2023-07-11 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US9329774B2 (en) | 2011-05-27 | 2016-05-03 | Microsoft Technology Licensing, Llc | Switching back to a previously-interacted-with application |
US10303325B2 (en) | 2011-05-27 | 2019-05-28 | Microsoft Technology Licensing, Llc | Multi-application environment |
US11272017B2 (en) | 2011-05-27 | 2022-03-08 | Microsoft Technology Licensing, Llc | Application notifications manifest |
US9104307B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9104440B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US8893033B2 (en) | 2011-05-27 | 2014-11-18 | Microsoft Corporation | Application notifications |
US9535597B2 (en) | 2011-05-27 | 2017-01-03 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US9658766B2 (en) | 2011-05-27 | 2017-05-23 | Microsoft Technology Licensing, Llc | Edge gesture |
US20130016108A1 (en) * | 2011-07-11 | 2013-01-17 | Sony Corporation | Information processing apparatus, information processing method, and program |
US20130050249A1 (en) * | 2011-08-31 | 2013-02-28 | Google Inc. | Selective rendering of off-screen content |
US8384726B1 (en) * | 2011-08-31 | 2013-02-26 | Google Inc. | Selective rendering of off-screen content |
US8314809B1 (en) | 2011-08-31 | 2012-11-20 | Google Inc. | Selective rendering of off-screen content |
US10579250B2 (en) | 2011-09-01 | 2020-03-03 | Microsoft Technology Licensing, Llc | Arranging tiles |
US8935631B2 (en) | 2011-09-01 | 2015-01-13 | Microsoft Corporation | Arranging tiles |
US8922575B2 (en) | 2011-09-09 | 2014-12-30 | Microsoft Corporation | Tile cache |
US9557909B2 (en) | 2011-09-09 | 2017-01-31 | Microsoft Technology Licensing, Llc | Semantic zoom linguistic helpers |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US10114865B2 (en) | 2011-09-09 | 2018-10-30 | Microsoft Technology Licensing, Llc | Tile cache |
US8933952B2 (en) * | 2011-09-10 | 2015-01-13 | Microsoft Corporation | Pre-rendering new content for an application-selectable user interface |
US10254955B2 (en) | 2011-09-10 | 2019-04-09 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
US8830270B2 (en) | 2011-09-10 | 2014-09-09 | Microsoft Corporation | Progressively indicating new content in an application-selectable user interface |
US20130063442A1 (en) * | 2011-09-10 | 2013-03-14 | Microsoft Corporation | Pre-rendering new content for an application-selectable user interface |
US9244802B2 (en) | 2011-09-10 | 2016-01-26 | Microsoft Technology Licensing, Llc | Resource user interface |
US9146670B2 (en) | 2011-09-10 | 2015-09-29 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
US8681176B1 (en) | 2011-09-20 | 2014-03-25 | Google Inc. | Rendering a map using style identifiers |
US10533871B2 (en) | 2011-09-20 | 2020-01-14 | Google Llc | Rendering a map using style identifiers |
KR102105638B1 (en) | 2011-09-26 | 2020-04-28 | 구글 엘엘씨 | Map tile data pre-fetching based on mobile device generated event analysis |
AU2012316226B2 (en) * | 2011-09-26 | 2017-10-05 | Google Llc | Managing map elements using aggregate feature identifiers |
US8560600B2 (en) * | 2011-09-26 | 2013-10-15 | Google Inc. | Managing map elements using aggregate feature identifiers |
US20130080504A1 (en) * | 2011-09-26 | 2013-03-28 | Google Inc. | Managing map elements using aggregate feature identifiers |
US8928691B2 (en) | 2011-09-26 | 2015-01-06 | Google Inc. | Rendering map images using modifications of non-raster map data |
KR102001646B1 (en) | 2011-09-26 | 2019-10-01 | 구글 엘엘씨 | Map tile data pre-fetching based on mobile device generated event analysis |
KR20140075761A (en) * | 2011-09-26 | 2014-06-19 | 구글 잉크. | Map tile data pre-fetching based on mobile device generated event analysis |
US8903900B2 (en) * | 2011-09-26 | 2014-12-02 | Google Inc. | Managing map elements using aggregate feature identifiers |
KR20190090014A (en) * | 2011-09-26 | 2019-07-31 | 구글 엘엘씨 | Map tile data pre-fetching based on mobile device generated event analysis |
KR102056882B1 (en) * | 2011-09-26 | 2019-12-17 | 구글 엘엘씨 | Managing map elements using aggregate feature identifiers |
US9830064B2 (en) | 2011-09-26 | 2017-11-28 | Google Inc. | Rendering map images using modifications of non-raster map data |
US20140198118A1 (en) * | 2011-09-29 | 2014-07-17 | Tencent Technology (Shenzhen) Company Limited | Image browsing method, system and computer storage medium |
JP2015504193A (en) * | 2011-10-20 | 2015-02-05 | マイクロソフト コーポレーション | Enable immersive search engine home page |
US8937627B1 (en) * | 2012-03-28 | 2015-01-20 | Google Inc. | Seamless vector map tiles across multiple zoom levels |
US10013162B2 (en) | 2012-03-31 | 2018-07-03 | Apple Inc. | Device, method, and graphical user interface for integrating recognition of handwriting gestures with a screen reader |
US20150293929A1 (en) * | 2012-10-30 | 2015-10-15 | Samsung Electronics Co., Ltd. | Method and apparatus for processing webpage in terminal device by using cloud server |
US9396508B2 (en) | 2013-05-15 | 2016-07-19 | Google Inc. | Use of map data difference tiles to iteratively provide map data to a client device |
USRE48713E1 (en) * | 2013-10-16 | 2021-08-31 | Thinkware Corporation | Apparatus and method for providing map data and system thereof |
US9439367B2 (en) | 2014-02-07 | 2016-09-13 | Arthi Abhyanker | Network enabled gardening with a remotely controllable positioning extension |
US10459607B2 (en) | 2014-04-04 | 2019-10-29 | Microsoft Technology Licensing, Llc | Expandable application representation |
US9841874B2 (en) | 2014-04-04 | 2017-12-12 | Microsoft Technology Licensing, Llc | Expandable application representation |
US9451822B2 (en) | 2014-04-10 | 2016-09-27 | Microsoft Technology Licensing, Llc | Collapsible shell cover for computing device |
US9769293B2 (en) | 2014-04-10 | 2017-09-19 | Microsoft Technology Licensing, Llc | Slider cover for computing device |
US9457901B2 (en) | 2014-04-22 | 2016-10-04 | Fatdoor, Inc. | Quadcopter with a printable payload extension system and method |
US9004396B1 (en) | 2014-04-24 | 2015-04-14 | Fatdoor, Inc. | Skyteboard quadcopter and method |
US9022324B1 (en) | 2014-05-05 | 2015-05-05 | Fatdoor, Inc. | Coordination of aerial vehicles through a central server |
US10667078B2 (en) | 2014-05-31 | 2020-05-26 | Apple Inc. | Location service authorization and indication |
US11736494B2 (en) * | 2014-05-31 | 2023-08-22 | Apple Inc. | Location service authorization and indication |
US10244344B2 (en) * | 2014-05-31 | 2019-03-26 | Apple Inc. | Location service authorization and indication |
US20170230787A1 (en) * | 2014-05-31 | 2017-08-10 | Apple Inc. | Location service authorization and indication |
US10965687B2 (en) | 2014-05-31 | 2021-03-30 | Apple Inc. | Location service authorization and indication |
US9971985B2 (en) | 2014-06-20 | 2018-05-15 | Raj Abhyanker | Train based community |
US9441981B2 (en) | 2014-06-20 | 2016-09-13 | Fatdoor, Inc. | Variable bus stops across a bus route in a regional transportation network |
US9451020B2 (en) | 2014-07-18 | 2016-09-20 | Legalforce, Inc. | Distributed communication of independent autonomous vehicles to provide redundancy and performance |
US10254942B2 (en) | 2014-07-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Adaptive sizing and positioning of application windows |
US10592080B2 (en) | 2014-07-31 | 2020-03-17 | Microsoft Technology Licensing, Llc | Assisted presentation of application windows |
US10678412B2 (en) | 2014-07-31 | 2020-06-09 | Microsoft Technology Licensing, Llc | Dynamic joint dividers for application windows |
US10642365B2 (en) | 2014-09-09 | 2020-05-05 | Microsoft Technology Licensing, Llc | Parametric inertia and APIs |
US9674335B2 (en) | 2014-10-30 | 2017-06-06 | Microsoft Technology Licensing, Llc | Multi-configuration input device |
US10007677B1 (en) | 2014-12-04 | 2018-06-26 | Google Llc | System and method for geospatial indexing |
US10838988B2 (en) | 2014-12-04 | 2020-11-17 | Google Llc | System and method for efficient geospatial indexing |
US11706584B2 (en) | 2015-06-01 | 2023-07-18 | Apple Inc. | Location service management |
US11012807B2 (en) | 2015-06-01 | 2021-05-18 | Apple Inc. | Location service management |
US20170132829A1 (en) * | 2015-11-05 | 2017-05-11 | Adobe Systems Incorporated | Method For Displaying and Animating Sectioned Content That Retains Fidelity Across Desktop and Mobile Devices |
US10453240B2 (en) * | 2015-11-05 | 2019-10-22 | Adobe Inc. | Method for displaying and animating sectioned content that retains fidelity across desktop and mobile devices |
CN106873844A (en) * | 2015-12-11 | 2017-06-20 | 阿里巴巴集团控股有限公司 | Picture inspection method and device |
US10554761B2 (en) | 2015-12-12 | 2020-02-04 | At&T Intellectual Property I, Lp | Methods and apparatus to improve transmission of a field data set to a network access point via parallel communication sessions |
US10459450B2 (en) | 2017-05-12 | 2019-10-29 | Autonomy Squared Llc | Robot delivery system |
US11009886B2 (en) | 2017-05-12 | 2021-05-18 | Autonomy Squared Llc | Robot pickup method |
US10520948B2 (en) | 2017-05-12 | 2019-12-31 | Autonomy Squared Llc | Robot delivery method |
US10345818B2 (en) | 2017-05-12 | 2019-07-09 | Autonomy Squared Llc | Robot transport method with transportation container |
US10546418B2 (en) * | 2017-10-31 | 2020-01-28 | The Government Of The United States Of America, As Represented By The Secretary Of The Navy | Visualization of positional geospatial uncertainty |
Also Published As
Publication number | Publication date |
---|---|
GB2401521B (en) | 2005-10-05 |
EP1450277A3 (en) | 2005-05-11 |
GB0403621D0 (en) | 2004-03-24 |
GB0303888D0 (en) | 2003-03-26 |
EP1450277A2 (en) | 2004-08-25 |
GB2410877A (en) | 2005-08-10 |
GB2401521A (en) | 2004-11-10 |
GB0508193D0 (en) | 2005-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20040217980A1 (en) | Image streaming | |
US9269190B1 (en) | System and method for displaying transitions between map views | |
US20050235226A1 (en) | Information browsing apparatus having communicating function | |
US20060077941A1 (en) | User interface system and method for implementation on multiple types of clients | |
EP1811389A1 (en) | Data distribution system, and method therefor | |
US7812852B2 (en) | Method and system for zoomable attachment handling on a portable electronic device | |
US20070061488A1 (en) | System and method for flexible user interfaces | |
CN100442895C (en) | Map browser embedded mobile terminal and mobile phone map mobile terminal platform | |
US20030067485A1 (en) | Running state migration of platform specific graphical user interface widgets between heterogeneous device platforms | |
US20020089541A1 (en) | System for graphically interconnecting operators | |
US20030070061A1 (en) | Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms | |
EP2466968A1 (en) | Apparatus and method for searching access points in portable terminal | |
JPH1013961A (en) | Mobile telephone system and mobile terminal, information center and storage medium used for the system | |
CN102077553B (en) | Method, apparatus and computer program product for providing context triggered distribution of context models | |
US20070005558A1 (en) | Asset management system | |
CN100423597C (en) | Map engine embedded mobile terminal and mobile terminal map platform | |
US20010018703A1 (en) | Client server system and communication method thereof | |
US7010567B1 (en) | Map-data distribution method, and map-data distribution server and client | |
JP4874205B2 (en) | Map display method and map display device | |
JP2001134776A (en) | Map data distributing method | |
US20070006097A1 (en) | Apparatus, method and computer program product enabling storage of state of temporary display screen magnification view | |
JP2004029115A (en) | Map attribute information updating system, server system, terminal device, map attribute information updating method, map attribute information updating program, and recording medium having map attribute information updating program recorded therein | |
JP2005085110A (en) | Terminal device and terminal program | |
JP2002202935A (en) | Server device | |
CN113888673A (en) | Map editing method, system, device, computing equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SECRETARY OF STATE ACTING THROUGH ORDNANCE SURVEY, Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RADBURN, ANDREW JOHN;BRYANT, JONATHAN MARK;REEL/FRAME:016653/0793;SIGNING DATES FROM 20030210 TO 20031002 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: FINISAR CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HONEYWELL INTERNATIONAL INC.;REEL/FRAME:018486/0870 Effective date: 20040301 |