The present invention generally relates to mapping on electronic devices. More particularly, the present invention relates to defining a region on a digital map, displayed on an electronic device, and displaying geo-location advertising on the digital map within the confines of the defined region.
Mapping applications accessible by electronic devices often allow users to display advertisements, tied to physical locations of the advertising entities (e.g. businesses) on a digital map. For example, a user of a smart phone, connected to a mapping service (e.g. Google Maps®, Apple Maps on iPhone/OS X, etc.) may see a map of an area with business advertisement (e.g. road map, satellite photot, etc.) The mapping service delivers to the user map tiles (e.g. tiles of a map, satellite photo, etc.) which are displayed as a contiguous map on the electronic device. The mapping service then displays advertisement associated with businesses and places super-imposed on the digital map at the corresponding geographic locations. The user can then click on an advertisement and receive more information on the business associated with the advertisements, navigate to the business' website, etc.
At present, a user can delimit the advertisements displayed by various manipulations such as altering a search query: the user can modify the parameters of the search query, changing a name of a city or introducing more criteria into the search, resulting in a different subset of advertisements displayed over a visible area of the map. The user can also manipulate the map: zoom or pan, to alter the advertisements displayed.
What is lacking at present, and in any prior art, is any way for a user to graphically select a region of a map, for example by outlining an arbitrary region on a touch-screen in a “free-hand” fashion or via an automated selection based on a chosen navigable route, and, display only advertisement related to businesses (or other advertising entities) that are geographically within the outlined region.
In general, a method and system for combining digital map advertising with an arbitrary region of a digital map are disclosed. A digital map, comprising map tiles served by a mapping service (e.g. Google Map®, Microsoft Bing® Maps, etc.) displayed on an electronic device (e.g. smart phones and handheld computing devices such as iPhone®, Droid® etc. or GPS navigation devices such as Magellan®, Garmin®, etc.) includes advertising for entities (e.g. businesses, attractions, etc.) only within a specific region of the electronic map. In one embodiment, a user can input an arbitrary region (e.g. by sliding his/her finger across a touch-screen and highlighting one or more arbitrary polygonal regions on a displayed digital map). In conjunction with selecting an arbitrary region, the user can enter a search query resulting in various points-of-interest (“POI”s) (e.g. coffee shops, gas stations, etc.) The POIs retrieved by the mapping application (e.g. based on the search query, dimensions of the map and any other logic used by the mapping application) are then further filtered to produce a subset of POIs which are within the geographic confines of the user's selected region. Advertisement content is then displayed only for the POIs in the subset are then displayed on the digital map within the selected region. In another possible embodiment, the “user-selected arbitrary region” discussed above may be an automatically-selected region surrounding a route displayed by the mapping application, onto which the user may add additional region(s). For example, the mapping application may display a route over a dozen streets from point A to point B, making the “selected region” the dozen streets comprising the route (alternatively, also including a user-defined region a certain offset from the route.) The user may then manipulate the selected route-based-region and display only advertisement for POIs contained within the newly-defined region resulting from the user's manipulation. Additionally, advertisement pertinent to the selected region may be retrieved from a social network (e.g. social events, locations of friends, etc.)
For a more complete understanding of the present invention and further advantages thereof, references are now made to the following Detailed Description, taken in conjunction with the drawings, in which:
In many cases, these POIs are the result of a user query. For example, a user may have typed a query such as “coffee in San Francisco”, in response to which a mapping server which delivered map tiles comprising the digital map 104, may have identified POIs “A“−”E”, representing physical POIs that are the result of the search, and may display the POIs as icons “A” 106-“E” on the digital map 104. In the prior art, there does not exist a way for the user to graphically limit the POIs to a specific geography (or region(s)) on the digital map 104. Additionally, in the prior art, an information panel 120 may be displayed, listing the one or more POIs and offering additional related information.
Referring now to
Once the user has outlined/selected the region 108, only a subset of the POIs “A”, “-“E” (in FIG. 1A)—those POIs within the region 108—are displayed. The POIs “A”, “D”, “E” and “F” are displayed on the digital map 104; however, the POIs “B” and “C”—displayed in the prior art on the map 104 in FIG. 1A—are not displayed in
For example, a user may decide to spend some time in a region of a city (in this example, on and around Embarcadero and Columbus streets in San Francisco.) The user may be interested solely in seeing coffee shops that are either on these streets, are very close to these streets. According to the present invention, the user can input an ordinary query (e.g. “coffee in San Francisco”) and then user his/her finger to generally highlight the area where he/she expects to be. The only coffee shops displayed will be ones in the highlighted area (despite the generality of the query which technically would return all coffee shops in San Francisco.) As the user adds to, or subtracts from, the highlighted area, so do the displayed results vary to include only those that are within the highlighted area.
Referring to
Referring now to
POIs in the new region 250, e.g. POI “G” 260, may now be displayed in addition to the POIs “A”, “D”, “E” and “F”, previously-displayed along the route 220 in the prior art. The user may select criteria for generating the route 220 on the digital map 204 displayed on the electronic device 200. The user may then use his/her finger 270 (or a pointing device) to touch the screen 202 of the electronic device 200 to highlight the new region 250. In response, a new POI “G” 260 may be displayed in association with the new region 250, in addition to the other POIs “A”, “D”, “E” and “F” previously displayed in association with the route 220. Additionally, an advertisement 280, associated with the POI “G” 260, may be displayed.
Referring to
At step 302, the user may enter a search query in order to generate POIs on a map. POIs are typically generated in response to a user's search query or selection of criteria, such as “gas stations” or “coffee shops, San Francisco.”
At step 304, the search query from step 302 may be received and at step 306, advertisement results related to the search query, and selected region, may be retrieved. For example, a mapping application may pass the user's search query to a server/service associated with a pay-per-click advertising service (e.g. Google Ad Words®), where the query may be processed and advertisements for POIs fitting the query criteria and geographic coordinates of the map, may be generated and returned to the mapping application.
At steps 308-318, the POIs in the result-set may be re-cursed and any POI fitting within the confines of a selected region, may be displayed. At step 308, the first POI in the result-set may be retrieved. At step 310 it may be determined whether the geographic location of the present POI is within the confines of the region selected at step 301.
If at step 310 it is determined that the present POI is within the confines, at step 312 advertisement associated with the POI may be displayed at the corresponding geographic location (e.g. as an icon or pushpin) on the digital map. (or alternatively, at any other location visible to the users).
At step 314, the next POI in the result-set may be examined, and the steps 310-314 may be repeated, until at step 316 it is determined that the last POI in the result-set has been reached, in which case at step 318, the process of displaying POIs on the selected region ends.
Please note that the steps 301-306 are interchangeable and can be performed in a different order; for example, the user may input a search query prior to selecting a region of a map. The order of the steps in the flow diagram 300 illustrates one of many ways to implement the present invention.
Referring now to
At step 354, the maximum coordinates of a the newly-selected region may be calculated. As shown in
For example, an internet-based data store containing POIs may be queried and all POIs fitting a search criteria and within the geographic bounds of the rectangular region enveloping the newly-selected region, may be returned.
At steps 360-368, the POIs in the result-set may be re-cursed and any POI fitting within the confines of a newly-selected region, may be displayed. At step 360, the first POI in the result-set may be retrieved. At step 362 it may be determined whether the geographic location of the present POI is within the confines of the newly-selected region defined at step 352.
If at step 362 it is determined that the present POI is within the confines of the newly-selected region, at step 364 the advertisement associated with the POI may be displayed.
At step 366, the next POI in the result-set may be retrieved, and the steps 362-368 may be repeated, until at step 368 it is determined that the last POI in the result-set has been reached, in which case at step 370, the process of displaying POIs on the selected region ends.
Please note that the steps 352-358 are interchangeable and can be performed in a different order; for example, the user may input a search query prior to selecting a region of a map. The order of the steps in flow diagram 350 is illustrative of one of many ways to implement the present invention.
Referring to
The POIs “A” 404a, “B” 404b, “C” 404c and “D” 404d are theoretically available for the map 400, comprising map tiles (x1,y1,z)-(x5,y4,z); however, according to the present invention, these POIs are not displayed on the digital map 400.
Referring now to
The selected region 406 is a complex polygon whose shape and area may be costly to transmit back to the mapping server, in order to match POIs strictly within the area of the selected region 406. It maybe therefore beneficial to transmit a rectangular area, comprising map tiles (x2,y1,z)-(x4,y4,z) and encapsulating the entire selected region 406, to the mapping server. Map tiles (x1,y1,z)-(x1,y4,z) 408a and (x5,y1,z)-(x5,y4,z) 408b may be discarded, i.e. not transmitted to the mapping server for the purpose of retrieving POIs in those areas.
In this example, the mapping server may return the POIs “A” 404a, “B” 404b and “C” 404c as they are all within the area of the map tiles (x2,y1,z)-(x4,y4,z).
Referring now to
In other possible embodiments, various other methods may be used to identify POIs within the user-selected region 406, retrieve the POIs' information and display the POIs.
Another challenge the present invention overcomes is differentiating between user instructions to select a region and user instructions used commonly to perform mapping operations/manipulations. For example, in many handheld devices, placing a finger on the right side of the screen and sliding it to the left causes the displayed digital map to pan to the left. The flow diagram 500 in
At step 502, user input is received. For example, touch input via the touch-screen interface of the electronic device. At step 504, a determination is made whether the user input includes an instruction to start a “region selection” (i.e. any further input by the user is to be interpreted as input selecting a region rather than manipulating the map.) For example, the user may click an icon displayed on or near the electronic map, indicating that the user wishes to select a region.
If it is determined at step 504 that the user's input was not intended to initiate the selection of a region, at step 506 the user input is interpreted as regular input outside the scope of the present invention by the mapping application. (e.g. the user input may be interpreted as an instruction to zoom out.)
If at step 506 it is determined that the user input was intended to initiate the region selection, at step 508 all further user inputs are set to be interpreted as region selection input (e.g. highlighting the digital map selecting a region.) For example, the user's sliding their finger to the right may now be interpreted as a request to highlight/select a region to the right—as opposed to the convention interpretation of a request to pan the map to the right.
At step 510, the area of the screen “touched” as part of the input is interpreted as an additional region to highlight on the digital map, and at step 512 the selected additional region may be highlighted on the map. Alternatively, the selected additional region may be delimited some other way by the mapping application.
At step 514, the newly-selected-and-highlighted region may be processed by the mapping service to retrieve any applicable POIs in that region. For example, if the new region newly-selected-and-highlighted by the user represents a city block on the digital map, POI(s) in that city block are retrieved, and at step 516, the POI(s) may be displayed on the digital map (i.e. on top of the newly-selected-and-highlighted.)
At step 518, additional user input may be received. If it is determined at step 520 that the additional user input was designated as input to end region selection (e.g. the user has clicked/touched an icon labeled “end selection”), at step 522 regular mapping-commands processing may be resumed, i.e. at step 506 any further user input will continue being interpreted as mapping commands (e.g. pan map, zoom, etc.)
If at step 520 it is determined the input at step 518 was not intended to stop the region selection, at steps 510-516 the process of adding new regions to the selected region, and retrieving and displaying associated POIs, continues.
Referring now to
POIs may be retrieved and displayed at the end of the secondary region selection, according to one possible embodiment; or, in another possible embodiment, POIs may be updated interactively as the user updates his/her selection of the secondary region.
At step 552, user input may be received. At step 554, a determination may be made as to whether the input represents a “region deletion request”, i.e. a request to commence the selection of a secondary region to subtract from the primary region. For example, the user may select a designated button (or graphical representation on the screen) to cause the mapping application to interpret future input as input for selecting a secondary region to delete from the primary region—as opposed to input intended to perform normal mapping operations such as zoom and pan.)
If it is determined at step 554 that the user input was not a request to select a secondary region to remove from the primary region, at step 556 the user input may be processed as ordinary mapping commands (e.g. zoom, pan, select a POI, etc.)
If it is determined at step 554 that the user input was a request to select a secondary region to remove from the primary region, at step 558 all further input to the mapping application may treated as input for the secondary region selection. For example, further input comprising the user's swiping his/her finger across a screen where the map is displayed may be interpreted as a command to delete the area under the finger swipe, as opposed to the ordinary interpretation of the swipe as a command to pan the map.
At step 560, user input may be received selecting area of the secondary region. At step 562 it may be determined whether the area selected as the secondary region at step 560 is within the area of the primary region. For example, if the primary region includes San Francisco, and the user input at step 560 includes highlighting Fisherman's Wharf in San Francisco, then at step 562 it is determined that the secondary region is within the primary region.
If it is determined at step 562 that the secondary region is within the primary region, at step 564 the area represented by the secondary region may be deleted from the primary region. In the example above, the city of San Francisco may be highlighted with the area of Fisherman's Wharf being de-highlighted to denote the area has been deleted by the users from the primary region (i.e. POIs will display throughout San Francisco excluding Fisherman's Wharf.)
At step 566 POIs that are within the secondary region may be determined and at step 568, the determined POIs may be removed from the display. As per the example above, if the area of the map previously containing POIs (i.e. the primary region) is the city of San Francisco and the secondary region (i.e. area marked by user as portion of the primary region to be deleted) is Fisherman's Wharf, then at step 568 all POIs representing locations at Fisherman's Wharf may be deleted from the display.
If at step 562 it is determined that the user's selected area (i.e. the secondary region) is not within the primary region, then at step 570 it may be determined whether the user input—presumably selecting the secondary region—was rather input indicating the ending of the “region selection” process, first initiated at step 554. For example, the user's tap on the screen may indicate ending the deletion routine and returning to normal mapping operations (where “tapping” means selecting a location, for example)
If at step 570 it is determined that the user input indicted terminating the region selection/deletion process, at step 572 processing map commands normally may be resumed (i.e. un-suspending processing normal mapping commands, the suspending of processing normal mapping commands invoked at step 558).
Referring to
Numerous graphical user interface (“GUI”) controls 606a-606e may be displayed, allowing the user to define/select new regions and display POI graphics in those regions. For example, a button may be labeled “Start” 606a and may allow a user to toggle between a regular mapping mode (i.e. the mapping application responds to user touch commands by performing common zoom/pan functions) and responding to user touch commands by performing functions specific to this invention (e.g. selecting regions on the digital map.)
In this example, the user may slide his/her finger 610 across the screen 602, for example left-to-right. In normal mapping mode, such sliding action may cause the digital map 604 to pan to the right, following the direction of the finger 610 (or any other pointing device thereof). However, in the presently discussed embodiment of this invention, with the user having selected the “start” 606a button, the sliding of the finger 610 to the right may cause a new region 608 to be defined (and delineated, i.e. drawn) on the digital map 604. The size and shape of the new region 608 may approximately correspond with the movement of the finger/pointing device 610.
The new region 608 may display POIs immediately; or in alternate embodiments, following further user action such as the user's selection of the button “refresh” 606d (see discussion of
Referring now to
Referring now to
As discussed earlier, in one embodiment of the present invention, POIs may be retrieved and displayed interactively: i.e., as the user slides his/her finger across the screen defining a new region, the coordinates of the region may be automatically relayed, in close-to-real-time, to a mapping server, causing the retrieval and display of new POIs. In an alternate embodiment, illustrated in this example, the POIs may be retrieved and displayed in response to a user's command.
This algorithm may be particularly useful in conserving computing cycles and bandwidth, as the tasks of measuring the coordinates of the newly-selected region, transmitting the coordinates to a mapping server to query a data store and retrieve POIs within the coordinates, transmitting the POIs back to the client's device and displaying the POIs—all consume computing cycles and bandwidth. Thus it may be beneficial, in some embodiments, to not retrieve and display POIs pertinent to the newly-selected region 608 until the user has explicitly requested to do so, for example by selecting the command button “refresh” 606c.
Referring now to
In various possible embodiments the deletion of the previously-selected regions may take places in various ways: the user may be prompted for okay, the previously-selected regions may be deleted one region at the time, all POI graphics within the previously-selected regions may be deleted as well; search queries may be reset, etc.
Referring now to
The returned one or more POIs may be confined to the selected region 608a, i.e. the mapping application may discard any POI whose location is not within the confines of the selected region 608a. POIs that are within the confines of the selected region 608a, such as “A” 660, may be displayed on the digital map 604.
In another possible embodiment, the returned list 666a of POIs and/or the POIs graphics 660 displayed on the digital map 604 within the selected region 608a, may be dynamically (i.e. automatically and in near-real-time) updated in response to the user's altering the selected region 608a (i.e. adding to it/deleting from it, etc.)
For example, referring now to
Additionally, in a similar embodiment, the returned list of POIs may be updated in response to a user's deleting a portion of the selected region (in which case one or more of the previously-listed POIs may be omitted from the revised list of POIs following the reduction in the size of the selected region).
Referring to
At step 702, user input is received. The user input is touch input, for example, the user touching the screen over a certain spot on the digital map. At step 704 the coordinates of the spot the user is touching on the screen are recorded.
At steps 706-710 a timer may be invoked to ascertain the persistence of the user's selection, via touch. At step 706 a timer may be started and at step 708 any change to the user's touch may be recorded. At step 710 the timing may end. The timer at steps 706-710 may be used to differentiate between the user's casual touching of the screen, and holding the screen at one spot for a number of seconds (e.g. timer may be set to 3 seconds) to indicate a “mode switch”, processing consequential touch input as region-selection input, as opposed to common mapping input (e.g. map zoom/pan, etc.)
If at step 712 it is determined that the user touch had not changed (i.e. the user had been pressing the same spot on the screen persistently for a few seconds), at step 713 an indication may be displayed to notify the user the digital map is now in “region selection mode.” (i.e. from that point on, future user touch input will be treated as commands to alter the selected region versus the common processing of such commands as mapping functions such as zoom and pan.) For example, a cursor displayed on the digital map may blink or may be represented by a different graphic; the digital map or portions of the cursor may change color; a sound may be played, etc.
At step 714 region selection may commence. Consequently, at steps 716-720 all user touch inputs may be interpreted as region-selection commands. At step 716 new user touch input may be received. At step 718 areas on the digital map affected by the touch input may be delimited (e.g. highlighted).
At step 720, it may be determined whether the user had terminated their touching the screen to indicate completion of the region selection process. For example, at steps 716-718 the user may outline a region on the digital map by gliding their finger along the screen; and when done, the user may lift their finger to indicate finishing selecting the region.
At step 722, POIs applicable to the selected region may be retrieved and at step 724, the POIs may be displayed at their respective geographic coordinates on the digital map.
At step 726, an indication may be presented to the user that the region-selection function has ended and hence forth, consequent touching/gliding along the screen would be treated as common mapping commands, such as panning. At step 730 processing of touch events as normal mapping commands may be resumed.
Referring now to
At step 752, user input is received. The user input is touch input, for example, the user touching the screen over a certain spot on the digital map. At step 754 the coordinates of the spot the user is touching on the screen are recorded.
At steps 766-760 a timer may be invoked to ascertain the persistence of the user's selection, via touch. At step 756 a timer may be started and at step 758 any change to the user's touch may be recorded. At step 760 the timing may end. The timer at steps 756-760 may be used to differentiate between the user's casual touching of the screen, and holding the screen at one spot for a number of seconds (e.g. timer may be set to 3 seconds) to indicate a “mode switch”, processing consequential touch input as region-selection input, as opposed to common mapping input (e.g. map zoom/pan, etc.)
If at step 762 it is determined that the user touch had not changed (i.e. the user had been pressing the same spot on the screen persistently for a few seconds), at step 763 an indication may be displayed to notify the user the digital map is now in “region selection mode.” (i.e. user touch input will be treated as commands to alter the selected region vs. the common processing of such commands as mapping functions such as zoom and pan.) For example, a cursor displayed on the digital map may blink or may be represented by a different graphic; the digital map or portions of it may change color; a sound may be played, etc.
At step 764 region selection may commence. Consequently, at steps 766-774 all user touch inputs may be interpreted as region-selection commands and POIs may be added to the newly-selected region following the user's defining of the newly-selected region.
At step 766 new user touch input may be received. At step 768 areas on the digital map affected by the touch input may be delimited (e.g. highlighted).
At step 770, POIs whose coordinates are within the selected region may be retrieved and at step 772, the POIs may be displayed at their respective geographic coordinates on the digital map.
At step 774 it may be determined whether the user had terminated their touching the screen to indicate completion of the region selection process. For example, at steps 766-772 the user may outline a region on the digital map by gliding their finger along the screen; and when done, the user may lift their finger to indicate finishing selecting the region.
At step 776, an indication may be presented to the user that the region-selection function has ended and hence forth, consequent touching/gliding along the screen would be treated as common mapping commands, such as panning. At step 780 processing of touch events as normal mapping commands may be resumed.
Illustration 800 shows two views of a single display displaying a digital map, view 802a and view 802b. In view 802a, a user may select a region 804 (e.g. a hand-drawn region, an automatically-selected region along a route, etc.)
An advertisement search engine 812 (e.g. pay-per-click advertisement such as Google AdWords®, a social-networking ad-placement engine such as the one used by Facebook®, etc.) residing in the cloud 810 (e.g. Internet) may receive mapping information. The mapping information may include geospatial information on the route 804 chosen by the user, as well as any other user and/or device specific information that may be used in advertisement targeting.
An advertisement 816, selected by the advertisement search engine 812 and transmitted to the user device, may be displayed in conjunction with a POI 814, which in turn, is within the region 804. The advertisement search engine 812 may support various algorithms that search for, and/or return, only advertisements associated with POIs within the region 804—in addition to any other search criteria processed by the advertisement search engine 812, such as a search query, user-related data (e.g. social connections), preferences, key-words, etc. Please note that in this specific illustration, only a singe POI 814 and advertisement 816 are displayed for illustrative purposes only, and is in no way indicative of a restriction on the number of POIs/advertisements that may be displayed.
While various embodiments of the present invention have been described in detail, it is apparent that further modifications and adaptations of the present invention will occur to those skilled in the art. However, it is to be expressly understood that such modifications and adaptations are within the spirit and scope of the present invention.
This patent application claims priority to Provisional Patent Application No. 61/284,755 filed on Dec. 22, 2009, and to U.S. patent application Ser. No. 12/799,471 filed Apr. 26, 2010.