Computerized online mapping systems are becoming increasingly popular for mapping locations requested by a user. These Internet websites for mapping are useful for mapping a requested location, for example. These websites typically allow a user to input a query of a requested location so that a map associated with the requested location may be provided to the user.
As another example, these mapping websites facilitate travel planning. The user may enter a start point and an end point for travel, which are then used to calculate and provide travel directions to the user. Travel directions may include the routes to take and an estimated time for arrival.
These types of mapping systems require a user interface for a user to enter in a request for a map, and an interface where the map is provided for displaying to the requesting user.
A general user interface 100 for a mapping website is illustrated in
The map image may be composed of map tiles that are pre-generated. Typically, pre-generated map tiles fall into the categories of: vector/text tiles for roads/names/POI; rastor images (e.g., satellite images); and transparent overlays (e.g., roads over a satellite image).
In a mapping system, generally the same type, or category, of pre-generated map tiles are used. For example, the same vector style is used for maps of San Francisco and maps of New York or London. In this way, the initial generation of a map is simpler for the presentation of information such as roads.
However, a user may often want more information displayed in the map than the information of the pre-generated map tile. For example, if the user is interested in viewing more information, such as walking paths, in the requested map location, the desired information may no be available. Furthermore, if a map tile is pre-generated to include other desired information, the contextual focus of the map becomes confusing and difficult to comprehend.
Therefore, it is important to recognize different users may want to view maps for different purposes, thus requiring other significant information in a map associated with the desired purpose.
For example, a user who drives a car for commuting may care about road directions, road classes, and road restrictions. In another example, a user who enjoys walking around town may desire information associated with points of interest, walking paths, places to sit, places to eat, etc.
Therefore, methods and systems for providing customized map tiles are desired.
In accordance with embodiments of the present invention, a method for customizing a map is provided. The method includes receiving a query for a portion of a map, and determining a predetermined region of interest (ROI) map tile included in the portion of the map. The predetermined ROI map tile indicates information associated with a category. The method further includes providing the predetermined ROI map tile for displaying to a user.
Further, in accordance with embodiments of the present invention, a computer-readable medium encoded with executable instructions for customizing a map is provided. The instructions include instructions for receiving a query for a portion of a map, and determining a predetermined region of interest (ROI) map tile included in the portion of the map. The predetermined ROI map tile indicates information associated with a category. The instructions further include instructions for providing the predetermined ROI map tile for displaying to a user.
Moreover, in accordance with embodiments of the present invention, an apparatus for customizing maps is provided. The apparatus includes a movement event processor for receiving a query for a portion of a map, and a Region of Interest (ROI) selector for determining a predetermined region of interest (ROI) map tile included in the portion of the map. The predetermined ROI map tile indicates information associated with a category. The apparatus further includes a map tile layout generator for providing the predetermined ROI map tile for displaying to a user.
Other features and aspects of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings which illustrate, by way of example, the features in accordance with embodiments of the invention. The summary is not intended to limit the scope of the invention.
In the following description, reference is made to the accompanying drawings which form a part thereof, and which illustrate several embodiments of the present invention. It is understood that other embodiments may be utilized and structural and operational changes may be made without departing from the scope of the present invention. The use of the same reference symbols in different drawings indicates similar or identical items.
The following description is presented to enable any person of ordinary skill in the art to make and use the invention. Descriptions of specific materials, techniques, and applications are provided only as examples. Various modifications to the examples described herein will be readily apparent to those of ordinary skill in the art, and the general principles defined herein may be applied to other examples and applications without departing from the spirit and scope of the invention. Thus, the present invention is not intended to be limited to the examples described and shown.
According to embodiments of the invention, map tiles for specific regions of interest are provided. This provides an extended set of map tile styles customized for specific usage cases, such as map tiles that show specific features of interests. These customized map tiles are described as Region of Interest (ROI) map tiles.
As opposed to overlaying the features of interest on top of a base map tile that may already show many other features or information, some of which may be extraneous information for a user with a specific interest, according to embodiments of the invention, a separate set of map tiles (ROI map tiles) showing the features of interest are generated. In this way, the ROI map tiles can be swapped for the base tiles corresponding to the same location.
A bounding latitude/longitude box of a ROI map tile is already known. Similarly, the zoom ranges used in a mapping system are also known. This allows the ROI map tiles to be pre-generated in any pre-determined ROI style.
In contrast to map systems that overlay information over base map tiles, because the bounding latitude/longitude box of the ROI map tiles are known, the system can derive the map portion associated with each ROI map tile. Therefore, if the requested map portion includes a ROI map tile, then it can be provided to the user. The front end server may periodically query the back end server to determine if ROI map tiles are associated with the requested map portion.
By customizing maps in this way, source data needed for generation of map tiles does not need to be communicated to the client browser. For example, latitude/longitude information is not known to the browser.
This makes it possible for browsers of different complexities to be able to display customized maps to users, e.g., displaying a customized map to a user on a mobile phone browser or at a desktop computer browser.
The pre-generation of tiles at a server also allows for the ease of adding other map tile styles to the customization options. The whole map system platform would not have to be modified if local markets wanted to add in tile styles more appropriate to local usage situations, for example.
Several styles of ROI map tiles are possible. An example of a ROI style is a tourist view, which may emphasize landmarks, hotels, and restaurants. Another possible ROI style is a commuter view, which may emphasize public transportation options available in the requested map portion.
A map style may be tourist views, for example. The tourist style ROI map tiles may include information such as hotels, restaurants, tourist attractions, and public transportation information, for example.
The predetermined ROI map tile is provided for displaying to a user 206. The ROI map tile is provided in place of a base map tile in generating the requested portion of the map.
As the user 302 scrolls around a map, refresh and movement events are generated. The generated refresh and movement events initiate a map request query to a movement event processor 312. In other words, as the user 302 navigates navigation around the map, at certain intervals, a map request query is sent to a the movement event processor 312 to see if any ROI map tiles have been generated for the requested portion of the map. In embodiments of the invention, the map portion query is generated in response to a movement event of 0.1 degrees.
The movement event processor includes a ROI detector 314. The ROI detector 314 determines if any ROI map tiles are associated with the requested map portion. The requested map portion based on the navigation of the map by the user 302 is compared with the available pre-generated ROI map tiles indicated by the ROI list 320. The ROI list may include information such as bounding latitude/longitude box, zoom ranges, and associated URLs for each ROI map tile.
If the requested portion includes available ROI map tiles, the user 302 may be given the option to confirm that the ROI map tiles should be used to generate the map. The option for the user 302 to confirm the ROI map tiles may be provided to the user 302 in a pop-up window, for example.
There may be one or more ROI map tiles styles associated with a requested map portion. If the user 302 confirms the use of a ROI map tile style, then for the region of the portion of the map where ROI map tiles of the selected ROI map tile style are available are provided for display to the user 302 instead of the base map tiles. The ROI selector 318 selects the appropriate ROI map tiles.
The local Tile Server list 310 is updated with the selected ROI map tiles to indicate which tile server is associated with the determine ROI map tiles. This way, when the map tile layout needs to be regenerated, the right tile servers are selected and the necessary tile servers are enabled for the selected ROI map tiles.
There may be a plurality of tile servers for providing ROI map tiles, such as tile server 324 and tile server 326. The tile servers 324 and 326 host ROI map tiles in separately addressable locations.
The map is generated with base map tiles stored in the universal tile server 322, and any ROI map tiles stored in tile servers 324 or 326, for example.
As another example according to embodiments of the invention, a topological map 500 of Sydney is illustrated in
While aspects of the invention, including the above described systems and methods, are described in terms of particular embodiments and illustrative figures, those of ordinary skill in the art will recognize that the invention is not limited to the embodiments or figures described. Those skilled in the art will recognize that the operations of the various embodiments may be implemented using hardware, software, firmware, or combinations thereof, as appropriate. For example, some processes can be carried out using processors or other digital circuitry under the control of software, firmware, or hard-wired logic. (The term “logic” herein refers to fixed hardware, programmable logic, and/or an appropriate combination thereof, as would be recognized by one skilled in the art to carry out the recited functions.) Software and firmware can be stored on computer-readable media. Some other processes can be implemented using analog circuitry, as is well known to one of ordinary skill in the art. Additionally, memory or other storage, as well as communication components, may be employed in embodiments of the invention.
Computing system 600 can also include a main memory 608, for example random access memory (RAM) or other dynamic memory, for storing information and instructions to be executed by processor 604. Main memory 608 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 604. Computing system 600 may likewise include a read only memory (“ROM”) or other static storage device coupled to bus 602 for storing static information and instructions for processor 604.
The computing system 600 may also include information storage mechanism 610, which may include, for example, a media drive 612 and a removable storage interface 620. The media drive 612 may include a drive or other mechanism to support fixed or removable storage media, such as a hard disk drive, a floppy disk drive, a magnetic tape drive, an optical disk drive, a CD or DVD drive (R or RW), or other removable or fixed media drive. Storage media 618 may include, for example, a hard disk, floppy disk, magnetic tape, optical disk, CD or DVD, or other fixed or removable medium that is read by and written to by media drive 614. As these examples illustrate, the storage media 618 may include a computer-readable storage medium having stored therein particular computer software or data.
In alternative embodiments, information storage mechanism 610 may include other similar instrumentalities for allowing computer programs or other instructions or data to be loaded into computing system 600. Such instrumentalities may include, for example, a removable storage unit 622 and an interface 620, such as a program cartridge and cartridge interface, a removable memory (for example, a flash memory or other removable memory module) and memory slot, and other removable storage units 622 and interfaces 620 that allow software and data to be transferred from the removable storage unit 618 to computing system 600.
Computing system 600 can also include a communications interface 624. Communications interface 624 can be used to allow software and data to be transferred between computing system 600 and external devices. Examples of communications interface 624 can include a modem, a network interface (such as an Ethernet or other NIC card), a communications port (such as for example, a USB port), a PCMCIA slot and card, etc. Software and data transferred via communications interface 624 are in the form of signals which can be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 624. These signals are provided to communications interface 624 via a channel 628. This channel 628 may carry signals and may be implemented using a wireless medium, wire or cable, fiber optics, or other communications medium. Some examples of a channel include a phone line, a cellular phone link, an RF link, a network interface, a local or wide area network, and other communications channels.
In this document, the terms “computer program product” and “computer-readable medium” may be used generally to refer to media such as, for example, memory 608, storage device 618, storage unit 622, or signal(s) on channel 628. These and other forms of computer-readable media may be involved in providing one or more sequences of one or more instructions to processor 604 for execution. Such instructions, generally referred to as “computer program code” (which may be grouped in the form of computer programs or other groupings), when executed, enable the computing system 600 to perform features or functions of embodiments of the present invention.
In an embodiment where the elements are implemented using software, the software may be stored in a computer-readable medium and loaded into computing system 600 using, for example, removable storage drive 614, drive 612 or communications interface 624. The control logic (in this example, software instructions or computer program code), when executed by the processor 604, causes the processor 604 to perform the functions of the invention as described herein.
It will be appreciated that, for clarity purposes, the above description has described embodiments of the invention with reference to different functional units and processors. However, it will be apparent that any suitable distribution of functionality between different functional units, processors or domains may be used without detracting from the invention. For example, functionality illustrated to be performed by separate processors or controllers may be performed by the same processor or controller. Hence, references to specific functional units are only to be seen as references to suitable means for providing the described functionality, rather than indicative of a strict logical or physical structure or organization.
Although the present invention has been described in connection with some embodiments, it is not intended to be limited to the specific form set forth herein. Rather, the scope of the present invention is limited only by the claims. Additionally, although a feature may appear to be described in connection with particular embodiments, one skilled in the art would recognize that various features of the described embodiments may be combined in accordance with the invention. Moreover, aspects of the invention describe in connection with an embodiment may stand alone as an invention.
Furthermore, although individually listed, a plurality of means, elements or method steps may be implemented by, for example, a single unit or processor. Additionally, although individual features may be included in different claims, these may possibly be advantageously combined, and the inclusion in different claims does not imply that a combination of features is not feasible and/or advantageous. Also, the inclusion of a feature in one category of claims does not imply a limitation to this category, but rather the feature may be equally applicable to other claim categories, as appropriate.
Moreover, it will be appreciated that various modifications and alterations may be made by those skilled in the art without departing from the spirit and scope of the invention. The invention is not to be limited by the foregoing illustrative details, but is to be defined according to the claims.
Number | Name | Date | Kind |
---|---|---|---|
5263136 | DeAguiar et al. | Nov 1993 | A |
5549332 | Judson | Aug 1996 | A |
5948040 | DeLorme et al. | Sep 1999 | A |
5968109 | Israni et al. | Oct 1999 | A |
6009403 | Sato | Dec 1999 | A |
6240360 | Phelan | May 2001 | B1 |
6305396 | Zheng | Oct 2001 | B1 |
6307573 | Barros | Oct 2001 | B1 |
6336073 | Ihara et al. | Jan 2002 | B1 |
6397143 | Peschke | May 2002 | B1 |
6469710 | Shum et al. | Oct 2002 | B1 |
6484094 | Wako | Nov 2002 | B1 |
6526351 | Whitham | Feb 2003 | B2 |
6724382 | Kenyon et al. | Apr 2004 | B2 |
7158878 | Rasmussen et al. | Jan 2007 | B2 |
7187997 | Johnson | Mar 2007 | B2 |
7197718 | Westerman et al. | Mar 2007 | B1 |
7274378 | McAvoy et al. | Sep 2007 | B2 |
7315259 | Sacks | Jan 2008 | B2 |
7373244 | Kreft | May 2008 | B2 |
7379811 | Rasmussen et al. | May 2008 | B2 |
7386396 | Johnson | Jun 2008 | B2 |
7555725 | Abramson et al. | Jun 2009 | B2 |
7599790 | Rasmussen et al. | Oct 2009 | B2 |
7616217 | Dayan et al. | Nov 2009 | B2 |
7792858 | Tang | Sep 2010 | B2 |
7890257 | Fyke et al. | Feb 2011 | B2 |
7894984 | Rasmussen et al. | Feb 2011 | B2 |
7945546 | Bliss et al. | May 2011 | B2 |
7945852 | Pilskalns | May 2011 | B1 |
8014946 | Rasmussen et al. | Sep 2011 | B2 |
8041506 | Bliss et al. | Oct 2011 | B2 |
8130245 | Ham et al. | Mar 2012 | B2 |
8244770 | Turner et al. | Aug 2012 | B2 |
8504945 | Jakobson et al. | Aug 2013 | B2 |
8571580 | Altman et al. | Oct 2013 | B2 |
8937627 | Otero et al. | Jan 2015 | B1 |
20020156917 | Nye | Oct 2002 | A1 |
20040204821 | Tu | Oct 2004 | A1 |
20040243306 | Han | Dec 2004 | A1 |
20050222765 | Kobuya | Oct 2005 | A1 |
20050270299 | Rasmussen | Dec 2005 | A1 |
20060010100 | McAvoy et al. | Jan 2006 | A1 |
20060136090 | Koromyslov et al. | Jun 2006 | A1 |
20060156228 | Gallo et al. | Jul 2006 | A1 |
20060167629 | Ishii et al. | Jul 2006 | A1 |
20060200308 | Arutunian | Sep 2006 | A1 |
20060206264 | Rasmussen | Sep 2006 | A1 |
20060241859 | Kimchi | Oct 2006 | A1 |
20070027621 | Operowsky et al. | Feb 2007 | A1 |
20070096945 | Rasmussen | May 2007 | A1 |
20070118520 | Bliss et al. | May 2007 | A1 |
20070171451 | Borchers | Jul 2007 | A1 |
20070176796 | Bliss et al. | Aug 2007 | A1 |
20070282792 | Bailly et al. | Dec 2007 | A1 |
20070291034 | Dones | Dec 2007 | A1 |
20080068151 | Ouzana et al. | Mar 2008 | A1 |
20080068380 | McAvoy et al. | Mar 2008 | A1 |
20080109159 | Shi et al. | May 2008 | A1 |
20080174593 | Ham et al. | Jul 2008 | A1 |
20080189249 | Petakov et al. | Aug 2008 | A1 |
20080292213 | Chau | Nov 2008 | A1 |
20080301643 | Appleton et al. | Dec 2008 | A1 |
20090006994 | Forstall et al. | Jan 2009 | A1 |
20090024476 | Baar | Jan 2009 | A1 |
20090100018 | Roberts | Apr 2009 | A1 |
20090132941 | Pilskalns et al. | May 2009 | A1 |
20090183083 | Hedges | Jul 2009 | A1 |
20090198767 | Jakobson et al. | Aug 2009 | A1 |
20100002012 | Andreasson | Jan 2010 | A1 |
20100005053 | Estes | Jan 2010 | A1 |
20100122208 | Herr et al. | May 2010 | A1 |
20100268455 | Dorfman | Oct 2010 | A1 |
20110276591 | Bliss et al. | Nov 2011 | A1 |
20120303263 | Alam et al. | Nov 2012 | A1 |
20120303264 | Su et al. | Nov 2012 | A1 |
20120303265 | Su et al. | Nov 2012 | A1 |
20120303266 | Su et al. | Nov 2012 | A1 |
20120303270 | Su et al. | Nov 2012 | A1 |
20120303274 | Su et al. | Nov 2012 | A1 |
Entry |
---|
International Search Report (PCT/US2009/060215) dated Jun. 7, 2010; 3 pages. |
Number | Date | Country | |
---|---|---|---|
20100095231 A1 | Apr 2010 | US |